From c4bdb55cc52811624ef834d0a6b522a251cc0968 Mon Sep 17 00:00:00 2001 From: overtake <> Date: Fri, 1 Nov 2019 19:09:13 +0400 Subject: [PATCH] - refactoring and cleanup --- ._Telegram-Mac.xcworkspace | Bin 4096 -> 0 bytes ._Telegram.xcodeproj | Bin 4096 -> 0 bytes RLottieMac/._RLottieMac.xcodeproj | Bin 4096 -> 0 bytes .../RLottieMac.xcodeproj/project.pbxproj | 1804 ------ .../UserInterfaceState.xcuserstate | Bin 9511 -> 0 bytes RLottieMac/RLottieMac/RLottieMac.h | 20 - RLottieMac/RLottieMac/YUV.h | 5 - RLottieMac/RLottieMac/YUV.m | 67 - RLottieMac/RLottieMacTests/RLottieMacTests.m | 37 - TGUIKit/._TGUIKit.xcodeproj | Bin 4096 -> 0 bytes .../contents.xcworkspacedata | 39 +- .../IDEFindNavigatorScopes.plist | 5 + .../UserInterfaceState.xcuserstate | Bin 134918 -> 519583 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 36 +- Telegram-Mac/AccountContext.swift | 133 +- Telegram-Mac/AccountInfoItem.swift | 7 +- Telegram-Mac/AccountViewController.swift | 26 +- Telegram-Mac/AddContactModalController.swift | 7 +- Telegram-Mac/AdditionalSettings.swift | 4 +- Telegram-Mac/AnimatedStickerUtils.swift | 2 +- .../AppAppearanceViewController.swift | 8 +- Telegram-Mac/AppDelegate.swift | 75 +- Telegram-Mac/AppUpdateViewController.swift | 7 +- Telegram-Mac/Appearance.swift | 8 +- Telegram-Mac/AppearanceThumbs.swift | 7 +- Telegram-Mac/ApplicationContext.swift | 9 +- .../ApplicationSpecificPreferencesKeys.swift | 5 +- Telegram-Mac/ArchiveTooltipController.swift | 7 +- .../ArchivedStickerPacksController.swift | 7 +- Telegram-Mac/ArchiverContext.swift | 2 +- Telegram-Mac/AudioPlayer.swift | 5 +- Telegram-Mac/AudioPlayerController.swift | 11 +- Telegram-Mac/AudioRecorder.swift | 5 +- Telegram-Mac/AuthController.swift | 7 +- Telegram-Mac/AutoNightThemePreferences.swift | 4 +- Telegram-Mac/AutoNightViewController.swift | 7 +- .../AutomaticMediaDownloadCategoryPeers.swift | 4 +- Telegram-Mac/AutoplayPreferences.swift | 4 +- Telegram-Mac/AvatarLayer.swift | 9 +- Telegram-Mac/BaseApplicationSettings.swift | 4 +- Telegram-Mac/BlockedPeersViewController.swift | 7 +- Telegram-Mac/CachedAdminIds.swift | 7 +- Telegram-Mac/CachedChannelAdmins.swift | 7 +- .../CachedResourceRepresentations.swift | 7 +- Telegram-Mac/CallNavigationHeaderView.swift | 7 +- .../CallRatingModalViewController.swift | 7 +- .../CallSettingsModalController.swift | 7 +- .../CancelResetAccountController.swift | 7 +- .../ChangePhoneNumberContainerView.swift | 5 +- Telegram-Mac/ChannelAdminController.swift | 7 +- .../ChannelAdminsViewController.swift | 7 +- .../ChannelBlacklistViewController.swift | 7 +- Telegram-Mac/ChannelDiscussionInputView.swift | 7 +- Telegram-Mac/ChannelDisscussionGroup.swift | 7 +- .../ChannelEventFilterModalController.swift | 7 +- Telegram-Mac/ChannelEventLogController.swift | 7 +- Telegram-Mac/ChannelEventLogItem.swift | 5 +- Telegram-Mac/ChannelInfoEntries.swift | 7 +- Telegram-Mac/ChannelIntroViewController.swift | 7 +- .../ChannelMemberCategoryListContext.swift | 15 +- .../ChannelMembersViewController.swift | 7 +- .../ChannelPermissionsController.swift | 7 +- .../ChannelStatisticsController.swift | 7 +- .../ChannelVisibilityController.swift | 7 +- Telegram-Mac/ChatAccessoryModel.swift | 2 +- Telegram-Mac/ChatActivitiesModel.swift | 7 +- Telegram-Mac/ChatAnimatedStickerItem.swift | 7 +- Telegram-Mac/ChatAudioContentView.swift | 7 +- Telegram-Mac/ChatCallRowItem.swift | 7 +- Telegram-Mac/ChatContactRowItem.swift | 7 +- Telegram-Mac/ChatController.swift | 9 +- Telegram-Mac/ChatEmptyPeerItem.swift | 7 +- Telegram-Mac/ChatFileContentView.swift | 9 +- Telegram-Mac/ChatFileMediaItem.swift | 5 +- Telegram-Mac/ChatGIFContentView.swift | 9 +- Telegram-Mac/ChatGroupedItem.swift | 7 +- Telegram-Mac/ChatHeaderController.swift | 7 +- Telegram-Mac/ChatHistoryEntry.swift | 8 +- Telegram-Mac/ChatHistoryViewForLocation.swift | 7 +- Telegram-Mac/ChatHoleRowItem.swift | 5 +- Telegram-Mac/ChatInfoTouchbar.swift | 5 +- Telegram-Mac/ChatInputAccessory.swift | 7 +- Telegram-Mac/ChatInputActionsView.swift | 5 +- Telegram-Mac/ChatInputAttachView.swift | 7 +- Telegram-Mac/ChatInputRecordingView.swift | 2 +- Telegram-Mac/ChatInputView.swift | 7 +- Telegram-Mac/ChatInteractiveContentView.swift | 20 +- Telegram-Mac/ChatInterfaceInputContext.swift | 5 +- Telegram-Mac/ChatInterfaceInteraction.swift | 7 +- Telegram-Mac/ChatInterfaceState.swift | 7 +- .../ChatInterfaceStateContextQueries.swift | 7 +- Telegram-Mac/ChatInvoiceItem.swift | 14 +- Telegram-Mac/ChatLayoutUtils.swift | 13 +- Telegram-Mac/ChatListController.swift | 7 +- Telegram-Mac/ChatListHoleRowItem.swift | 5 +- Telegram-Mac/ChatListMessageRowItem.swift | 5 +- Telegram-Mac/ChatListNothingItem.swift | 5 +- Telegram-Mac/ChatListRowItem.swift | 7 +- Telegram-Mac/ChatListRowView.swift | 7 +- Telegram-Mac/ChatMapContentView.swift | 7 +- Telegram-Mac/ChatMapRowItem.swift | 7 +- Telegram-Mac/ChatMediaContentView.swift | 7 +- Telegram-Mac/ChatMediaItem.swift | 7 +- Telegram-Mac/ChatMessageAccessoryView.swift | 5 +- Telegram-Mac/ChatMessageDateHeader.swift | 5 +- Telegram-Mac/ChatMessageItem.swift | 7 +- ...hatMessageThrottledProcessingManager.swift | 8 +- Telegram-Mac/ChatMessageView.swift | 2 +- Telegram-Mac/ChatMusicContentView.swift | 9 +- Telegram-Mac/ChatMusicRowItem.swift | 7 +- Telegram-Mac/ChatNavigateScroller.swift | 7 +- Telegram-Mac/ChatNavigationMention.swift | 5 +- Telegram-Mac/ChatPollItem.swift | 9 +- .../ChatPresentationInterfaceState.swift | 7 +- Telegram-Mac/ChatPresentationUtils.swift | 7 +- Telegram-Mac/ChatRecorderOverlayWindow.swift | 5 +- Telegram-Mac/ChatRightView.swift | 3 +- Telegram-Mac/ChatRowItem.swift | 7 +- Telegram-Mac/ChatRowView.swift | 7 +- Telegram-Mac/ChatScheduleController.swift | 5 +- Telegram-Mac/ChatSearchView.swift | 2 +- Telegram-Mac/ChatSelectText.swift | 7 +- Telegram-Mac/ChatServiceItem.swift | 7 +- Telegram-Mac/ChatStickerContentView.swift | 9 +- .../ChatStickersTouchBarPopover.swift | 7 +- .../ChatStorageManagmentModalController.swift | 7 +- Telegram-Mac/ChatSwitchInlineController.swift | 7 +- Telegram-Mac/ChatTitleBarView.swift | 7 +- Telegram-Mac/ChatTouchBar.swift | 7 +- Telegram-Mac/ChatUndoManager.swift | 13 +- Telegram-Mac/ChatUnreadRowItem.swift | 5 +- Telegram-Mac/ChatUrlPreviewModel.swift | 5 +- .../ChatVideoMessageContentView.swift | 7 +- Telegram-Mac/ChatVideoMessageItem.swift | 5 +- Telegram-Mac/ChatVoiceContentView.swift | 7 +- Telegram-Mac/ChatVoiceRowItem.swift | 7 +- .../ChatWallpaperModalController.swift | 11 +- Telegram-Mac/ClearUserNotifies.swift | 7 +- Telegram-Mac/ComposeActions.swift | 7 +- Telegram-Mac/ComposeViewController.swift | 5 +- Telegram-Mac/ContactsController.swift | 7 +- Telegram-Mac/ContextCommandRowItem.swift | 7 +- Telegram-Mac/ContextListRowItem.swift | 13 +- Telegram-Mac/ContextMediaRowItem.swift | 7 +- Telegram-Mac/ContextSearchMessageItem.swift | 5 +- Telegram-Mac/ContextStickerRowItem.swift | 9 +- Telegram-Mac/ContextSwitchPeerRowItem.swift | 7 +- Telegram-Mac/ControllerExtension.swift | 7 +- Telegram-Mac/CoreExtension.swift | 37 +- .../CreateChannelViewController.swift | 7 +- Telegram-Mac/CreateGroupSignals.swift | 8 +- Telegram-Mac/CreateGroupViewController.swift | 7 +- .../CustomAccentColorModalController.swift | 7 +- .../DataAndStorageViewController.swift | 7 +- Telegram-Mac/DeclareEncodables.swift | 2 +- ...eteSupergroupMessagesModalController.swift | 7 +- Telegram-Mac/DeveloperViewController.swift | 9 +- .../DiscussionSetModalController.swift | 7 +- .../DownloadSettingsViewController.swift | 5 +- Telegram-Mac/DownloadedFilesPaths.swift | 4 +- Telegram-Mac/EBlockItem.swift | 3 +- Telegram-Mac/EBlockRowView.swift | 2 +- Telegram-Mac/EditAccountInfoController.swift | 7 +- Telegram-Mac/EditAccountInfoItem.swift | 7 +- Telegram-Mac/EditImageControls.swift | 2 +- Telegram-Mac/EditImageModalController.swift | 2 +- Telegram-Mac/EditMessageModel.swift | 19 +- Telegram-Mac/EditThemeController.swift | 7 +- Telegram-Mac/EmojiToleranceController.swift | 2 +- Telegram-Mac/EmojiViewController.swift | 5 +- Telegram-Mac/EmptyChatViewController.swift | 3 +- Telegram-Mac/EmptyComposeController.swift | 5 +- .../EntertainmentViewController.swift | 7 +- .../ExMajorNavigationController.swift | 3 +- Telegram-Mac/ExportProxyModalController.swift | 7 +- Telegram-Mac/Extensions.swift | 7 +- .../ExternalMusicAlbumArtResources.swift | 7 +- Telegram-Mac/ExternalVideoLoader.swift | 7 +- Telegram-Mac/FFMpegMediaFrameSource.swift | 7 +- .../FFMpegMediaFrameSourceContext.swift | 7 +- Telegram-Mac/FWDNavigationAction.swift | 5 +- Telegram-Mac/FastSettings.swift | 7 +- .../FeaturedStickerPacksController.swift | 7 +- Telegram-Mac/FetchCachedRepresentations.swift | 9 +- Telegram-Mac/FetchManager.swift | 7 +- Telegram-Mac/FetchManagerLocation.swift | 2 +- Telegram-Mac/FetchMediaUtils.swift | 7 +- Telegram-Mac/FetchVideoMediaResource.swift | 11 +- Telegram-Mac/ForgotPasswordController.swift | 7 +- Telegram-Mac/ForwardChatListController.swift | 3 +- Telegram-Mac/ForwardPanelModel.swift | 7 +- Telegram-Mac/GIFContainerView.swift | 9 +- Telegram-Mac/GIFPlayerView.swift | 2 +- Telegram-Mac/GIFViewController.swift | 7 +- Telegram-Mac/GalleryModernControls.swift | 7 +- Telegram-Mac/GalleryPageController.swift | 7 +- Telegram-Mac/GalleryThumbsControl.swift | 5 +- Telegram-Mac/GalleryThumbsControlView.swift | 6 +- Telegram-Mac/GalleryTouchBar.swift | 2 +- .../GalleryTouchBarThumbItemView.swift | 13 +- Telegram-Mac/GalleryViewer.swift | 9 +- Telegram-Mac/GeneralInputRow.swift | 2 +- Telegram-Mac/GeneralInteractedRowItem.swift | 2 +- .../GeneralSettingsViewController.swift | 7 +- .../GeneratedMediaStoreSettings.swift | 4 +- Telegram-Mac/Geocoding.swift | 2 +- Telegram-Mac/GlobalBadgeNode.swift | 7 +- Telegram-Mac/GlobalHandlers.swift | 7 +- Telegram-Mac/GridMessageItem.swift | 11 +- Telegram-Mac/GroupInfoEntries.swift | 7 +- Telegram-Mac/GroupNameRowItem.swift | 7 +- Telegram-Mac/GroupStickerSetController.swift | 7 +- Telegram-Mac/GroupedLayout.swift | 5 +- .../GroupsInCommonViewController.swift | 7 +- Telegram-Mac/ImageCompression.swift | 7 +- Telegram-Mac/ImageUtils.swift | 8 +- Telegram-Mac/InAppLinks.swift | 53 +- Telegram-Mac/InAppNotificationSettings.swift | 8 +- Telegram-Mac/Info.plist | 2 +- Telegram-Mac/InlineAudioPlayerView.swift | 7 +- Telegram-Mac/InlineLoginController.swift | 7 +- Telegram-Mac/InputContextHelper.swift | 7 +- Telegram-Mac/InputDataController.swift | 5 +- Telegram-Mac/InputDataControllerEntries.swift | 5 +- Telegram-Mac/InputPasswordController.swift | 5 +- Telegram-Mac/InputPasteboardParser.swift | 7 +- Telegram-Mac/InputSources.swift | 7 +- .../InputURLFormatterModalController.swift | 2 +- .../InstalledStickerPacksController.swift | 7 +- Telegram-Mac/InstantPageAnchorItem.swift | 3 +- Telegram-Mac/InstantPageArticleItem.swift | 9 +- Telegram-Mac/InstantPageAudioItem.swift | 5 +- Telegram-Mac/InstantPageAudioView.swift | 7 +- Telegram-Mac/InstantPageChannelItem.swift | 5 +- Telegram-Mac/InstantPageChannelView.swift | 5 +- Telegram-Mac/InstantPageContentView.swift | 7 +- Telegram-Mac/InstantPageDetailsItem.swift | 11 +- Telegram-Mac/InstantPageImageItem.swift | 5 +- Telegram-Mac/InstantPageItem.swift | 5 +- Telegram-Mac/InstantPageLayout.swift | 20 +- Telegram-Mac/InstantPageLayoutSpacings.swift | 3 +- Telegram-Mac/InstantPageMedia.swift | 5 +- Telegram-Mac/InstantPageMediaItem.swift | 3 +- Telegram-Mac/InstantPageMediaView.swift | 21 +- .../InstantPagePeerReferenceItem.swift | 5 +- Telegram-Mac/InstantPageScrollableItem.swift | 5 +- Telegram-Mac/InstantPageSelectText.swift | 7 +- Telegram-Mac/InstantPageShapeItem.swift | 3 +- Telegram-Mac/InstantPageSlideshowItem.swift | 3 +- Telegram-Mac/InstantPageStoredState.swift | 7 +- Telegram-Mac/InstantPageTableItem.swift | 5 +- Telegram-Mac/InstantPageTextItem.swift | 7 +- Telegram-Mac/InstantPageTextStyleStack.swift | 3 +- Telegram-Mac/InstantPageTheme.swift | 2 +- Telegram-Mac/InstantPageViewController.swift | 7 +- Telegram-Mac/InstantPageWebEmbedItem.swift | 3 +- Telegram-Mac/InstantVideoPIP.swift | 7 +- Telegram-Mac/InstantViewAppearance.swift | 4 +- Telegram-Mac/InstantViewWindow.swift | 7 +- .../JoinLinkPreviewModalController.swift | 7 +- Telegram-Mac/Keychain.swift | 9 +- Telegram-Mac/LanguageRowItem.swift | 3 +- Telegram-Mac/LanguageViewController.swift | 5 +- Telegram-Mac/LegacyImportAuthorization.swift | 9 +- Telegram-Mac/LinkInvationController.swift | 7 +- Telegram-Mac/ListViewIntermediateState.swift | 2 +- Telegram-Mac/LocalizableExtension.swift | 7 +- .../LocalizationPreviewModalController.swift | 3 +- Telegram-Mac/LocationModalController.swift | 9 +- .../LocationPlaceSuggestionRowItem.swift | 9 +- Telegram-Mac/LocationRequest.swift | 2 +- Telegram-Mac/LoginErrorStateView.swift | 2 +- Telegram-Mac/LoginViewController.swift | 13 +- Telegram-Mac/LogoutViewController.swift | 7 +- Telegram-Mac/LottieBufferCompressor.swift | 5 +- Telegram-Mac/LottiePlayer.swift | 10 +- Telegram-Mac/LottieTestModalController.swift | 2 +- Telegram-Mac/MGalleryExternalVideoItem.swift | 7 +- Telegram-Mac/MGalleryGIFItem.swift | 9 +- Telegram-Mac/MGalleryItem.swift | 9 +- Telegram-Mac/MGalleryPeerPhotoItem.swift | 21 +- Telegram-Mac/MGalleryPhotoItem.swift | 17 +- Telegram-Mac/MGalleryVideoItem.swift | 15 +- Telegram-Mac/MainViewController.swift | 7 +- Telegram-Mac/MajorBackNavigationBar.swift | 7 +- Telegram-Mac/ManageSharedAccountInfo.swift | 9 +- Telegram-Mac/ManagedAudioSession.swift | 6 +- Telegram-Mac/MapResources.swift | 7 +- Telegram-Mac/MediaAnimatedStickerView.swift | 7 +- Telegram-Mac/MediaFrameSource.swift | 2 +- Telegram-Mac/MediaGroupPreviewRowItem.swift | 7 +- Telegram-Mac/MediaPlaybackData.swift | 2 +- Telegram-Mac/MediaPlayer.swift | 15 +- Telegram-Mac/MediaPlayerAudioRenderer.swift | 5 +- Telegram-Mac/MediaPlayerFramePreview.swift | 7 +- Telegram-Mac/MediaPlayerView.swift | 6 +- Telegram-Mac/MediaPreviewRowItem.swift | 7 +- Telegram-Mac/MediaResources.swift | 5 +- Telegram-Mac/MediaTrackFrameBuffer.swift | 2 +- Telegram-Mac/MediaUtils.swift | 23 +- Telegram-Mac/MessageActionsPanelView.swift | 7 +- Telegram-Mac/MessageTimecode.swift | 3 +- Telegram-Mac/MimeTypes.swift | 2 +- Telegram-Mac/ModalOptionSetController.swift | 2 +- Telegram-Mac/ModalPreviewViews.swift | 13 +- .../NetworkUsageStatsController.swift | 7 +- Telegram-Mac/NewContactController.swift | 7 +- Telegram-Mac/NewPollController.swift | 7 +- Telegram-Mac/NewThemeController.swift | 5 +- .../NotificationPreferencesController.swift | 7 +- Telegram-Mac/OpusAudioPlayer.swift | 2 +- Telegram-Mac/PCallSession.swift | 7 +- Telegram-Mac/PIPVideoWindow.swift | 2 +- Telegram-Mac/PanelUtils.swift | 7 +- Telegram-Mac/PasscodeControllers.swift | 11 +- Telegram-Mac/PasscodeLockController.swift | 9 +- .../PasscodeSettingsViewController.swift | 19 +- Telegram-Mac/PassportController.swift | 7 +- Telegram-Mac/PassportDocumentRowItem.swift | 7 +- Telegram-Mac/PassportHeaderItem.swift | 5 +- Telegram-Mac/PassportInsertPasswordItem.swift | 7 +- .../PassportNewPhoneNumberRowItem.swift | 5 +- ...PassportTwoStepVerificationIntroItem.swift | 5 +- Telegram-Mac/PassportWindowController.swift | 7 +- ...annelMemberCategoriesContextsManager.swift | 11 +- Telegram-Mac/PeerInfoController.swift | 7 +- Telegram-Mac/PeerInfoEntries.swift | 7 +- Telegram-Mac/PeerInfoHeaderItem.swift | 7 +- Telegram-Mac/PeerInfoHeaderView.swift | 5 +- Telegram-Mac/PeerInfoUtils.swift | 5 +- .../PeerMediaCollectionInterfaceState.swift | 5 +- Telegram-Mac/PeerMediaController.swift | 7 +- Telegram-Mac/PeerMediaDateItem.swift | 5 +- Telegram-Mac/PeerMediaEmptyRowItem.swift | 2 +- Telegram-Mac/PeerMediaFileRowContent.swift | 9 +- Telegram-Mac/PeerMediaGridController.swift | 7 +- Telegram-Mac/PeerMediaListController.swift | 7 +- Telegram-Mac/PeerMediaMusicRowContent.swift | 9 +- Telegram-Mac/PeerMediaPhotosController.swift | 7 +- Telegram-Mac/PeerMediaRowContent.swift | 7 +- Telegram-Mac/PeerMediaTouchBar.swift | 2 +- Telegram-Mac/PeerMediaVoiceRowItem.swift | 7 +- Telegram-Mac/PeerMediaWebpageRowContent.swift | 9 +- Telegram-Mac/PeerPhotosMonthItem.swift | 11 +- Telegram-Mac/PeerPresenceStatusManager.swift | 9 +- Telegram-Mac/PeerUtils.swift | 22 +- Telegram-Mac/PeersListController.swift | 9 +- Telegram-Mac/PhoneCallWindowController.swift | 11 +- .../PhoneNumberConfirmController.swift | 9 +- .../PhoneNumberInputCodeController.swift | 7 +- Telegram-Mac/PhoneNumberIntroController.swift | 5 +- Telegram-Mac/PhoneNumberUtils.swift | 49 + Telegram-Mac/PhotoCache.swift | 8 +- Telegram-Mac/PlayerListController.swift | 7 +- Telegram-Mac/PopularPeersRowItem.swift | 7 +- .../PreHistoryControllerStructures.swift | 3 +- .../PreHistorySettingsController.swift | 7 +- Telegram-Mac/PreUploadManager.swift | 7 +- .../PreparedChatHistoryViewTransition.swift | 7 +- Telegram-Mac/PresenceStrings.swift | 5 +- Telegram-Mac/PrettyGridUtils.swift | 7 +- Telegram-Mac/PreviewSenderController.swift | 7 +- .../PrivacyAndSecurityViewController.swift | 7 +- Telegram-Mac/ProxyListController.swift | 9 +- Telegram-Mac/ProxyListRowItem.swift | 5 +- Telegram-Mac/ProxyQRCodeRowItem.swift | 2 +- Telegram-Mac/QRCode.swift | 2 +- Telegram-Mac/QuickLookPreview.swift | 9 +- .../QuickSwitcherModalController.swift | 7 +- .../ReadArticlesListPreferences.swift | 7 +- Telegram-Mac/RecentCallsViewController.swift | 7 +- Telegram-Mac/RecentGIFRowItem.swift | 7 +- Telegram-Mac/RecentPeerRowItem.swift | 5 +- Telegram-Mac/RecentSessionRowItem.swift | 3 +- Telegram-Mac/RecentSessionsController.swift | 7 +- Telegram-Mac/RecentUsedEmoji.swift | 4 +- Telegram-Mac/RenderedTotalUnreadCount.swift | 4 +- Telegram-Mac/ReplyMarkupNode.swift | 7 +- Telegram-Mac/ReplyModel.swift | 19 +- .../ReportReasonModalController.swift | 7 +- .../RestictedModalViewController.swift | 7 +- Telegram-Mac/SVideoController.swift | 7 +- Telegram-Mac/SVideoView.swift | 2 +- Telegram-Mac/SearchController.swift | 7 +- Telegram-Mac/SearchPeerMembers.swift | 7 +- .../SearchResultModalController.swift | 7 +- .../SecretChatKeyViewController.swift | 7 +- .../SecureIdVerificationDocument.swift | 3 +- ...SecureIdVerificationDocumentsContext.swift | 7 +- Telegram-Mac/SelectPeersController.swift | 7 +- .../SelectivePrivacySettingsController.swift | 7 +- ...ectivePrivacySettingsPeersController.swift | 7 +- Telegram-Mac/SenderController.swift | 21 +- .../ShareInlineResultNavigationAction.swift | 7 +- Telegram-Mac/ShareModalController.swift | 7 +- Telegram-Mac/SharedAccountContext.swift | 8 +- Telegram-Mac/SharedNotificationManager.swift | 7 +- Telegram-Mac/SharedWakeupManager.swift | 7 +- Telegram-Mac/ShortPeerRowItem.swift | 7 +- Telegram-Mac/ShortPeerRowView.swift | 5 +- Telegram-Mac/SidebarCapViewController.swift | 7 +- Telegram-Mac/SignalUtils.swift | 10 +- Telegram-Mac/SoftwareVideoSource.swift | 2 +- Telegram-Mac/StickerPackGridItem.swift | 9 +- Telegram-Mac/StickerPackItems.swift | 7 +- Telegram-Mac/StickerPackPanelRowItem.swift | 7 +- .../StickerPackPreviewModalController.swift | 9 +- Telegram-Mac/StickerPreviewHandler.swift | 5 +- Telegram-Mac/StickerSetTableRowItem.swift | 11 +- Telegram-Mac/StickerSettings.swift | 4 +- Telegram-Mac/StickersViewController.swift | 7 +- Telegram-Mac/StorageUsageController.swift | 7 +- .../StoredMessageFromSearchPeer.swift | 8 +- ...SuggestionLocalizationViewController.swift | 7 +- Telegram-Mac/SyncCoreExtension.swift | 27 + Telegram-Mac/System.swift | 7 +- Telegram-Mac/TabBadgeItem.swift | 7 +- Telegram-Mac/TableUtils.swift | 3 +- Telegram-Mac/Telegram-Mac-Bridging-Header.h | 1 - .../TelegramAccountAuxiliaryMethods.swift | 5 +- Telegram-Mac/TelegramIconsTheme.swift | 4 +- Telegram-Mac/TermsModalController.swift | 7 +- Telegram-Mac/TextAndLabelItem.swift | 7 +- Telegram-Mac/TextUtils.swift | 11 +- Telegram-Mac/ThemeGridControllerItem.swift | 11 +- Telegram-Mac/ThemeListRowItem.swift | 7 +- .../ThemePreviewModalController.swift | 7 +- Telegram-Mac/ThemePreviewRowItem.swift | 7 +- Telegram-Mac/ThemeSettings.swift | 8 +- Telegram-Mac/ThumbUtils.swift | 2 +- Telegram-Mac/TouchBarStickerItemView.swift | 7 +- Telegram-Mac/TransformImageView.swift | 7 +- .../TransformOutgoingMessageMedia.swift | 11 +- Telegram-Mac/TwoStepVerification.swift | 8 +- .../TwoStepVerificationUnlockController.swift | 7 +- Telegram-Mac/UndoOverlayHeaderView.swift | 11 +- .../UniversalSoftwareVideoSource.swift | 7 +- Telegram-Mac/UpdateModalController.swift | 7 +- Telegram-Mac/UpdaterNotifySettings.swift | 9 +- Telegram-Mac/UpgradedAccount.swift | 7 +- Telegram-Mac/UserInfoEntries.swift | 7 +- Telegram-Mac/UsernameInputRowItem.swift | 5 +- .../UsernameSettingsViewController.swift | 7 +- Telegram-Mac/VCardContactController.swift | 7 +- Telegram-Mac/VCardHeaderItem.swift | 7 +- Telegram-Mac/VCardLocationRowItem.swift | 3 +- .../ValidateAddressNameInteractive.swift | 7 +- .../ValuesSelectorModalController.swift | 2 +- Telegram-Mac/VideoPlayerProxy.swift | 2 +- .../VideoRecorderModalController.swift | 5 +- Telegram-Mac/VideoRecorderPipeline.swift | 5 +- Telegram-Mac/VoiceCallSettings.swift | 7 +- Telegram-Mac/WPArticleContentView.swift | 11 +- Telegram-Mac/WPArticleLayout.swift | 11 +- Telegram-Mac/WPContentView.swift | 3 +- Telegram-Mac/WPLayout.swift | 5 +- Telegram-Mac/WPMediaContentView.swift | 3 +- Telegram-Mac/WPMediaLayout.swift | 7 +- Telegram-Mac/WalletBalanceItem.swift | 6 +- Telegram-Mac/WalletConfiguration.swift | 7 +- .../WalletCreateInvoiceController.swift | 7 +- Telegram-Mac/WalletInfoController.swift | 11 +- Telegram-Mac/WalletInfoCreatedItem.swift | 3 +- Telegram-Mac/WalletInfoTransactionItem.swift | 3 +- Telegram-Mac/WalletPasscodeTimeout.swift | 7 +- .../WalletProcessTransactionController.swift | 8 +- Telegram-Mac/WalletReceiveController.swift | 7 +- Telegram-Mac/WalletSendController.swift | 9 +- Telegram-Mac/WalletSendProccessingView.swift | 3 +- Telegram-Mac/WalletSettingsController.swift | 15 +- Telegram-Mac/WalletSplashButtonRowItem.swift | 3 +- Telegram-Mac/WalletSplashController.swift | 14 +- Telegram-Mac/WalletSplashHelps.swift | 5 +- Telegram-Mac/WalletSplashRowItem.swift | 3 +- .../WalletTransactionPreviewController.swift | 7 +- Telegram-Mac/WallpaperPatternPreview.swift | 7 +- Telegram-Mac/WallpaperPreviewController.swift | 38 +- Telegram-Mac/Wallpapers.swift | 7 +- Telegram-Mac/WebAuthorizationRowItem.swift | 5 +- Telegram-Mac/WebGameViewController.swift | 7 +- Telegram-Mac/WebSessionsController.swift | 7 +- Telegram-Mac/WebpageModalController.swift | 9 +- Telegram-Mac/animoji/celeb.tgs | Bin 21630 -> 0 bytes Telegram-Mac/animoji/confused.tgs | Bin 8073 -> 0 bytes Telegram-Mac/animoji/heart.tgs | Bin 56352 -> 0 bytes Telegram-Mac/animoji/lol.tgs | Bin 14119 -> 0 bytes Telegram-Mac/animoji/meh.tgs | Bin 5598 -> 0 bytes Telegram-Mac/animoji/thumbs_up_1.tgs | Bin 17926 -> 0 bytes Telegram-Mac/animoji/thumbs_up_2.tgs | Bin 17993 -> 0 bytes Telegram-Mac/animoji/thumbs_up_3.tgs | Bin 17970 -> 0 bytes Telegram-Mac/animoji/thumbs_up_4.tgs | Bin 18003 -> 0 bytes Telegram-Mac/animoji/thumbs_up_5.tgs | Bin 17975 -> 0 bytes Telegram-Mac/animoji/thumbs_up_6.tgs | Bin 17985 -> 0 bytes Telegram-Mac/instantPageWebEmbedView.swift | 3 +- Telegram.xcodeproj/project.pbxproj | 753 +-- .../xcshareddata/xcschemes/Hockeyapp.xcscheme | 8 +- .../xcshareddata/xcschemes/Telegram.xcscheme | 10 +- .../xcschemes/xcschememanagement.plist | 12 +- TelegramShare/Info.plist | 2 +- TelegramShare/SEPasslockController.swift | 9 +- TelegramShare/SESelectController.swift | 7 +- TelegramShare/ShareApplicationContext.swift | 7 +- TelegramShare/ShareViewController.swift | 14 +- .../EncryptionProviderHeader.h | 19 + .../project.pbxproj | 871 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 50859 bytes .../xcschemes/xcschememanagement.plist | 19 + .../EncryptionProviderMac}/Info.plist | 2 +- .../MtProtoKit/MtProtoKit/Info.plist | 28 + .../MtProtoKit/MtProtoKit/MtProtoKit.h | 77 + .../project.pbxproj | 1548 +++++ .../contents.xcworkspacedata | 2 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 24486 bytes .../xcschemes/MtProtoKit.xcscheme | 80 + .../xcschemes/MtProtoKit.xcscheme | 99 + .../xcschemes/xcschememanagement.plist | 58 + .../xcschemes/xcschememanagement.plist | 24 + .../xcschemes/xcschememanagement.plist | 19 + .../xcschemes/xcschememanagement.plist | 24 + .../OpenSSLEncryption/Info.plist | 24 + .../OpenSSLEncryption/OpenSSLEncryption.h | 20 + .../project.pbxproj | 621 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 21039 bytes .../xcschemes/xcschememanagement.plist | 2 +- .../Postbox/Postbox}/Info.plist | 0 core-xprojects/Postbox/Postbox/Postbox.h | 20 + .../Postbox_Xcode.xcodeproj/project.pbxproj | 1489 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 22129 bytes .../xcshareddata/xcschemes/Postbox.xcscheme | 99 + .../xcschemes/Postbox.xcscheme | 99 + .../xcschemes/PostboxMac.xcscheme | 80 + .../xcschemes/PostboxTests.xcscheme | 56 + .../xcschemes/xcschememanagement.plist | 53 + .../xcschemes/xcschememanagement.plist | 24 + .../xcschemes/xcschememanagement.plist | 22 + .../xcschemes/xcschememanagement.plist | 24 + .../project.pbxproj | 1368 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 83496 bytes .../xcschemes/SSignalKit.xcscheme | 99 + .../xcschemes/SSignalKit.xcscheme | 99 + .../xcschemes/SwiftSignalKit.xcscheme | 99 + .../xcschemes/SwiftSignalKitMac.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 58 + .../xcschemes/xcschememanagement.plist | 24 + .../xcschemes/xcschememanagement.plist | 32 + .../xcschemes/xcschememanagement.plist | 24 + .../SSignalKit/SwiftSignalKit/Info.plist | 26 + .../SwiftSignalKit/SwiftSignalKit.h | 19 + core-xprojects/SyncCore/SyncCore/Info.plist | 24 + core-xprojects/SyncCore/SyncCore/SyncCore.h | 19 + .../SyncCore_Xcode.xcodeproj/project.pbxproj | 1188 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 9452 bytes .../xcschemes/xcschememanagement.plist | 4 +- .../TelegramApi/TelegramApi}/Info.plist | 4 +- .../TelegramApi/TelegramApi/TelegramApi.h | 19 + .../project.pbxproj | 692 +++ .../contents.xcworkspacedata | 4 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 33254 bytes .../xcschemes/TelegramApi.xcscheme | 80 + .../xcschemes/TelegramApi.xcscheme | 80 + .../xcschemes/TelegramApiMac.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 46 + .../xcschemes/xcschememanagement.plist | 19 + .../xcschemes/xcschememanagement.plist | 22 + .../xcschemes/xcschememanagement.plist | 19 + .../TelegramCore/TelegramCore/Info.plist | 26 + .../TelegramCore/TelegramCore/TelegramCore.h | 22 + .../project.pbxproj | 2363 ++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 12336 bytes .../xcschemes/TelegramCore.xcscheme | 80 + .../xcschemes/TelegramCore.xcscheme | 99 + .../xcschemes/TelegramCoreMac.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 36 + .../xcschemes/xcschememanagement.plist | 19 + .../xcschemes/xcschememanagement.plist | 4 +- .../xcschemes/xcschememanagement.plist | 19 + .../TonBinding/TonBinding/Info.plist | 24 + .../TonBinding/TonBinding/TonBinding.h | 20 + .../project.pbxproj | 801 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 47743 bytes .../xcschemes/TonBinding.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 22 + .../WalletCore/WalletCore/Info.plist | 24 + .../WalletCore/WalletCore/WalletCore.h | 19 + .../project.pbxproj | 675 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 44254 bytes .../xcschemes/WalletCore.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 22 + core-xprojects/crc32/Crc32/Crc32 | 9 + core-xprojects/crc32/Crc32/Crc32.h | 9 + core-xprojects/crc32/Crc32/Info.plist | 24 + .../Crc32_Xcode.xcodeproj/project.pbxproj | 896 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 26466 bytes .../xcschemes/Crc32.xcscheme | 80 + .../xcschemes/crc32mac.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 41 + .../xcschemes/xcschememanagement.plist | 22 + .../libphonenumber/libphonenumber/Info.plist | 24 + .../libphonenumber/libphonenumber.h | 12 + .../project.pbxproj | 735 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 23073 bytes .../xcschemes/libphonenumber.xcscheme | 80 + .../xcschemes/libphonenumber.xcscheme | 80 + .../xcschemes/libphonenumbermac.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 41 + .../xcschemes/xcschememanagement.plist | 14 + core-xprojects/sqlcipher/sqlcipher/Info.plist | 24 + .../sqlcipher/sqlcipher/sqlcipher.h | 23 + .../sqlcipher_Xcode.xcodeproj/project.pbxproj | 664 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 33206 bytes .../xcshareddata/xcschemes/sqlcipher.xcscheme | 80 + .../xcschemes/xcschememanagement.plist | 22 + .../HockeySDK.framework}/Headers | 0 .../HockeySDK.framework}/HockeySDK | 0 .../HockeySDK.framework}/Modules | 0 .../HockeySDK.framework}/PrivateHeaders | 0 .../HockeySDK.framework}/Resources | 0 .../Versions/A/Headers/BITCrashDetails.h | 0 .../A/Headers/BITCrashExceptionApplication.h | 0 .../Versions/A/Headers/BITCrashManager.h | 0 .../A/Headers/BITCrashManagerDelegate.h | 0 .../Versions/A/Headers/BITCrashMetaData.h | 0 .../Versions/A/Headers/BITFeedbackManager.h | 0 .../A/Headers/BITFeedbackWindowController.h | 0 .../Versions/A/Headers/BITHockeyAttachment.h | 0 .../Versions/A/Headers/BITHockeyBaseManager.h | 0 .../Versions/A/Headers/BITHockeyManager.h | 0 .../A/Headers/BITHockeyManagerDelegate.h | 0 .../Versions/A/Headers/BITMetricsManager.h | 0 .../Versions/A/Headers/BITSystemProfile.h | 0 .../Versions/A/Headers/HockeySDK.h | 0 .../Versions/A/Headers/HockeySDKEnums.h | 0 .../Versions/A/Headers/HockeySDKNullability.h | 0 .../HockeySDK.framework}/Versions/A/HockeySDK | Bin .../Versions/A/Modules/module.modulemap | 0 .../A/PrivateHeaders/BITHockeyLoggerPrivate.h | 0 .../Versions/A/Resources/BITCrashReportUI.nib | Bin .../Resources/BITFeedbackWindowController.nib | Bin .../Versions/A/Resources/Info.plist | 0 .../A/Resources/de.lproj/HockeySDK.strings | Bin .../A/Resources/en.lproj/HockeySDK.strings | Bin .../A/Resources/fi.lproj/HockeySDK.strings | Bin .../A/Resources/fr.lproj/HockeySDK.strings | Bin .../A/Resources/it.lproj/HockeySDK.strings | Bin .../A/Resources/ja.lproj/HockeySDK.strings | Bin .../A/Resources/nb.lproj/HockeySDK.strings | Bin .../A/Resources/sv.lproj/HockeySDK.strings | Bin .../Versions/A/_CodeSignature/CodeResources | 0 .../HockeySDK.framework}/Versions/Current | 0 submodules/RLottie_Xcode/RLottie/Info.plist | 24 + submodules/RLottie_Xcode/RLottie/RLottie.h | 20 + .../RLottie_Xcode.xcodeproj/project.pbxproj | 1129 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 49830 bytes .../xcschemes/xcschememanagement.plist | 4 +- .../RLottie_Xcode/Sources}/RLottieBridge.h | 0 .../RLottie_Xcode/Sources}/RLottieBridge.mm | 0 .../TGUIKit.xcodeproj/project.pbxproj | 344 +- .../xcshareddata/xcschemes/TGUIKit.xcscheme | 0 .../xcschemes/xcschememanagement.plist | 0 .../xcschemes/TGUIKit.xcscheme | 0 .../xcschemes/xcschememanagement.plist | 0 .../xcschemes/xcschememanagement.plist | 2 +- .../xcschemes/xcschememanagement.plist | 0 .../xcschemes/TGUIKit.xcscheme | 82 + .../xcschemes/xcschememanagement.plist | 29 + .../TGUIKit/AnimationBlockDelegate.swift | 0 .../TGUIKit}/TGUIKit/AnimationStyle.swift | 0 .../TGUIKit}/TGUIKit/BackNavigationBar.swift | 0 .../TGUIKit}/TGUIKit/BadgeNode.swift | 0 .../TGUIKit}/TGUIKit/BarView.swift | 0 .../TGUIKit}/TGUIKit/Button.swift | 0 .../TGUIKit}/TGUIKit/CAAnimationUtils.swift | 0 .../CatalinaStyledSegmentController.swift | 0 .../TGUIKit}/TGUIKit/CheckBox.swift | 0 .../TGUIKit/ContainableController.swift | 0 .../TGUIKit}/TGUIKit/ContextMenu.swift | 0 .../TGUIKit}/TGUIKit/Control.swift | 2 +- .../TGUIKit}/TGUIKit/DatePicker.swift | 0 .../TGUIKit/DisplayLinkAnimator.swift | 10 +- .../TGUIKit/DisplayLinkDispatcher.swift | 0 .../TGUIKit}/TGUIKit/DraggingView.swift | 0 .../TGUIKit}/TGUIKit/DrawingContext.swift | 0 .../TGUIKit/EditableViewController.swift | 0 .../TGUIKit}/TGUIKit/Extensions.swift | 0 .../TGUIKit}/TGUIKit/GridItem.swift | 0 .../TGUIKit}/TGUIKit/GridItemNode.swift | 0 .../TGUIKit}/TGUIKit/GridNode.swift | 0 .../TGUIKit}/TGUIKit/HorizontalRowView.swift | 0 .../TGUIKit/HorizontalScrollView.swift | 0 .../TGUIKit/HorizontalTableView.swift | 0 .../TGUIKit}/TGUIKit/Image.swift | 0 .../TGUIKit}/TGUIKit/ImageBarView.swift | 0 .../TGUIKit}/TGUIKit/ImageButton.swift | 0 .../TGUIKit}/TGUIKit/ImageView.swift | 0 submodules/TGUIKit/TGUIKit/Info.plist | 26 + .../TGUIKit}/TGUIKit/KeyboardUtils.swift | 0 .../TGUIKit}/TGUIKit/Layer.swift | 0 .../TGUIKit/LinearProgressControl.swift | 0 .../TGUIKit}/TGUIKit/MagnifyView.swift | 2 +- .../TGUIKit/MajorNavigationController.swift | 2 +- .../TGUIKit}/TGUIKit/Modal.swift | 2 +- .../TGUIKit}/TGUIKit/ModalTouchBar.swift | 0 .../TGUIKit}/TGUIKit/NavigationBarView.swift | 0 .../TGUIKit/NavigationModalAction.swift | 0 .../TGUIKit/NavigationModalView.swift | 0 .../TGUIKit/NavigationViewController.swift | 2 +- .../TGUIKit}/TGUIKit/Node.swift | 2 +- .../TGUIKit}/TGUIKit/OverlayControl.swift | 0 .../TGUIKit}/TGUIKit/Popover.swift | 2 +- .../TGUIKit/PresentationResourceCache.swift | 2 +- .../TGUIKit}/TGUIKit/PresentationTheme.swift | 2 +- .../TGUIKit}/TGUIKit/ProgressIndicator.swift | 0 .../TGUIKit}/TGUIKit/ProgressModal.swift | 2 +- .../TGUIKit/RadialProgressContainerView.swift | 0 .../TGUIKit}/TGUIKit/RadialProgressView.swift | 6 +- .../TGUIKit}/TGUIKit/SImageLayer.swift | 2 +- .../TGUIKit}/TGUIKit/SPopoverRowItem.swift | 2 +- .../TGUIKit/SPopoverViewController.swift | 2 +- .../TGUIKit}/TGUIKit/ScrollView.swift | 0 .../TGUIKit}/TGUIKit/SearchView.swift | 2 +- .../TGUIKit/SectionViewController.swift | 2 +- .../TGUIKit}/TGUIKit/SegmentController.swift | 0 .../TGUIKit}/TGUIKit/SelectingControl.swift | 0 .../TGUIKit}/TGUIKit/SelectionRectView.swift | 2 +- .../TGUIKit}/TGUIKit/ShadowView.swift | 0 .../TGUIKit}/TGUIKit/SliderView.swift | 0 .../TGUIKit/SpinningProgressView.swift | 6 +- .../TGUIKit}/TGUIKit/Style.swift | 0 .../TGUIKit}/TGUIKit/SwitchView.swift | 2 +- .../TGUIKit}/TGUIKit/System.swift | 2 +- .../TGUIKit}/TGUIKit/TGClipView.swift | 2 +- .../TGUIKit}/TGUIKit/TGColor.swift | 0 .../TGUIKit}/TGUIKit/TGFont.swift | 0 .../TGUIKit}/TGUIKit/TGSplitView.swift | 2 +- .../TGUIKit}/TGUIKit/TGUIKit.h | 0 .../TGUIKit}/TGUIKit/TabBarController.swift | 0 .../TGUIKit}/TGUIKit/TabBarView.swift | 0 .../TGUIKit}/TGUIKit/TabItem.swift | 0 .../TGUIKit/TableAnimationInterface.swift | 0 .../TGUIKit}/TGUIKit/TableRowItem.swift | 2 +- .../TGUIKit}/TGUIKit/TableRowView.swift | 2 +- .../TGUIKit}/TGUIKit/TableStickItem.swift | 0 .../TGUIKit}/TGUIKit/TableStickView.swift | 0 .../TGUIKit}/TGUIKit/TableView.swift | 4 +- .../TGUIKit/TableViewController.swift | 2 +- .../TGUIKit}/TGUIKit/TextButtonBarView.swift | 0 .../TGUIKit}/TGUIKit/TextNode.swift | 0 .../TGUIKit}/TGUIKit/TextView.swift | 2 +- .../TGUIKit}/TGUIKit/TextViewLabel.swift | 0 .../TGUIKit/TimableProgressView.swift | 6 +- .../TGUIKit}/TGUIKit/TitleButton.swift | 0 .../TGUIKit}/TGUIKit/TitledBarView.swift | 0 .../TGUIKit}/TGUIKit/TokenizedView.swift | 2 +- .../TGUIKit}/TGUIKit/TooltipController.swift | 2 +- .../TGUIKit}/TGUIKit/TransactionHandler.swift | 0 .../TGUIKit/TransformImageArguments.swift | 0 .../TGUIKit}/TGUIKit/UIUtils.swift | 0 .../TGUIKit}/TGUIKit/View.swift | 2 +- .../TGUIKit}/TGUIKit/ViewController.swift | 2 +- .../TGUIKit}/TGUIKit/ViewUtils.swift | 0 .../TGUIKit}/TGUIKit/WeakReference.swift | 0 .../TGUIKit}/TGUIKit/Window.swift | 0 .../TGUIKit}/TGUIKit/WindowSaver.swift | 2 +- submodules/telegram-ios | 2 +- swiftgen.sh | 1 - thrid-party/DFRPrivate/DFRPrivateHeader.h | 49 - thrid-party/DFRPrivate/DFRPrivateHeader.m | 56 - thrid-party/openssl/lib/libcrypto.a | Bin 0 -> 3930864 bytes thrid-party/openssl/openssl/aes.h | 92 + thrid-party/openssl/openssl/asn1.h | 886 +++ thrid-party/openssl/openssl/asn1_mac.h | 10 + thrid-party/openssl/openssl/asn1err.h | 256 + thrid-party/openssl/openssl/asn1t.h | 945 +++ thrid-party/openssl/openssl/async.h | 76 + thrid-party/openssl/openssl/asyncerr.h | 42 + thrid-party/openssl/openssl/bio.h | 800 +++ thrid-party/openssl/openssl/bioerr.h | 124 + thrid-party/openssl/openssl/blowfish.h | 61 + thrid-party/openssl/openssl/bn.h | 539 ++ thrid-party/openssl/openssl/bnerr.h | 100 + thrid-party/openssl/openssl/buffer.h | 58 + thrid-party/openssl/openssl/buffererr.h | 34 + thrid-party/openssl/openssl/camellia.h | 83 + thrid-party/openssl/openssl/cast.h | 53 + thrid-party/openssl/openssl/cmac.h | 41 + thrid-party/openssl/openssl/cms.h | 339 ++ thrid-party/openssl/openssl/cmserr.h | 202 + thrid-party/openssl/openssl/comp.h | 53 + thrid-party/openssl/openssl/comperr.h | 44 + thrid-party/openssl/openssl/conf.h | 168 + thrid-party/openssl/openssl/conf_api.h | 40 + thrid-party/openssl/openssl/conferr.h | 76 + thrid-party/openssl/openssl/crypto.h | 445 ++ thrid-party/openssl/openssl/cryptoerr.h | 57 + thrid-party/openssl/openssl/ct.h | 476 ++ thrid-party/openssl/openssl/cterr.h | 80 + thrid-party/openssl/openssl/des.h | 174 + thrid-party/openssl/openssl/des_old.h | 497 ++ thrid-party/openssl/openssl/dh.h | 340 ++ thrid-party/openssl/openssl/dherr.h | 88 + thrid-party/openssl/openssl/dsa.h | 238 + thrid-party/openssl/openssl/dsaerr.h | 72 + thrid-party/openssl/openssl/dso.h | 451 ++ thrid-party/openssl/openssl/dtls1.h | 55 + thrid-party/openssl/openssl/e_os2.h | 300 + thrid-party/openssl/openssl/ebcdic.h | 33 + thrid-party/openssl/openssl/ec.h | 1479 +++++ thrid-party/openssl/openssl/ecdh.h | 10 + thrid-party/openssl/openssl/ecdsa.h | 10 + thrid-party/openssl/openssl/ecerr.h | 275 + thrid-party/openssl/openssl/engine.h | 751 +++ thrid-party/openssl/openssl/engineerr.h | 111 + thrid-party/openssl/openssl/err.h | 274 + thrid-party/openssl/openssl/evp.h | 1638 ++++++ thrid-party/openssl/openssl/evperr.h | 204 + thrid-party/openssl/openssl/hmac.h | 51 + thrid-party/openssl/openssl/idea.h | 64 + thrid-party/openssl/openssl/kdf.h | 97 + thrid-party/openssl/openssl/kdferr.h | 55 + thrid-party/openssl/openssl/krb5_asn.h | 240 + thrid-party/openssl/openssl/kssl.h | 197 + thrid-party/openssl/openssl/lhash.h | 242 + thrid-party/openssl/openssl/md2.h | 44 + thrid-party/openssl/openssl/md4.h | 51 + thrid-party/openssl/openssl/md5.h | 50 + thrid-party/openssl/openssl/mdc2.h | 42 + thrid-party/openssl/openssl/modes.h | 208 + thrid-party/openssl/openssl/obj_mac.h | 5198 +++++++++++++++++ thrid-party/openssl/openssl/objects.h | 175 + thrid-party/openssl/openssl/objectserr.h | 42 + thrid-party/openssl/openssl/ocsp.h | 352 ++ thrid-party/openssl/openssl/ocsperr.h | 78 + thrid-party/openssl/openssl/opensslconf.h | 195 + thrid-party/openssl/openssl/opensslv.h | 101 + thrid-party/openssl/openssl/ossl_typ.h | 196 + thrid-party/openssl/openssl/pem.h | 378 ++ thrid-party/openssl/openssl/pem2.h | 13 + thrid-party/openssl/openssl/pemerr.h | 103 + thrid-party/openssl/openssl/pkcs12.h | 223 + thrid-party/openssl/openssl/pkcs12err.h | 81 + thrid-party/openssl/openssl/pkcs7.h | 319 + thrid-party/openssl/openssl/pkcs7err.h | 103 + thrid-party/openssl/openssl/pqueue.h | 99 + thrid-party/openssl/openssl/rand.h | 77 + thrid-party/openssl/openssl/rand_drbg.h | 130 + thrid-party/openssl/openssl/randerr.h | 92 + thrid-party/openssl/openssl/rc2.h | 51 + thrid-party/openssl/openssl/rc4.h | 36 + thrid-party/openssl/openssl/rc5.h | 63 + thrid-party/openssl/openssl/ripemd.h | 47 + thrid-party/openssl/openssl/rsa.h | 512 ++ thrid-party/openssl/openssl/rsaerr.h | 167 + thrid-party/openssl/openssl/safestack.h | 207 + thrid-party/openssl/openssl/seed.h | 96 + thrid-party/openssl/openssl/sha.h | 119 + thrid-party/openssl/openssl/srp.h | 135 + thrid-party/openssl/openssl/srtp.h | 50 + thrid-party/openssl/openssl/ssl.h | 2438 ++++++++ thrid-party/openssl/openssl/ssl2.h | 24 + thrid-party/openssl/openssl/ssl23.h | 84 + thrid-party/openssl/openssl/ssl3.h | 339 ++ thrid-party/openssl/openssl/sslerr.h | 772 +++ thrid-party/openssl/openssl/stack.h | 83 + thrid-party/openssl/openssl/store.h | 266 + thrid-party/openssl/openssl/storeerr.h | 91 + thrid-party/openssl/openssl/symhacks.h | 37 + thrid-party/openssl/openssl/tls1.h | 1237 ++++ thrid-party/openssl/openssl/ts.h | 559 ++ thrid-party/openssl/openssl/tserr.h | 132 + thrid-party/openssl/openssl/txt_db.h | 57 + thrid-party/openssl/openssl/ui.h | 368 ++ thrid-party/openssl/openssl/ui_compat.h | 88 + thrid-party/openssl/openssl/uierr.h | 65 + thrid-party/openssl/openssl/whrlpool.h | 48 + thrid-party/openssl/openssl/x509.h | 1047 ++++ thrid-party/openssl/openssl/x509_vfy.h | 628 ++ thrid-party/openssl/openssl/x509err.h | 130 + thrid-party/openssl/openssl/x509v3.h | 937 +++ thrid-party/openssl/openssl/x509v3err.h | 162 + thrid-party/ton/include/auto/tl/tonlib_api.h | 2285 ++++++++ .../ton/include/td/utils/SharedSlice.h | 392 ++ thrid-party/ton/include/td/utils/Slice-decl.h | 224 + thrid-party/ton/include/td/utils/Slice.h | 339 ++ thrid-party/ton/include/td/utils/check.h | 44 + thrid-party/ton/include/td/utils/common.h | 130 + thrid-party/ton/include/td/utils/config.h | 9 + thrid-party/ton/include/td/utils/int_types.h | 57 + .../ton/include/td/utils/port/platform.h | 128 + thrid-party/ton/include/td/utils/unique_ptr.h | 117 + thrid-party/ton/include/tl/TlObject.h | 177 + thrid-party/ton/include/tonlib/Client.h | 52 + .../ton/include/tonlib/tonlib_client_json.h | 39 + .../ton/include/tonlib/tonlibjson_export.h | 42 + thrid-party/ton/lib/libadnllite.a | Bin 0 -> 289504 bytes thrid-party/ton/lib/libcrc32c.a | Bin 0 -> 15608 bytes thrid-party/ton/lib/libkeys.a | Bin 0 -> 143712 bytes thrid-party/ton/lib/liblite-client-common.a | Bin 0 -> 31216 bytes thrid-party/ton/lib/libsmc-envelope.a | Bin 0 -> 229912 bytes thrid-party/ton/lib/libtdactor.a | Bin 0 -> 112592 bytes thrid-party/ton/lib/libtddb.a | Bin 0 -> 223488 bytes thrid-party/ton/lib/libtdnet.a | Bin 0 -> 241888 bytes thrid-party/ton/lib/libtdutils.a | Bin 0 -> 967488 bytes thrid-party/ton/lib/libtl-lite-utils.a | Bin 0 -> 8064 bytes thrid-party/ton/lib/libtl-utils.a | Bin 0 -> 8472 bytes thrid-party/ton/lib/libtl_api.a | Bin 0 -> 4039928 bytes thrid-party/ton/lib/libtl_lite_api.a | Bin 0 -> 381760 bytes thrid-party/ton/lib/libtl_tonlib_api.a | Bin 0 -> 440752 bytes thrid-party/ton/lib/libton_block.a | Bin 0 -> 3791360 bytes thrid-party/ton/lib/libton_crypto.a | Bin 0 -> 4309584 bytes thrid-party/ton/lib/libtonlib.a | Bin 0 -> 2156448 bytes .../generate-images.swift | 0 strings.stencil => tools/strings.stencil | 0 tools/swiftgen.sh | 1 + 939 files changed, 58663 insertions(+), 4650 deletions(-) delete mode 100644 ._Telegram-Mac.xcworkspace delete mode 100644 ._Telegram.xcodeproj delete mode 100644 RLottieMac/._RLottieMac.xcodeproj delete mode 100644 RLottieMac/RLottieMac.xcodeproj/project.pbxproj delete mode 100644 RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/xcuserdata/keepcoder.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 RLottieMac/RLottieMac/RLottieMac.h delete mode 100644 RLottieMac/RLottieMac/YUV.h delete mode 100644 RLottieMac/RLottieMac/YUV.m delete mode 100644 RLottieMac/RLottieMacTests/RLottieMacTests.m delete mode 100644 TGUIKit/._TGUIKit.xcodeproj create mode 100644 Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/IDEFindNavigatorScopes.plist create mode 100644 Telegram-Mac/PhoneNumberUtils.swift create mode 100644 Telegram-Mac/SyncCoreExtension.swift delete mode 100644 Telegram-Mac/animoji/celeb.tgs delete mode 100644 Telegram-Mac/animoji/confused.tgs delete mode 100644 Telegram-Mac/animoji/heart.tgs delete mode 100644 Telegram-Mac/animoji/lol.tgs delete mode 100644 Telegram-Mac/animoji/meh.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_1.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_2.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_3.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_4.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_5.tgs delete mode 100644 Telegram-Mac/animoji/thumbs_up_6.tgs create mode 100644 core-xprojects/EncryptionProviderMac/EncryptionProviderHeader.h create mode 100644 core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename {RLottieMac/RLottieMac.xcodeproj => core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist rename {RLottieMac/RLottieMac => core-xprojects/EncryptionProviderMac}/Info.plist (90%) create mode 100644 core-xprojects/MtProtoKit/MtProtoKit/Info.plist create mode 100644 core-xprojects/MtProtoKit/MtProtoKit/MtProtoKit.h create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj rename {RLottieMac/RLottieMac.xcodeproj => core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (70%) create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcshareddata/xcschemes/MtProtoKit.xcscheme create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/MtProtoKit.xcscheme create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption/Info.plist create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption/OpenSSLEncryption.h create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate rename {RLottieMac/RLottieMac.xcodeproj => core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj}/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist (85%) rename {TGUIKit/TGUIKit => core-xprojects/Postbox/Postbox}/Info.plist (100%) create mode 100644 core-xprojects/Postbox/Postbox/Postbox.h create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Postbox.xcscheme create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxMac.xcscheme create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxTests.xcscheme create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcshareddata/xcschemes/SSignalKit.xcscheme create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SSignalKit.xcscheme create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKit.xcscheme create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKitMac.xcscheme create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/SSignalKit/SwiftSignalKit/Info.plist create mode 100644 core-xprojects/SSignalKit/SwiftSignalKit/SwiftSignalKit.h create mode 100644 core-xprojects/SyncCore/SyncCore/Info.plist create mode 100644 core-xprojects/SyncCore/SyncCore/SyncCore.h create mode 100644 core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate rename {RLottieMac/RLottieMac.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad => core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad}/xcschemes/xcschememanagement.plist (79%) rename {RLottieMac/RLottieMacTests => core-xprojects/TelegramApi/TelegramApi}/Info.plist (90%) create mode 100644 core-xprojects/TelegramApi/TelegramApi/TelegramApi.h create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramApi.xcscheme create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApi.xcscheme create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApiMac.xcscheme create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/TelegramCore/TelegramCore/Info.plist create mode 100644 core-xprojects/TelegramCore/TelegramCore/TelegramCore.h create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramCore.xcscheme create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCore.xcscheme create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCoreMac.xcscheme create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist rename {RLottieMac/RLottieMac.xcodeproj/xcuserdata/keepcoder.xcuserdatad => core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad}/xcschemes/xcschememanagement.plist (79%) create mode 100644 core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/TonBinding/TonBinding/Info.plist create mode 100644 core-xprojects/TonBinding/TonBinding/TonBinding.h create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/xcshareddata/xcschemes/TonBinding.xcscheme create mode 100644 core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/WalletCore/WalletCore/Info.plist create mode 100644 core-xprojects/WalletCore/WalletCore/WalletCore.h create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcshareddata/xcschemes/WalletCore.xcscheme create mode 100644 core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/crc32/Crc32/Crc32 create mode 100644 core-xprojects/crc32/Crc32/Crc32.h create mode 100644 core-xprojects/crc32/Crc32/Info.plist create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Crc32.xcscheme create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/crc32mac.xcscheme create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/libphonenumber/libphonenumber/Info.plist create mode 100644 core-xprojects/libphonenumber/libphonenumber/libphonenumber.h create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcshareddata/xcschemes/libphonenumber.xcscheme create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumber.xcscheme create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumbermac.xcscheme create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 core-xprojects/sqlcipher/sqlcipher/Info.plist create mode 100644 core-xprojects/sqlcipher/sqlcipher/sqlcipher.h create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcshareddata/xcschemes/sqlcipher.xcscheme create mode 100644 core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist rename {HockeySDK.framework => submodules/HockeySDK.framework}/Headers (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/HockeySDK (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Modules (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/PrivateHeaders (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Resources (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITCrashDetails.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITCrashExceptionApplication.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITCrashManager.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITCrashManagerDelegate.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITCrashMetaData.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITFeedbackManager.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITFeedbackWindowController.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITHockeyAttachment.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITHockeyBaseManager.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITHockeyManager.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITHockeyManagerDelegate.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITMetricsManager.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/BITSystemProfile.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/HockeySDK.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/HockeySDKEnums.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Headers/HockeySDKNullability.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/HockeySDK (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Modules/module.modulemap (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/PrivateHeaders/BITHockeyLoggerPrivate.h (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/BITCrashReportUI.nib (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/BITFeedbackWindowController.nib (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/Info.plist (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/de.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/en.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/fi.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/fr.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/it.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/ja.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/nb.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/Resources/sv.lproj/HockeySDK.strings (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/A/_CodeSignature/CodeResources (100%) rename {HockeySDK.framework => submodules/HockeySDK.framework}/Versions/Current (100%) create mode 100644 submodules/RLottie_Xcode/RLottie/Info.plist create mode 100644 submodules/RLottie_Xcode/RLottie/RLottie.h create mode 100644 submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate rename {RLottieMac/RLottieMac.xcodeproj/xcuserdata/telegram.xcuserdatad => submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad}/xcschemes/xcschememanagement.plist (79%) rename {RLottieMac/RLottieMac => submodules/RLottie_Xcode/Sources}/RLottieBridge.h (100%) rename {RLottieMac/RLottieMac => submodules/RLottie_Xcode/Sources}/RLottieBridge.mm (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/project.pbxproj (84%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcshareddata/xcschemes/TGUIKit.xcscheme (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/TGUIKit.xcscheme (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist (92%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit.xcodeproj/xcuserdata/peter.xcuserdatad/xcschemes/xcschememanagement.plist (100%) create mode 100644 submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/TGUIKit.xcscheme create mode 100644 submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist rename {TGUIKit => submodules/TGUIKit}/TGUIKit/AnimationBlockDelegate.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/AnimationStyle.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/BackNavigationBar.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/BadgeNode.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/BarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Button.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/CAAnimationUtils.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/CatalinaStyledSegmentController.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/CheckBox.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ContainableController.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ContextMenu.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Control.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/DatePicker.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/DisplayLinkAnimator.swift (87%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/DisplayLinkDispatcher.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/DraggingView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/DrawingContext.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/EditableViewController.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Extensions.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/GridItem.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/GridItemNode.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/GridNode.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/HorizontalRowView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/HorizontalScrollView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/HorizontalTableView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Image.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ImageBarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ImageButton.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ImageView.swift (100%) create mode 100644 submodules/TGUIKit/TGUIKit/Info.plist rename {TGUIKit => submodules/TGUIKit}/TGUIKit/KeyboardUtils.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Layer.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/LinearProgressControl.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/MagnifyView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/MajorNavigationController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Modal.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ModalTouchBar.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/NavigationBarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/NavigationModalAction.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/NavigationModalView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/NavigationViewController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Node.swift (98%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/OverlayControl.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Popover.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/PresentationResourceCache.swift (98%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/PresentationTheme.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ProgressIndicator.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ProgressModal.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/RadialProgressContainerView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/RadialProgressView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SImageLayer.swift (98%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SPopoverRowItem.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SPopoverViewController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ScrollView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SearchView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SectionViewController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SegmentController.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SelectingControl.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SelectionRectView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ShadowView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SliderView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SpinningProgressView.swift (95%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Style.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/SwitchView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/System.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TGClipView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TGColor.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TGFont.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TGSplitView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TGUIKit.h (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TabBarController.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TabBarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TabItem.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableAnimationInterface.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableRowItem.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableRowView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableStickItem.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableStickView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TableViewController.swift (86%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TextButtonBarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TextNode.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TextView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TextViewLabel.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TimableProgressView.swift (95%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TitleButton.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TitledBarView.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TokenizedView.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TooltipController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TransactionHandler.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/TransformImageArguments.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/UIUtils.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/View.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ViewController.swift (99%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/ViewUtils.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/WeakReference.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/Window.swift (100%) rename {TGUIKit => submodules/TGUIKit}/TGUIKit/WindowSaver.swift (98%) delete mode 100644 swiftgen.sh delete mode 100644 thrid-party/DFRPrivate/DFRPrivateHeader.h delete mode 100644 thrid-party/DFRPrivate/DFRPrivateHeader.m create mode 100644 thrid-party/openssl/lib/libcrypto.a create mode 100644 thrid-party/openssl/openssl/aes.h create mode 100644 thrid-party/openssl/openssl/asn1.h create mode 100644 thrid-party/openssl/openssl/asn1_mac.h create mode 100644 thrid-party/openssl/openssl/asn1err.h create mode 100644 thrid-party/openssl/openssl/asn1t.h create mode 100644 thrid-party/openssl/openssl/async.h create mode 100644 thrid-party/openssl/openssl/asyncerr.h create mode 100644 thrid-party/openssl/openssl/bio.h create mode 100644 thrid-party/openssl/openssl/bioerr.h create mode 100644 thrid-party/openssl/openssl/blowfish.h create mode 100644 thrid-party/openssl/openssl/bn.h create mode 100644 thrid-party/openssl/openssl/bnerr.h create mode 100644 thrid-party/openssl/openssl/buffer.h create mode 100644 thrid-party/openssl/openssl/buffererr.h create mode 100644 thrid-party/openssl/openssl/camellia.h create mode 100644 thrid-party/openssl/openssl/cast.h create mode 100644 thrid-party/openssl/openssl/cmac.h create mode 100644 thrid-party/openssl/openssl/cms.h create mode 100644 thrid-party/openssl/openssl/cmserr.h create mode 100644 thrid-party/openssl/openssl/comp.h create mode 100644 thrid-party/openssl/openssl/comperr.h create mode 100644 thrid-party/openssl/openssl/conf.h create mode 100644 thrid-party/openssl/openssl/conf_api.h create mode 100644 thrid-party/openssl/openssl/conferr.h create mode 100644 thrid-party/openssl/openssl/crypto.h create mode 100644 thrid-party/openssl/openssl/cryptoerr.h create mode 100644 thrid-party/openssl/openssl/ct.h create mode 100644 thrid-party/openssl/openssl/cterr.h create mode 100644 thrid-party/openssl/openssl/des.h create mode 100644 thrid-party/openssl/openssl/des_old.h create mode 100644 thrid-party/openssl/openssl/dh.h create mode 100644 thrid-party/openssl/openssl/dherr.h create mode 100644 thrid-party/openssl/openssl/dsa.h create mode 100644 thrid-party/openssl/openssl/dsaerr.h create mode 100644 thrid-party/openssl/openssl/dso.h create mode 100644 thrid-party/openssl/openssl/dtls1.h create mode 100644 thrid-party/openssl/openssl/e_os2.h create mode 100644 thrid-party/openssl/openssl/ebcdic.h create mode 100644 thrid-party/openssl/openssl/ec.h create mode 100644 thrid-party/openssl/openssl/ecdh.h create mode 100644 thrid-party/openssl/openssl/ecdsa.h create mode 100644 thrid-party/openssl/openssl/ecerr.h create mode 100644 thrid-party/openssl/openssl/engine.h create mode 100644 thrid-party/openssl/openssl/engineerr.h create mode 100644 thrid-party/openssl/openssl/err.h create mode 100644 thrid-party/openssl/openssl/evp.h create mode 100644 thrid-party/openssl/openssl/evperr.h create mode 100644 thrid-party/openssl/openssl/hmac.h create mode 100644 thrid-party/openssl/openssl/idea.h create mode 100644 thrid-party/openssl/openssl/kdf.h create mode 100644 thrid-party/openssl/openssl/kdferr.h create mode 100644 thrid-party/openssl/openssl/krb5_asn.h create mode 100644 thrid-party/openssl/openssl/kssl.h create mode 100644 thrid-party/openssl/openssl/lhash.h create mode 100644 thrid-party/openssl/openssl/md2.h create mode 100644 thrid-party/openssl/openssl/md4.h create mode 100644 thrid-party/openssl/openssl/md5.h create mode 100644 thrid-party/openssl/openssl/mdc2.h create mode 100644 thrid-party/openssl/openssl/modes.h create mode 100644 thrid-party/openssl/openssl/obj_mac.h create mode 100644 thrid-party/openssl/openssl/objects.h create mode 100644 thrid-party/openssl/openssl/objectserr.h create mode 100644 thrid-party/openssl/openssl/ocsp.h create mode 100644 thrid-party/openssl/openssl/ocsperr.h create mode 100644 thrid-party/openssl/openssl/opensslconf.h create mode 100644 thrid-party/openssl/openssl/opensslv.h create mode 100644 thrid-party/openssl/openssl/ossl_typ.h create mode 100644 thrid-party/openssl/openssl/pem.h create mode 100644 thrid-party/openssl/openssl/pem2.h create mode 100644 thrid-party/openssl/openssl/pemerr.h create mode 100644 thrid-party/openssl/openssl/pkcs12.h create mode 100644 thrid-party/openssl/openssl/pkcs12err.h create mode 100644 thrid-party/openssl/openssl/pkcs7.h create mode 100644 thrid-party/openssl/openssl/pkcs7err.h create mode 100644 thrid-party/openssl/openssl/pqueue.h create mode 100644 thrid-party/openssl/openssl/rand.h create mode 100644 thrid-party/openssl/openssl/rand_drbg.h create mode 100644 thrid-party/openssl/openssl/randerr.h create mode 100644 thrid-party/openssl/openssl/rc2.h create mode 100644 thrid-party/openssl/openssl/rc4.h create mode 100644 thrid-party/openssl/openssl/rc5.h create mode 100644 thrid-party/openssl/openssl/ripemd.h create mode 100644 thrid-party/openssl/openssl/rsa.h create mode 100644 thrid-party/openssl/openssl/rsaerr.h create mode 100644 thrid-party/openssl/openssl/safestack.h create mode 100644 thrid-party/openssl/openssl/seed.h create mode 100644 thrid-party/openssl/openssl/sha.h create mode 100644 thrid-party/openssl/openssl/srp.h create mode 100644 thrid-party/openssl/openssl/srtp.h create mode 100644 thrid-party/openssl/openssl/ssl.h create mode 100644 thrid-party/openssl/openssl/ssl2.h create mode 100644 thrid-party/openssl/openssl/ssl23.h create mode 100644 thrid-party/openssl/openssl/ssl3.h create mode 100644 thrid-party/openssl/openssl/sslerr.h create mode 100644 thrid-party/openssl/openssl/stack.h create mode 100644 thrid-party/openssl/openssl/store.h create mode 100644 thrid-party/openssl/openssl/storeerr.h create mode 100644 thrid-party/openssl/openssl/symhacks.h create mode 100644 thrid-party/openssl/openssl/tls1.h create mode 100644 thrid-party/openssl/openssl/ts.h create mode 100644 thrid-party/openssl/openssl/tserr.h create mode 100644 thrid-party/openssl/openssl/txt_db.h create mode 100644 thrid-party/openssl/openssl/ui.h create mode 100644 thrid-party/openssl/openssl/ui_compat.h create mode 100644 thrid-party/openssl/openssl/uierr.h create mode 100644 thrid-party/openssl/openssl/whrlpool.h create mode 100644 thrid-party/openssl/openssl/x509.h create mode 100644 thrid-party/openssl/openssl/x509_vfy.h create mode 100644 thrid-party/openssl/openssl/x509err.h create mode 100644 thrid-party/openssl/openssl/x509v3.h create mode 100644 thrid-party/openssl/openssl/x509v3err.h create mode 100644 thrid-party/ton/include/auto/tl/tonlib_api.h create mode 100644 thrid-party/ton/include/td/utils/SharedSlice.h create mode 100644 thrid-party/ton/include/td/utils/Slice-decl.h create mode 100644 thrid-party/ton/include/td/utils/Slice.h create mode 100644 thrid-party/ton/include/td/utils/check.h create mode 100644 thrid-party/ton/include/td/utils/common.h create mode 100644 thrid-party/ton/include/td/utils/config.h create mode 100644 thrid-party/ton/include/td/utils/int_types.h create mode 100644 thrid-party/ton/include/td/utils/port/platform.h create mode 100644 thrid-party/ton/include/td/utils/unique_ptr.h create mode 100644 thrid-party/ton/include/tl/TlObject.h create mode 100644 thrid-party/ton/include/tonlib/Client.h create mode 100644 thrid-party/ton/include/tonlib/tonlib_client_json.h create mode 100644 thrid-party/ton/include/tonlib/tonlibjson_export.h create mode 100644 thrid-party/ton/lib/libadnllite.a create mode 100644 thrid-party/ton/lib/libcrc32c.a create mode 100644 thrid-party/ton/lib/libkeys.a create mode 100644 thrid-party/ton/lib/liblite-client-common.a create mode 100644 thrid-party/ton/lib/libsmc-envelope.a create mode 100644 thrid-party/ton/lib/libtdactor.a create mode 100644 thrid-party/ton/lib/libtddb.a create mode 100644 thrid-party/ton/lib/libtdnet.a create mode 100644 thrid-party/ton/lib/libtdutils.a create mode 100644 thrid-party/ton/lib/libtl-lite-utils.a create mode 100644 thrid-party/ton/lib/libtl-utils.a create mode 100644 thrid-party/ton/lib/libtl_api.a create mode 100644 thrid-party/ton/lib/libtl_lite_api.a create mode 100644 thrid-party/ton/lib/libtl_tonlib_api.a create mode 100644 thrid-party/ton/lib/libton_block.a create mode 100644 thrid-party/ton/lib/libton_crypto.a create mode 100644 thrid-party/ton/lib/libtonlib.a rename generate-images.swift => tools/generate-images.swift (100%) rename strings.stencil => tools/strings.stencil (100%) create mode 100644 tools/swiftgen.sh diff --git a/._Telegram-Mac.xcworkspace b/._Telegram-Mac.xcworkspace deleted file mode 100644 index aa1a33230423d2c60e191af004f902a30e135ac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vQh2o> z0HT9o0Z_RBnifVNA1W@DoS&ukeOGKnpcvUpO=`EQ>l=XnpUEal#`g34eSd;bq#3>)&Fp>$S}zL G{|^AORVu;& diff --git a/._Telegram.xcodeproj b/._Telegram.xcodeproj deleted file mode 100644 index af09ac3b4dcb19fa81269388f29d93bd9ce4406d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vnsIB_ zEr$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103va%;=; zf#_gZ08}o3riBs6hl)!j=jZAr78K;9>g6OBmy{N#rlcg6q$&plgYR+#R^5K z#rdU0$*Bry`9;|ZnRz9tc_o?od5JkWl?pkjX(b9tIf;4Mz`ih4*N~=A{SWtw41?VN F{{Yd$Dh~hv diff --git a/RLottieMac/RLottieMac.xcodeproj/project.pbxproj b/RLottieMac/RLottieMac.xcodeproj/project.pbxproj deleted file mode 100644 index bd1ad7f7d..000000000 --- a/RLottieMac/RLottieMac.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1804 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - D004D49622B7B0A400926F46 /* RLottieMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D48C22B7B0A300926F46 /* RLottieMac.framework */; }; - D004D49B22B7B0A400926F46 /* RLottieMacTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D004D49A22B7B0A400926F46 /* RLottieMacTests.m */; }; - D004D49D22B7B0A400926F46 /* RLottieMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D48F22B7B0A300926F46 /* RLottieMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D004D5D922B7B3AA00926F46 /* rlottiecommon.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D4B122B7B3AA00926F46 /* rlottiecommon.h */; }; - D004D5DB22B7B3AA00926F46 /* rlottie.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D4B322B7B3AA00926F46 /* rlottie.h */; }; - D004D5DC22B7B3AA00926F46 /* rlottie_capi.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D4B422B7B3AA00926F46 /* rlottie_capi.h */; }; - D004D67222B7B3AA00926F46 /* lottieanimation_capi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55522B7B3AA00926F46 /* lottieanimation_capi.cpp */; }; - D004D67522B7B3AA00926F46 /* lottiemodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55922B7B3AA00926F46 /* lottiemodel.cpp */; }; - D004D67622B7B3AA00926F46 /* lottieitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55A22B7B3AA00926F46 /* lottieitem.cpp */; }; - D004D67822B7B3AA00926F46 /* lottieanimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55C22B7B3AA00926F46 /* lottieanimation.cpp */; }; - D004D67922B7B3AA00926F46 /* lottiekeypath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55D22B7B3AA00926F46 /* lottiekeypath.cpp */; }; - D004D67A22B7B3AA00926F46 /* lottieparser.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D55E22B7B3AA00926F46 /* lottieparser.h */; }; - D004D67B22B7B3AA00926F46 /* lottieparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D55F22B7B3AA00926F46 /* lottieparser.cpp */; }; - D004D67C22B7B3AA00926F46 /* lottieloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D56022B7B3AA00926F46 /* lottieloader.cpp */; }; - D004D67D22B7B3AA00926F46 /* lottieitem.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56122B7B3AA00926F46 /* lottieitem.h */; }; - D004D67E22B7B3AA00926F46 /* lottiekeypath.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56222B7B3AA00926F46 /* lottiekeypath.h */; }; - D004D68022B7B3AA00926F46 /* lottieproxymodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D56422B7B3AA00926F46 /* lottieproxymodel.cpp */; }; - D004D68122B7B3AA00926F46 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56622B7B3AA00926F46 /* fwd.h */; }; - D004D68222B7B3AA00926F46 /* memorystream.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56722B7B3AA00926F46 /* memorystream.h */; }; - D004D68322B7B3AA00926F46 /* reader.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56822B7B3AA00926F46 /* reader.h */; }; - D004D68422B7B3AA00926F46 /* prettywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56922B7B3AA00926F46 /* prettywriter.h */; }; - D004D68522B7B3AA00926F46 /* ostreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56A22B7B3AA00926F46 /* ostreamwrapper.h */; }; - D004D68622B7B3AA00926F46 /* encodedstream.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56B22B7B3AA00926F46 /* encodedstream.h */; }; - D004D68722B7B3AA00926F46 /* filereadstream.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56C22B7B3AA00926F46 /* filereadstream.h */; }; - D004D68822B7B3AA00926F46 /* cursorstreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56D22B7B3AA00926F46 /* cursorstreamwrapper.h */; }; - D004D68922B7B3AA00926F46 /* istreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56E22B7B3AA00926F46 /* istreamwrapper.h */; }; - D004D68A22B7B3AA00926F46 /* stringbuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D56F22B7B3AA00926F46 /* stringbuffer.h */; }; - D004D68B22B7B3AA00926F46 /* ieee754.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57122B7B3AA00926F46 /* ieee754.h */; }; - D004D68C22B7B3AA00926F46 /* strtod.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57222B7B3AA00926F46 /* strtod.h */; }; - D004D68D22B7B3AA00926F46 /* swap.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57322B7B3AA00926F46 /* swap.h */; }; - D004D68E22B7B3AA00926F46 /* regex.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57422B7B3AA00926F46 /* regex.h */; }; - D004D68F22B7B3AA00926F46 /* diyfp.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57522B7B3AA00926F46 /* diyfp.h */; }; - D004D69022B7B3AA00926F46 /* biginteger.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57622B7B3AA00926F46 /* biginteger.h */; }; - D004D69122B7B3AA00926F46 /* strfunc.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57722B7B3AA00926F46 /* strfunc.h */; }; - D004D69222B7B3AA00926F46 /* itoa.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57822B7B3AA00926F46 /* itoa.h */; }; - D004D69322B7B3AA00926F46 /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57922B7B3AA00926F46 /* stack.h */; }; - D004D69422B7B3AA00926F46 /* dtoa.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57A22B7B3AA00926F46 /* dtoa.h */; }; - D004D69522B7B3AA00926F46 /* meta.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57B22B7B3AA00926F46 /* meta.h */; }; - D004D69622B7B3AA00926F46 /* pow10.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57C22B7B3AA00926F46 /* pow10.h */; }; - D004D69722B7B3AA00926F46 /* encodings.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57D22B7B3AA00926F46 /* encodings.h */; }; - D004D69822B7B3AA00926F46 /* schema.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57E22B7B3AA00926F46 /* schema.h */; }; - D004D69922B7B3AA00926F46 /* stream.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D57F22B7B3AA00926F46 /* stream.h */; }; - D004D69A22B7B3AA00926F46 /* filewritestream.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58022B7B3AA00926F46 /* filewritestream.h */; }; - D004D69B22B7B3AA00926F46 /* rapidjson.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58122B7B3AA00926F46 /* rapidjson.h */; }; - D004D69C22B7B3AA00926F46 /* document.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58222B7B3AA00926F46 /* document.h */; }; - D004D69D22B7B3AA00926F46 /* allocators.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58322B7B3AA00926F46 /* allocators.h */; }; - D004D69E22B7B3AA00926F46 /* writer.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58422B7B3AA00926F46 /* writer.h */; }; - D004D69F22B7B3AA00926F46 /* error.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58622B7B3AA00926F46 /* error.h */; }; - D004D6A022B7B3AA00926F46 /* en.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58722B7B3AA00926F46 /* en.h */; }; - D004D6A122B7B3AA00926F46 /* memorybuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58822B7B3AA00926F46 /* memorybuffer.h */; }; - D004D6A222B7B3AA00926F46 /* pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58922B7B3AA00926F46 /* pointer.h */; }; - D004D6A522B7B3AA00926F46 /* lottieproxymodel.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58D22B7B3AA00926F46 /* lottieproxymodel.h */; }; - D004D6A622B7B3AA00926F46 /* lottiemodel.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58E22B7B3AA00926F46 /* lottiemodel.h */; }; - D004D6A722B7B3AA00926F46 /* lottieloader.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D58F22B7B3AA00926F46 /* lottieloader.h */; }; - D004D6A822B7B3AA00926F46 /* vdasher.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D59122B7B3AA00926F46 /* vdasher.h */; }; - D004D6A922B7B3AA00926F46 /* vrle.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D59222B7B3AA00926F46 /* vrle.h */; }; - D004D6AA22B7B3AA00926F46 /* velapsedtimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D59322B7B3AA00926F46 /* velapsedtimer.cpp */; }; - D004D6AB22B7B3AA00926F46 /* vdrawhelper_neon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D59422B7B3AA00926F46 /* vdrawhelper_neon.cpp */; }; - D004D6AC22B7B3AA00926F46 /* velapsedtimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D59522B7B3AA00926F46 /* velapsedtimer.h */; }; - D004D6AE22B7B3AA00926F46 /* vrect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D59722B7B3AA00926F46 /* vrect.cpp */; }; - D004D6AF22B7B3AA00926F46 /* vdasher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D59822B7B3AA00926F46 /* vdasher.cpp */; }; - D004D6B022B7B3AA00926F46 /* vbezier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D59922B7B3AA00926F46 /* vbezier.cpp */; }; - D004D6B222B7B3AA00926F46 /* pixman-arm-neon-asm.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D59C22B7B3AA00926F46 /* pixman-arm-neon-asm.h */; }; - D004D6B322B7B3AA00926F46 /* vregion.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D59D22B7B3AA00926F46 /* vregion.h */; }; - D004D6B622B7B3AA00926F46 /* vregion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5A022B7B3AA00926F46 /* vregion.cpp */; }; - D004D6B722B7B3AA00926F46 /* vpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5A122B7B3AA00926F46 /* vpath.cpp */; }; - D004D6B822B7B3AA00926F46 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5A222B7B3AA00926F46 /* config.h */; }; - D004D6BA22B7B3AA00926F46 /* v_ft_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5A522B7B3AA00926F46 /* v_ft_types.h */; }; - D004D6BB22B7B3AA00926F46 /* v_ft_raster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5A622B7B3AA00926F46 /* v_ft_raster.cpp */; }; - D004D6BD22B7B3AA00926F46 /* v_ft_stroker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5A822B7B3AA00926F46 /* v_ft_stroker.cpp */; }; - D004D6BE22B7B3AA00926F46 /* v_ft_math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5A922B7B3AA00926F46 /* v_ft_math.cpp */; }; - D004D6BF22B7B3AA00926F46 /* v_ft_stroker.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5AA22B7B3AA00926F46 /* v_ft_stroker.h */; }; - D004D6C022B7B3AA00926F46 /* v_ft_math.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5AB22B7B3AA00926F46 /* v_ft_math.h */; }; - D004D6C122B7B3AA00926F46 /* v_ft_raster.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5AC22B7B3AA00926F46 /* v_ft_raster.h */; }; - D004D6C222B7B3AA00926F46 /* vcompositionfunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5AD22B7B3AA00926F46 /* vcompositionfunctions.cpp */; }; - D004D6C322B7B3AA00926F46 /* vdrawhelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5AE22B7B3AA00926F46 /* vdrawhelper.h */; }; - D004D6C422B7B3AA00926F46 /* vbitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5AF22B7B3AA00926F46 /* vbitmap.cpp */; }; - D004D6C522B7B3AA00926F46 /* vdrawable.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B022B7B3AA00926F46 /* vdrawable.h */; }; - D004D6C622B7B3AA00926F46 /* vbitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B122B7B3AA00926F46 /* vbitmap.h */; }; - D004D6C722B7B3AA00926F46 /* vpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B222B7B3AA00926F46 /* vpoint.h */; }; - D004D6C822B7B3AA00926F46 /* vpathmesure.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B322B7B3AA00926F46 /* vpathmesure.h */; }; - D004D6C922B7B3AA00926F46 /* vdebug.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B422B7B3AA00926F46 /* vdebug.h */; }; - D004D6CA22B7B3AA00926F46 /* vpath.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5B522B7B3AA00926F46 /* vpath.h */; }; - D004D6D022B7B3AA00926F46 /* vtaskqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5BC22B7B3AA00926F46 /* vtaskqueue.h */; }; - D004D6D122B7B3AA00926F46 /* vline.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5BD22B7B3AA00926F46 /* vline.h */; }; - D004D6D222B7B3AA00926F46 /* vdrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5BE22B7B3AA00926F46 /* vdrawable.cpp */; }; - D004D6D322B7B3AA00926F46 /* vpathmesure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5BF22B7B3AA00926F46 /* vpathmesure.cpp */; }; - D004D6D422B7B3AA00926F46 /* vbrush.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5C022B7B3AA00926F46 /* vbrush.h */; }; - D004D6D522B7B3AA00926F46 /* vpainter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5C122B7B3AA00926F46 /* vpainter.cpp */; }; - D004D6D622B7B3AA00926F46 /* vdebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5C222B7B3AA00926F46 /* vdebug.cpp */; }; - D004D6D722B7B3AA00926F46 /* vimageloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5C322B7B3AA00926F46 /* vimageloader.cpp */; }; - D004D6D822B7B3AA00926F46 /* vglobal.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5C422B7B3AA00926F46 /* vglobal.h */; }; - D004D6D922B7B3AA00926F46 /* vraster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5C522B7B3AA00926F46 /* vraster.cpp */; }; - D004D6DA22B7B3AA00926F46 /* vpainter.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5C622B7B3AA00926F46 /* vpainter.h */; }; - D004D6DB22B7B3AA00926F46 /* vmatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5C722B7B3AA00926F46 /* vmatrix.cpp */; }; - D004D6DC22B7B3AA00926F46 /* vrect.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5C822B7B3AA00926F46 /* vrect.h */; }; - D004D6DD22B7B3AA00926F46 /* vinterpolator.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5C922B7B3AA00926F46 /* vinterpolator.h */; }; - D004D6DE22B7B3AA00926F46 /* vbezier.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5CA22B7B3AA00926F46 /* vbezier.h */; }; - D004D6DF22B7B3AA00926F46 /* vdrawhelper_sse2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5CB22B7B3AA00926F46 /* vdrawhelper_sse2.cpp */; }; - D004D6E022B7B3AA00926F46 /* vinterpolator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5CC22B7B3AA00926F46 /* vinterpolator.cpp */; }; - D004D6E122B7B3AA00926F46 /* vdrawhelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5CD22B7B3AA00926F46 /* vdrawhelper.cpp */; }; - D004D6E222B7B3AA00926F46 /* vstackallocator.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5CE22B7B3AA00926F46 /* vstackallocator.h */; }; - D004D6E322B7B3AA00926F46 /* vimageloader.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5CF22B7B3AA00926F46 /* vimageloader.h */; }; - D004D6E422B7B3AA00926F46 /* vraster.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5D022B7B3AA00926F46 /* vraster.h */; }; - D004D6E522B7B3AA00926F46 /* vmatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5D122B7B3AA00926F46 /* vmatrix.h */; }; - D004D6E622B7B3AA00926F46 /* vrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5D222B7B3AA00926F46 /* vrle.cpp */; }; - D004D6E722B7B3AA00926F46 /* vcowptr.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D5D322B7B3AA00926F46 /* vcowptr.h */; }; - D004D6E822B7B3AA00926F46 /* vbrush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D004D5D422B7B3AA00926F46 /* vbrush.cpp */; }; - D004D6EC22B7B42700926F46 /* RLottieBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = D004D6EA22B7B42700926F46 /* RLottieBridge.mm */; }; - D004D6ED22B7B42700926F46 /* RLottieBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = D004D6EB22B7B42700926F46 /* RLottieBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D004D6F622B7B83C00926F46 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D6F522B7B83C00926F46 /* QuartzCore.framework */; }; - D004D6F822B7B84800926F46 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D6F722B7B84800926F46 /* CoreMedia.framework */; }; - D004D6FA22B7B84D00926F46 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D6F922B7B84D00926F46 /* Accelerate.framework */; }; - D004D6FC22B7B91A00926F46 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D6FB22B7B91900926F46 /* CoreGraphics.framework */; }; - D014270522B83A5500E8E2AC /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D014270422B83A5500E8E2AC /* libstdc++.tbd */; }; - D014AA1B2316BAB100CE5362 /* lottieitem.h in Headers */ = {isa = PBXBuildFile; fileRef = D014AA1A2316BAB100CE5362 /* lottieitem.h */; }; - D0276B7F22BDA232003155D8 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0276B7E22BDA232003155D8 /* AppKit.framework */; }; - D0276B8222BE4437003155D8 /* YUV.m in Sources */ = {isa = PBXBuildFile; fileRef = D0276B8022BE4436003155D8 /* YUV.m */; }; - D0276B8322BE4437003155D8 /* YUV.h in Headers */ = {isa = PBXBuildFile; fileRef = D0276B8122BE4437003155D8 /* YUV.h */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D004D49722B7B0A400926F46 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D004D48322B7B0A300926F46 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D004D48B22B7B0A300926F46; - remoteInfo = RLottieMac; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - D004D48C22B7B0A300926F46 /* RLottieMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RLottieMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D004D48F22B7B0A300926F46 /* RLottieMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RLottieMac.h; sourceTree = ""; }; - D004D49022B7B0A300926F46 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D004D49522B7B0A400926F46 /* RLottieMacTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RLottieMacTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D004D49A22B7B0A400926F46 /* RLottieMacTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RLottieMacTests.m; sourceTree = ""; }; - D004D49C22B7B0A400926F46 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D004D4AD22B7B3AA00926F46 /* rlottie.spec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rlottie.spec; sourceTree = ""; }; - D004D4AE22B7B3AA00926F46 /* rlottie.manifest */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rlottie.manifest; sourceTree = ""; }; - D004D4B022B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D4B122B7B3AA00926F46 /* rlottiecommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rlottiecommon.h; sourceTree = ""; }; - D004D4B222B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D4B322B7B3AA00926F46 /* rlottie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rlottie.h; sourceTree = ""; }; - D004D4B422B7B3AA00926F46 /* rlottie_capi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rlottie_capi.h; sourceTree = ""; }; - D004D4B522B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D4B722B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D4B822B7B3AA00926F46 /* test_lottieanimation_capi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_lottieanimation_capi.cpp; sourceTree = ""; }; - D004D4B922B7B3AA00926F46 /* test_vpath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_vpath.cpp; sourceTree = ""; }; - D004D4BA22B7B3AA00926F46 /* testsgregion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testsgregion.cpp; sourceTree = ""; }; - D004D4BB22B7B3AA00926F46 /* testsuite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testsuite.cpp; sourceTree = ""; }; - D004D4BC22B7B3AA00926F46 /* test_lottieanimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_lottieanimation.cpp; sourceTree = ""; }; - D004D4BE22B7B3AA00926F46 /* rlottieConfig.cmake.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rlottieConfig.cmake.in; sourceTree = ""; }; - D004D4C022B7B3AA00926F46 /* COPYING.LGPL */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING.LGPL; sourceTree = ""; }; - D004D4C122B7B3AA00926F46 /* COPYING.FTL */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING.FTL; sourceTree = ""; }; - D004D4C222B7B3AA00926F46 /* COPYING.STB */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING.STB; sourceTree = ""; }; - D004D4C322B7B3AA00926F46 /* COPYING.PIX */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING.PIX; sourceTree = ""; }; - D004D4C422B7B3AA00926F46 /* COPYING.RPD */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING.RPD; sourceTree = ""; }; - D004D4C522B7B3AA00926F46 /* AUTHORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS; sourceTree = ""; }; - D004D4C722B7B3AA00926F46 /* lottieview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieview.cpp; sourceTree = ""; }; - D004D4C822B7B3AA00926F46 /* evasapp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = evasapp.h; sourceTree = ""; }; - D004D4C922B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D4CA22B7B3AA00926F46 /* vectortest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vectortest.cpp; sourceTree = ""; }; - D004D4CB22B7B3AA00926F46 /* lottieviewtest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieviewtest.cpp; sourceTree = ""; }; - D004D4CC22B7B3AA00926F46 /* gif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gif.h; sourceTree = ""; }; - D004D4CD22B7B3AA00926F46 /* lottieview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottieview.h; sourceTree = ""; }; - D004D4CE22B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D4CF22B7B3AA00926F46 /* lottieviewer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieviewer.cpp; sourceTree = ""; }; - D004D4D022B7B3AA00926F46 /* uxsampletest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uxsampletest.cpp; sourceTree = ""; }; - D004D4D122B7B3AA00926F46 /* demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = demo.cpp; sourceTree = ""; }; - D004D4D222B7B3AA00926F46 /* pathtest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pathtest.cpp; sourceTree = ""; }; - D004D4D322B7B3AA00926F46 /* evasapp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = evasapp.cpp; sourceTree = ""; }; - D004D4D522B7B3AA00926F46 /* material_wave_loading.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = material_wave_loading.json; sourceTree = ""; }; - D004D4D622B7B3AA00926F46 /* _alarm.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = _alarm.json; sourceTree = ""; }; - D004D4D722B7B3AA00926F46 /* bounching_ball.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = bounching_ball.json; sourceTree = ""; }; - D004D4D822B7B3AA00926F46 /* anubis.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anubis.json; sourceTree = ""; }; - D004D4D922B7B3AA00926F46 /* cooking.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = cooking.json; sourceTree = ""; }; - D004D4DA22B7B3AA00926F46 /* gears.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = gears.json; sourceTree = ""; }; - D004D4DB22B7B3AA00926F46 /* loading_rectangles.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loading_rectangles.json; sourceTree = ""; }; - D004D4DC22B7B3AA00926F46 /* jolly_walker.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = jolly_walker.json; sourceTree = ""; }; - D004D4DD22B7B3AA00926F46 /* intelia_logo_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = intelia_logo_animation.json; sourceTree = ""; }; - D004D4DE22B7B3AA00926F46 /* bell.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = bell.json; sourceTree = ""; }; - D004D4DF22B7B3AA00926F46 /* waves_.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = waves_.json; sourceTree = ""; }; - D004D4E022B7B3AA00926F46 /* static_dynamic_dash.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = static_dynamic_dash.json; sourceTree = ""; }; - D004D4E122B7B3AA00926F46 /* Indicators1.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Indicators1.json; sourceTree = ""; }; - D004D4E222B7B3AA00926F46 /* gradient_animated_background.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = gradient_animated_background.json; sourceTree = ""; }; - D004D4E322B7B3AA00926F46 /* file_transfer.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = file_transfer.json; sourceTree = ""; }; - D004D4E422B7B3AA00926F46 /* tractor.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tractor.json; sourceTree = ""; }; - D004D4E522B7B3AA00926F46 /* worm.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = worm.json; sourceTree = ""; }; - D004D4E622B7B3AA00926F46 /* settings.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = settings.json; sourceTree = ""; }; - D004D4E722B7B3AA00926F46 /* red_box.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = red_box.json; sourceTree = ""; }; - D004D4E822B7B3AA00926F46 /* confetti.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = confetti.json; sourceTree = ""; }; - D004D4E922B7B3AA00926F46 /* 5317-fireworkds.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "5317-fireworkds.json"; sourceTree = ""; }; - D004D4EA22B7B3AA00926F46 /* gears_or_settings.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = gears_or_settings.json; sourceTree = ""; }; - D004D4EB22B7B3AA00926F46 /* loading.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loading.json; sourceTree = ""; }; - D004D4EC22B7B3AA00926F46 /* dna.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = dna.json; sourceTree = ""; }; - D004D4EE22B7B3AA00926F46 /* img_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = img_0.png; sourceTree = ""; }; - D004D4EF22B7B3AA00926F46 /* loading_.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loading_.json; sourceTree = ""; }; - D004D4F022B7B3AA00926F46 /* gradient_sleepy_loader.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = gradient_sleepy_loader.json; sourceTree = ""; }; - D004D4F122B7B3AA00926F46 /* a_cup_of_coffee.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = a_cup_of_coffee.json; sourceTree = ""; }; - D004D4F222B7B3AA00926F46 /* it's_lunch_time!.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "it's_lunch_time!.json"; sourceTree = ""; }; - D004D4F322B7B3AA00926F46 /* ModernPictogramsForLottie_LoudMute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ModernPictogramsForLottie_LoudMute.json; sourceTree = ""; }; - D004D4F422B7B3AA00926F46 /* world_locations.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = world_locations.json; sourceTree = ""; }; - D004D4F522B7B3AA00926F46 /* emoji_shock.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emoji_shock.json; sourceTree = ""; }; - D004D4F622B7B3AA00926F46 /* balloons_with_string.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = balloons_with_string.json; sourceTree = ""; }; - D004D4F722B7B3AA00926F46 /* image_embedded.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = image_embedded.json; sourceTree = ""; }; - D004D4F822B7B3AA00926F46 /* image_test.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = image_test.json; sourceTree = ""; }; - D004D4F922B7B3AA00926F46 /* looping_landscape_+_plane_+_clouds.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "looping_landscape_+_plane_+_clouds.json"; sourceTree = ""; }; - D004D4FA22B7B3AA00926F46 /* cue_lottie2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = cue_lottie2.json; sourceTree = ""; }; - D004D4FB22B7B3AA00926F46 /* crunches.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = crunches.json; sourceTree = ""; }; - D004D4FC22B7B3AA00926F46 /* tile_grid_loading_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = tile_grid_loading_animation.json; sourceTree = ""; }; - D004D4FD22B7B3AA00926F46 /* movie_loading.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = movie_loading.json; sourceTree = ""; }; - D004D4FE22B7B3AA00926F46 /* emoji_wink.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emoji_wink.json; sourceTree = ""; }; - D004D4FF22B7B3AA00926F46 /* hourglass.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = hourglass.json; sourceTree = ""; }; - D004D50022B7B3AA00926F46 /* abstract_circle.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = abstract_circle.json; sourceTree = ""; }; - D004D50122B7B3AA00926F46 /* like.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = like.json; sourceTree = ""; }; - D004D50222B7B3AA00926F46 /* ao.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ao.json; sourceTree = ""; }; - D004D50322B7B3AA00926F46 /* icon_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = icon_animation.json; sourceTree = ""; }; - D004D50422B7B3AA00926F46 /* glow_loading.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = glow_loading.json; sourceTree = ""; }; - D004D50522B7B3AA00926F46 /* StickAndBall.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = StickAndBall.json; sourceTree = ""; }; - D004D50622B7B3AA00926F46 /* 1667-firework.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "1667-firework.json"; sourceTree = ""; }; - D004D50722B7B3AA00926F46 /* dynamic_property.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = dynamic_property.json; sourceTree = ""; }; - D004D50822B7B3AA00926F46 /* imprint.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = imprint.json; sourceTree = ""; }; - D004D50922B7B3AA00926F46 /* done.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = done.json; sourceTree = ""; }; - D004D50A22B7B3AA00926F46 /* pumped_up.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = pumped_up.json; sourceTree = ""; }; - D004D50B22B7B3AA00926F46 /* layout.edj */ = {isa = PBXFileReference; lastKnownFileType = file; path = layout.edj; sourceTree = ""; }; - D004D50C22B7B3AA00926F46 /* layout.edc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = layout.edc; sourceTree = ""; }; - D004D50D22B7B3AA00926F46 /* star_jumps.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = star_jumps.json; sourceTree = ""; }; - D004D50E22B7B3AA00926F46 /* polystar_anim.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = polystar_anim.json; sourceTree = ""; }; - D004D50F22B7B3AA00926F46 /* telegram.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = telegram.json; sourceTree = ""; }; - D004D51022B7B3AA00926F46 /* rowing_machine.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = rowing_machine.json; sourceTree = ""; }; - D004D51122B7B3AA00926F46 /* 5344-honey-sack-hud.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "5344-honey-sack-hud.json"; sourceTree = ""; }; - D004D51222B7B3AA00926F46 /* starts_transparent.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = starts_transparent.json; sourceTree = ""; }; - D004D51322B7B3AA00926F46 /* triib_manage.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = triib_manage.json; sourceTree = ""; }; - D004D51522B7B3AA00926F46 /* F Masks_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "F Masks_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51622B7B3AA00926F46 /* F Masks_All_02_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "F Masks_All_02_1920x1080.json"; sourceTree = ""; }; - D004D51722B7B3AA00926F46 /* B Fills_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "B Fills_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51822B7B3AA00926F46 /* D Transforms_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "D Transforms_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51922B7B3AA00926F46 /* C Strokes_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "C Strokes_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51A22B7B3AA00926F46 /* E Interpolation_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "E Interpolation_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51B22B7B3AA00926F46 /* A Shapes_All_01_1920x1080.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "A Shapes_All_01_1920x1080.json"; sourceTree = ""; }; - D004D51C22B7B3AA00926F46 /* loader_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loader_animation.json; sourceTree = ""; }; - D004D51D22B7B3AA00926F46 /* mnemonics.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = mnemonics.json; sourceTree = ""; }; - D004D51E22B7B3AA00926F46 /* birth_stone_logo.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = birth_stone_logo.json; sourceTree = ""; }; - D004D51F22B7B3AA00926F46 /* ripple_loading_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ripple_loading_animation.json; sourceTree = ""; }; - D004D52022B7B3AA00926F46 /* matte_two_item_with_lowerlayer.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = matte_two_item_with_lowerlayer.json; sourceTree = ""; }; - D004D52122B7B3AA00926F46 /* party_penguin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = party_penguin.json; sourceTree = ""; }; - D004D52222B7B3AA00926F46 /* mask.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = mask.json; sourceTree = ""; }; - D004D52322B7B3AA00926F46 /* loader.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loader.json; sourceTree = ""; }; - D004D52422B7B3AA00926F46 /* acrobatics.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = acrobatics.json; sourceTree = ""; }; - D004D52522B7B3AA00926F46 /* happy.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = happy.json; sourceTree = ""; }; - D004D52622B7B3AA00926F46 /* windmill.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = windmill.json; sourceTree = ""; }; - D004D52722B7B3AA00926F46 /* heart.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = heart.json; sourceTree = ""; }; - D004D52822B7B3AA00926F46 /* a_mountain.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = a_mountain.json; sourceTree = ""; }; - D004D52922B7B3AA00926F46 /* leap_frog_loader.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = leap_frog_loader.json; sourceTree = ""; }; - D004D52A22B7B3AA00926F46 /* 360º_degree.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "360º_degree.json"; sourceTree = ""; }; - D004D52B22B7B3AA00926F46 /* night_own.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = night_own.json; sourceTree = ""; }; - D004D52C22B7B3AA00926F46 /* 3d.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = 3d.json; sourceTree = ""; }; - D004D52D22B7B3AA00926F46 /* 1643-exploding-star.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "1643-exploding-star.json"; sourceTree = ""; }; - D004D52E22B7B3AA00926F46 /* personal_character.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = personal_character.json; sourceTree = ""; }; - D004D52F22B7B3AA00926F46 /* mughead.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = mughead.json; sourceTree = ""; }; - D004D53022B7B3AA00926F46 /* peli-canon.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "peli-canon.json"; sourceTree = ""; }; - D004D53122B7B3AA00926F46 /* 4479-fireworks.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "4479-fireworks.json"; sourceTree = ""; }; - D004D53222B7B3AA00926F46 /* funky_chicken.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = funky_chicken.json; sourceTree = ""; }; - D004D53322B7B3AA00926F46 /* spin,_lil_loader_v2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "spin,_lil_loader_v2.json"; sourceTree = ""; }; - D004D53422B7B3AA00926F46 /* fingerprint_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = fingerprint_success.json; sourceTree = ""; }; - D004D53522B7B3AA00926F46 /* you're_in!.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "you're_in!.json"; sourceTree = ""; }; - D004D53622B7B3AA00926F46 /* maps.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = maps.json; sourceTree = ""; }; - D004D53722B7B3AA00926F46 /* circuit.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = circuit.json; sourceTree = ""; }; - D004D53822B7B3AA00926F46 /* dynamic_path_test.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = dynamic_path_test.json; sourceTree = ""; }; - D004D53922B7B3AA00926F46 /* insta_camera.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = insta_camera.json; sourceTree = ""; }; - D004D53A22B7B3AA00926F46 /* loading_animation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loading_animation.json; sourceTree = ""; }; - D004D53B22B7B3AA00926F46 /* loader_4.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = loader_4.json; sourceTree = ""; }; - D004D53C22B7B3AA00926F46 /* browser.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = browser.json; sourceTree = ""; }; - D004D53D22B7B3AA00926F46 /* square_wheel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = square_wheel.json; sourceTree = ""; }; - D004D53E22B7B3AA00926F46 /* polystar_line_clockwise_trim.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = polystar_line_clockwise_trim.json; sourceTree = ""; }; - D004D53F22B7B3AA00926F46 /* eid_mubarak.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = eid_mubarak.json; sourceTree = ""; }; - D004D54022B7B3AA00926F46 /* ondas.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ondas.json; sourceTree = ""; }; - D004D54122B7B3AA00926F46 /* efl_animview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = efl_animview.cpp; sourceTree = ""; }; - D004D54222B7B3AA00926F46 /* lottie2gif.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottie2gif.cpp; sourceTree = ""; }; - D004D54322B7B3AA00926F46 /* meson_options.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson_options.txt; sourceTree = ""; }; - D004D54422B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D54522B7B3AA00926F46 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - D004D54622B7B3AA00926F46 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING; sourceTree = ""; }; - D004D54722B7B3AA00926F46 /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; - D004D54822B7B3AA00926F46 /* .clang-format */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ".clang-format"; sourceTree = ""; }; - D004D54922B7B3AA00926F46 /* .travis.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .travis.yml; sourceTree = ""; }; - D004D54B22B7B3AA00926F46 /* 2.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = 2.gif; sourceTree = ""; }; - D004D54C22B7B3AA00926F46 /* 1.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = 1.gif; sourceTree = ""; }; - D004D54E22B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D55022B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D55122B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D55222B7B3AA00926F46 /* .lottieplayer.cpp.swp */ = {isa = PBXFileReference; lastKnownFileType = file; path = .lottieplayer.cpp.swp; sourceTree = ""; }; - D004D55422B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D55522B7B3AA00926F46 /* lottieanimation_capi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieanimation_capi.cpp; sourceTree = ""; }; - D004D55622B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D55722B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D55922B7B3AA00926F46 /* lottiemodel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottiemodel.cpp; sourceTree = ""; }; - D004D55A22B7B3AA00926F46 /* lottieitem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieitem.cpp; sourceTree = ""; }; - D004D55B22B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D55C22B7B3AA00926F46 /* lottieanimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieanimation.cpp; sourceTree = ""; }; - D004D55D22B7B3AA00926F46 /* lottiekeypath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottiekeypath.cpp; sourceTree = ""; }; - D004D55E22B7B3AA00926F46 /* lottieparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottieparser.h; sourceTree = ""; }; - D004D55F22B7B3AA00926F46 /* lottieparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieparser.cpp; sourceTree = ""; }; - D004D56022B7B3AA00926F46 /* lottieloader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieloader.cpp; sourceTree = ""; }; - D004D56122B7B3AA00926F46 /* lottieitem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottieitem.h; sourceTree = ""; }; - D004D56222B7B3AA00926F46 /* lottiekeypath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottiekeypath.h; sourceTree = ""; }; - D004D56322B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D56422B7B3AA00926F46 /* lottieproxymodel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lottieproxymodel.cpp; sourceTree = ""; }; - D004D56622B7B3AA00926F46 /* fwd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fwd.h; sourceTree = ""; }; - D004D56722B7B3AA00926F46 /* memorystream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memorystream.h; sourceTree = ""; }; - D004D56822B7B3AA00926F46 /* reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reader.h; sourceTree = ""; }; - D004D56922B7B3AA00926F46 /* prettywriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prettywriter.h; sourceTree = ""; }; - D004D56A22B7B3AA00926F46 /* ostreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ostreamwrapper.h; sourceTree = ""; }; - D004D56B22B7B3AA00926F46 /* encodedstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encodedstream.h; sourceTree = ""; }; - D004D56C22B7B3AA00926F46 /* filereadstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filereadstream.h; sourceTree = ""; }; - D004D56D22B7B3AA00926F46 /* cursorstreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cursorstreamwrapper.h; sourceTree = ""; }; - D004D56E22B7B3AA00926F46 /* istreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = istreamwrapper.h; sourceTree = ""; }; - D004D56F22B7B3AA00926F46 /* stringbuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stringbuffer.h; sourceTree = ""; }; - D004D57122B7B3AA00926F46 /* ieee754.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ieee754.h; sourceTree = ""; }; - D004D57222B7B3AA00926F46 /* strtod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strtod.h; sourceTree = ""; }; - D004D57322B7B3AA00926F46 /* swap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swap.h; sourceTree = ""; }; - D004D57422B7B3AA00926F46 /* regex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regex.h; sourceTree = ""; }; - D004D57522B7B3AA00926F46 /* diyfp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diyfp.h; sourceTree = ""; }; - D004D57622B7B3AA00926F46 /* biginteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = biginteger.h; sourceTree = ""; }; - D004D57722B7B3AA00926F46 /* strfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strfunc.h; sourceTree = ""; }; - D004D57822B7B3AA00926F46 /* itoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itoa.h; sourceTree = ""; }; - D004D57922B7B3AA00926F46 /* stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack.h; sourceTree = ""; }; - D004D57A22B7B3AA00926F46 /* dtoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtoa.h; sourceTree = ""; }; - D004D57B22B7B3AA00926F46 /* meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta.h; sourceTree = ""; }; - D004D57C22B7B3AA00926F46 /* pow10.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pow10.h; sourceTree = ""; }; - D004D57D22B7B3AA00926F46 /* encodings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encodings.h; sourceTree = ""; }; - D004D57E22B7B3AA00926F46 /* schema.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = schema.h; sourceTree = ""; }; - D004D57F22B7B3AA00926F46 /* stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stream.h; sourceTree = ""; }; - D004D58022B7B3AA00926F46 /* filewritestream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filewritestream.h; sourceTree = ""; }; - D004D58122B7B3AA00926F46 /* rapidjson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rapidjson.h; sourceTree = ""; }; - D004D58222B7B3AA00926F46 /* document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = document.h; sourceTree = ""; }; - D004D58322B7B3AA00926F46 /* allocators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = allocators.h; sourceTree = ""; }; - D004D58422B7B3AA00926F46 /* writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = writer.h; sourceTree = ""; }; - D004D58622B7B3AA00926F46 /* error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = ""; }; - D004D58722B7B3AA00926F46 /* en.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = en.h; sourceTree = ""; }; - D004D58822B7B3AA00926F46 /* memorybuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memorybuffer.h; sourceTree = ""; }; - D004D58922B7B3AA00926F46 /* pointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pointer.h; sourceTree = ""; }; - D004D58B22B7B3AA00926F46 /* inttypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = inttypes.h; sourceTree = ""; }; - D004D58C22B7B3AA00926F46 /* stdint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stdint.h; sourceTree = ""; }; - D004D58D22B7B3AA00926F46 /* lottieproxymodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottieproxymodel.h; sourceTree = ""; }; - D004D58E22B7B3AA00926F46 /* lottiemodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottiemodel.h; sourceTree = ""; }; - D004D58F22B7B3AA00926F46 /* lottieloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lottieloader.h; sourceTree = ""; }; - D004D59122B7B3AA00926F46 /* vdasher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdasher.h; sourceTree = ""; }; - D004D59222B7B3AA00926F46 /* vrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vrle.h; sourceTree = ""; }; - D004D59322B7B3AA00926F46 /* velapsedtimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = velapsedtimer.cpp; sourceTree = ""; }; - D004D59422B7B3AA00926F46 /* vdrawhelper_neon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdrawhelper_neon.cpp; sourceTree = ""; }; - D004D59522B7B3AA00926F46 /* velapsedtimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = velapsedtimer.h; sourceTree = ""; }; - D004D59622B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D59722B7B3AA00926F46 /* vrect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vrect.cpp; sourceTree = ""; }; - D004D59822B7B3AA00926F46 /* vdasher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdasher.cpp; sourceTree = ""; }; - D004D59922B7B3AA00926F46 /* vbezier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vbezier.cpp; sourceTree = ""; }; - D004D59B22B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D59C22B7B3AA00926F46 /* pixman-arm-neon-asm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "pixman-arm-neon-asm.h"; sourceTree = ""; }; - D004D59D22B7B3AA00926F46 /* vregion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vregion.h; sourceTree = ""; }; - D004D59E22B7B3AA00926F46 /* pixman-arm-neon-asm.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "pixman-arm-neon-asm.S"; sourceTree = ""; }; - D004D59F22B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D5A022B7B3AA00926F46 /* vregion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vregion.cpp; sourceTree = ""; }; - D004D5A122B7B3AA00926F46 /* vpath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vpath.cpp; sourceTree = ""; }; - D004D5A222B7B3AA00926F46 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; - D004D5A422B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D5A522B7B3AA00926F46 /* v_ft_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = v_ft_types.h; sourceTree = ""; }; - D004D5A622B7B3AA00926F46 /* v_ft_raster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = v_ft_raster.cpp; sourceTree = ""; }; - D004D5A722B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D5A822B7B3AA00926F46 /* v_ft_stroker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = v_ft_stroker.cpp; sourceTree = ""; }; - D004D5A922B7B3AA00926F46 /* v_ft_math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = v_ft_math.cpp; sourceTree = ""; }; - D004D5AA22B7B3AA00926F46 /* v_ft_stroker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = v_ft_stroker.h; sourceTree = ""; }; - D004D5AB22B7B3AA00926F46 /* v_ft_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = v_ft_math.h; sourceTree = ""; }; - D004D5AC22B7B3AA00926F46 /* v_ft_raster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = v_ft_raster.h; sourceTree = ""; }; - D004D5AD22B7B3AA00926F46 /* vcompositionfunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vcompositionfunctions.cpp; sourceTree = ""; }; - D004D5AE22B7B3AA00926F46 /* vdrawhelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdrawhelper.h; sourceTree = ""; }; - D004D5AF22B7B3AA00926F46 /* vbitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vbitmap.cpp; sourceTree = ""; }; - D004D5B022B7B3AA00926F46 /* vdrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdrawable.h; sourceTree = ""; }; - D004D5B122B7B3AA00926F46 /* vbitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbitmap.h; sourceTree = ""; }; - D004D5B222B7B3AA00926F46 /* vpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vpoint.h; sourceTree = ""; }; - D004D5B322B7B3AA00926F46 /* vpathmesure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vpathmesure.h; sourceTree = ""; }; - D004D5B422B7B3AA00926F46 /* vdebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdebug.h; sourceTree = ""; }; - D004D5B522B7B3AA00926F46 /* vpath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vpath.h; sourceTree = ""; }; - D004D5B722B7B3AA00926F46 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - D004D5B822B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D5B922B7B3AA00926F46 /* stb_image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stb_image.h; sourceTree = ""; }; - D004D5BA22B7B3AA00926F46 /* stb_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stb_image.cpp; sourceTree = ""; }; - D004D5BB22B7B3AA00926F46 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; }; - D004D5BC22B7B3AA00926F46 /* vtaskqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vtaskqueue.h; sourceTree = ""; }; - D004D5BD22B7B3AA00926F46 /* vline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vline.h; sourceTree = ""; }; - D004D5BE22B7B3AA00926F46 /* vdrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdrawable.cpp; sourceTree = ""; }; - D004D5BF22B7B3AA00926F46 /* vpathmesure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vpathmesure.cpp; sourceTree = ""; }; - D004D5C022B7B3AA00926F46 /* vbrush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbrush.h; sourceTree = ""; }; - D004D5C122B7B3AA00926F46 /* vpainter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vpainter.cpp; sourceTree = ""; }; - D004D5C222B7B3AA00926F46 /* vdebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdebug.cpp; sourceTree = ""; }; - D004D5C322B7B3AA00926F46 /* vimageloader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vimageloader.cpp; sourceTree = ""; }; - D004D5C422B7B3AA00926F46 /* vglobal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vglobal.h; sourceTree = ""; }; - D004D5C522B7B3AA00926F46 /* vraster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vraster.cpp; sourceTree = ""; }; - D004D5C622B7B3AA00926F46 /* vpainter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vpainter.h; sourceTree = ""; }; - D004D5C722B7B3AA00926F46 /* vmatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vmatrix.cpp; sourceTree = ""; }; - D004D5C822B7B3AA00926F46 /* vrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vrect.h; sourceTree = ""; }; - D004D5C922B7B3AA00926F46 /* vinterpolator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vinterpolator.h; sourceTree = ""; }; - D004D5CA22B7B3AA00926F46 /* vbezier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbezier.h; sourceTree = ""; }; - D004D5CB22B7B3AA00926F46 /* vdrawhelper_sse2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdrawhelper_sse2.cpp; sourceTree = ""; }; - D004D5CC22B7B3AA00926F46 /* vinterpolator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vinterpolator.cpp; sourceTree = ""; }; - D004D5CD22B7B3AA00926F46 /* vdrawhelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vdrawhelper.cpp; sourceTree = ""; }; - D004D5CE22B7B3AA00926F46 /* vstackallocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstackallocator.h; sourceTree = ""; }; - D004D5CF22B7B3AA00926F46 /* vimageloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vimageloader.h; sourceTree = ""; }; - D004D5D022B7B3AA00926F46 /* vraster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vraster.h; sourceTree = ""; }; - D004D5D122B7B3AA00926F46 /* vmatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vmatrix.h; sourceTree = ""; }; - D004D5D222B7B3AA00926F46 /* vrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vrle.cpp; sourceTree = ""; }; - D004D5D322B7B3AA00926F46 /* vcowptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vcowptr.h; sourceTree = ""; }; - D004D5D422B7B3AA00926F46 /* vbrush.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vbrush.cpp; sourceTree = ""; }; - D004D5D522B7B3AA00926F46 /* rlottie.pc.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rlottie.pc.in; sourceTree = ""; }; - D004D6EA22B7B42700926F46 /* RLottieBridge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RLottieBridge.mm; sourceTree = ""; }; - D004D6EB22B7B42700926F46 /* RLottieBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RLottieBridge.h; sourceTree = ""; }; - D004D6EF22B7B59000926F46 /* libc++.1.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.1.tbd"; path = "usr/lib/libc++.1.tbd"; sourceTree = SDKROOT; }; - D004D6F222B7B73300926F46 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - D004D6F522B7B83C00926F46 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - D004D6F722B7B84800926F46 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; - D004D6F922B7B84D00926F46 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - D004D6FB22B7B91900926F46 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - D014270422B83A5500E8E2AC /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; }; - D014AA1A2316BAB100CE5362 /* lottieitem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lottieitem.h; sourceTree = ""; }; - D014AA1C2316BABE00CE5362 /* lottieitem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = lottieitem.cpp; sourceTree = ""; }; - D014AA1E2316BC2500CE5362 /* lottieanimation_capi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = lottieanimation_capi.cpp; sourceTree = ""; }; - D014AA202316BC3200CE5362 /* lottieanimation_capi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = lottieanimation_capi.cpp; path = ../submodules/rlottie/src/binding/c/lottieanimation_capi.cpp; sourceTree = ""; }; - D0276B7E22BDA232003155D8 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - D0276B8022BE4436003155D8 /* YUV.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUV.m; sourceTree = ""; }; - D0276B8122BE4437003155D8 /* YUV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUV.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D004D48922B7B0A300926F46 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0276B7F22BDA232003155D8 /* AppKit.framework in Frameworks */, - D014270522B83A5500E8E2AC /* libstdc++.tbd in Frameworks */, - D004D6FC22B7B91A00926F46 /* CoreGraphics.framework in Frameworks */, - D004D6FA22B7B84D00926F46 /* Accelerate.framework in Frameworks */, - D004D6F822B7B84800926F46 /* CoreMedia.framework in Frameworks */, - D004D6F622B7B83C00926F46 /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D004D49222B7B0A400926F46 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D004D49622B7B0A400926F46 /* RLottieMac.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D004D48222B7B0A300926F46 = { - isa = PBXGroup; - children = ( - D014AA1E2316BC2500CE5362 /* lottieanimation_capi.cpp */, - D014AA202316BC3200CE5362 /* lottieanimation_capi.cpp */, - D014AA1C2316BABE00CE5362 /* lottieitem.cpp */, - D014AA1A2316BAB100CE5362 /* lottieitem.h */, - D004D48E22B7B0A300926F46 /* RLottieMac */, - D004D49922B7B0A400926F46 /* RLottieMacTests */, - D004D48D22B7B0A300926F46 /* Products */, - D004D6EE22B7B59000926F46 /* Frameworks */, - ); - sourceTree = ""; - }; - D004D48D22B7B0A300926F46 /* Products */ = { - isa = PBXGroup; - children = ( - D004D48C22B7B0A300926F46 /* RLottieMac.framework */, - D004D49522B7B0A400926F46 /* RLottieMacTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - D004D48E22B7B0A300926F46 /* RLottieMac */ = { - isa = PBXGroup; - children = ( - D0276B8122BE4437003155D8 /* YUV.h */, - D0276B8022BE4436003155D8 /* YUV.m */, - D004D6EB22B7B42700926F46 /* RLottieBridge.h */, - D004D6EA22B7B42700926F46 /* RLottieBridge.mm */, - D004D4AB22B7B3AA00926F46 /* rlottie */, - D004D48F22B7B0A300926F46 /* RLottieMac.h */, - D004D49022B7B0A300926F46 /* Info.plist */, - ); - path = RLottieMac; - sourceTree = ""; - }; - D004D49922B7B0A400926F46 /* RLottieMacTests */ = { - isa = PBXGroup; - children = ( - D004D49A22B7B0A400926F46 /* RLottieMacTests.m */, - D004D49C22B7B0A400926F46 /* Info.plist */, - ); - path = RLottieMacTests; - sourceTree = ""; - }; - D004D4AB22B7B3AA00926F46 /* rlottie */ = { - isa = PBXGroup; - children = ( - D004D4AC22B7B3AA00926F46 /* packaging */, - D004D4AF22B7B3AA00926F46 /* inc */, - D004D4B522B7B3AA00926F46 /* CMakeLists.txt */, - D004D4B622B7B3AA00926F46 /* test */, - D004D4BD22B7B3AA00926F46 /* cmake */, - D004D4BF22B7B3AA00926F46 /* licenses */, - D004D4C522B7B3AA00926F46 /* AUTHORS */, - D004D4C622B7B3AA00926F46 /* example */, - D004D54322B7B3AA00926F46 /* meson_options.txt */, - D004D54422B7B3AA00926F46 /* meson.build */, - D004D54522B7B3AA00926F46 /* README.md */, - D004D54622B7B3AA00926F46 /* COPYING */, - D004D54722B7B3AA00926F46 /* .gitignore */, - D004D54822B7B3AA00926F46 /* .clang-format */, - D004D54922B7B3AA00926F46 /* .travis.yml */, - D004D54A22B7B3AA00926F46 /* .Gifs */, - D004D54D22B7B3AA00926F46 /* src */, - D004D5D522B7B3AA00926F46 /* rlottie.pc.in */, - ); - name = rlottie; - path = ../../submodules/rlottie; - sourceTree = ""; - }; - D004D4AC22B7B3AA00926F46 /* packaging */ = { - isa = PBXGroup; - children = ( - D004D4AD22B7B3AA00926F46 /* rlottie.spec */, - D004D4AE22B7B3AA00926F46 /* rlottie.manifest */, - ); - path = packaging; - sourceTree = ""; - }; - D004D4AF22B7B3AA00926F46 /* inc */ = { - isa = PBXGroup; - children = ( - D004D4B022B7B3AA00926F46 /* CMakeLists.txt */, - D004D4B122B7B3AA00926F46 /* rlottiecommon.h */, - D004D4B222B7B3AA00926F46 /* meson.build */, - D004D4B322B7B3AA00926F46 /* rlottie.h */, - D004D4B422B7B3AA00926F46 /* rlottie_capi.h */, - ); - path = inc; - sourceTree = ""; - }; - D004D4B622B7B3AA00926F46 /* test */ = { - isa = PBXGroup; - children = ( - D004D4B722B7B3AA00926F46 /* meson.build */, - D004D4B822B7B3AA00926F46 /* test_lottieanimation_capi.cpp */, - D004D4B922B7B3AA00926F46 /* test_vpath.cpp */, - D004D4BA22B7B3AA00926F46 /* testsgregion.cpp */, - D004D4BB22B7B3AA00926F46 /* testsuite.cpp */, - D004D4BC22B7B3AA00926F46 /* test_lottieanimation.cpp */, - ); - path = test; - sourceTree = ""; - }; - D004D4BD22B7B3AA00926F46 /* cmake */ = { - isa = PBXGroup; - children = ( - D004D4BE22B7B3AA00926F46 /* rlottieConfig.cmake.in */, - ); - path = cmake; - sourceTree = ""; - }; - D004D4BF22B7B3AA00926F46 /* licenses */ = { - isa = PBXGroup; - children = ( - D004D4C022B7B3AA00926F46 /* COPYING.LGPL */, - D004D4C122B7B3AA00926F46 /* COPYING.FTL */, - D004D4C222B7B3AA00926F46 /* COPYING.STB */, - D004D4C322B7B3AA00926F46 /* COPYING.PIX */, - D004D4C422B7B3AA00926F46 /* COPYING.RPD */, - ); - path = licenses; - sourceTree = ""; - }; - D004D4C622B7B3AA00926F46 /* example */ = { - isa = PBXGroup; - children = ( - D004D4C722B7B3AA00926F46 /* lottieview.cpp */, - D004D4C822B7B3AA00926F46 /* evasapp.h */, - D004D4C922B7B3AA00926F46 /* CMakeLists.txt */, - D004D4CA22B7B3AA00926F46 /* vectortest.cpp */, - D004D4CB22B7B3AA00926F46 /* lottieviewtest.cpp */, - D004D4CC22B7B3AA00926F46 /* gif.h */, - D004D4CD22B7B3AA00926F46 /* lottieview.h */, - D004D4CE22B7B3AA00926F46 /* meson.build */, - D004D4CF22B7B3AA00926F46 /* lottieviewer.cpp */, - D004D4D022B7B3AA00926F46 /* uxsampletest.cpp */, - D004D4D122B7B3AA00926F46 /* demo.cpp */, - D004D4D222B7B3AA00926F46 /* pathtest.cpp */, - D004D4D322B7B3AA00926F46 /* evasapp.cpp */, - D004D4D422B7B3AA00926F46 /* resource */, - D004D54122B7B3AA00926F46 /* efl_animview.cpp */, - D004D54222B7B3AA00926F46 /* lottie2gif.cpp */, - ); - path = example; - sourceTree = ""; - }; - D004D4D422B7B3AA00926F46 /* resource */ = { - isa = PBXGroup; - children = ( - D004D4D522B7B3AA00926F46 /* material_wave_loading.json */, - D004D4D622B7B3AA00926F46 /* _alarm.json */, - D004D4D722B7B3AA00926F46 /* bounching_ball.json */, - D004D4D822B7B3AA00926F46 /* anubis.json */, - D004D4D922B7B3AA00926F46 /* cooking.json */, - D004D4DA22B7B3AA00926F46 /* gears.json */, - D004D4DB22B7B3AA00926F46 /* loading_rectangles.json */, - D004D4DC22B7B3AA00926F46 /* jolly_walker.json */, - D004D4DD22B7B3AA00926F46 /* intelia_logo_animation.json */, - D004D4DE22B7B3AA00926F46 /* bell.json */, - D004D4DF22B7B3AA00926F46 /* waves_.json */, - D004D4E022B7B3AA00926F46 /* static_dynamic_dash.json */, - D004D4E122B7B3AA00926F46 /* Indicators1.json */, - D004D4E222B7B3AA00926F46 /* gradient_animated_background.json */, - D004D4E322B7B3AA00926F46 /* file_transfer.json */, - D004D4E422B7B3AA00926F46 /* tractor.json */, - D004D4E522B7B3AA00926F46 /* worm.json */, - D004D4E622B7B3AA00926F46 /* settings.json */, - D004D4E722B7B3AA00926F46 /* red_box.json */, - D004D4E822B7B3AA00926F46 /* confetti.json */, - D004D4E922B7B3AA00926F46 /* 5317-fireworkds.json */, - D004D4EA22B7B3AA00926F46 /* gears_or_settings.json */, - D004D4EB22B7B3AA00926F46 /* loading.json */, - D004D4EC22B7B3AA00926F46 /* dna.json */, - D004D4ED22B7B3AA00926F46 /* images */, - D004D4EF22B7B3AA00926F46 /* loading_.json */, - D004D4F022B7B3AA00926F46 /* gradient_sleepy_loader.json */, - D004D4F122B7B3AA00926F46 /* a_cup_of_coffee.json */, - D004D4F222B7B3AA00926F46 /* it's_lunch_time!.json */, - D004D4F322B7B3AA00926F46 /* ModernPictogramsForLottie_LoudMute.json */, - D004D4F422B7B3AA00926F46 /* world_locations.json */, - D004D4F522B7B3AA00926F46 /* emoji_shock.json */, - D004D4F622B7B3AA00926F46 /* balloons_with_string.json */, - D004D4F722B7B3AA00926F46 /* image_embedded.json */, - D004D4F822B7B3AA00926F46 /* image_test.json */, - D004D4F922B7B3AA00926F46 /* looping_landscape_+_plane_+_clouds.json */, - D004D4FA22B7B3AA00926F46 /* cue_lottie2.json */, - D004D4FB22B7B3AA00926F46 /* crunches.json */, - D004D4FC22B7B3AA00926F46 /* tile_grid_loading_animation.json */, - D004D4FD22B7B3AA00926F46 /* movie_loading.json */, - D004D4FE22B7B3AA00926F46 /* emoji_wink.json */, - D004D4FF22B7B3AA00926F46 /* hourglass.json */, - D004D50022B7B3AA00926F46 /* abstract_circle.json */, - D004D50122B7B3AA00926F46 /* like.json */, - D004D50222B7B3AA00926F46 /* ao.json */, - D004D50322B7B3AA00926F46 /* icon_animation.json */, - D004D50422B7B3AA00926F46 /* glow_loading.json */, - D004D50522B7B3AA00926F46 /* StickAndBall.json */, - D004D50622B7B3AA00926F46 /* 1667-firework.json */, - D004D50722B7B3AA00926F46 /* dynamic_property.json */, - D004D50822B7B3AA00926F46 /* imprint.json */, - D004D50922B7B3AA00926F46 /* done.json */, - D004D50A22B7B3AA00926F46 /* pumped_up.json */, - D004D50B22B7B3AA00926F46 /* layout.edj */, - D004D50C22B7B3AA00926F46 /* layout.edc */, - D004D50D22B7B3AA00926F46 /* star_jumps.json */, - D004D50E22B7B3AA00926F46 /* polystar_anim.json */, - D004D50F22B7B3AA00926F46 /* telegram.json */, - D004D51022B7B3AA00926F46 /* rowing_machine.json */, - D004D51122B7B3AA00926F46 /* 5344-honey-sack-hud.json */, - D004D51222B7B3AA00926F46 /* starts_transparent.json */, - D004D51322B7B3AA00926F46 /* triib_manage.json */, - D004D51422B7B3AA00926F46 /* UXSample_1920x1080 */, - D004D51C22B7B3AA00926F46 /* loader_animation.json */, - D004D51D22B7B3AA00926F46 /* mnemonics.json */, - D004D51E22B7B3AA00926F46 /* birth_stone_logo.json */, - D004D51F22B7B3AA00926F46 /* ripple_loading_animation.json */, - D004D52022B7B3AA00926F46 /* matte_two_item_with_lowerlayer.json */, - D004D52122B7B3AA00926F46 /* party_penguin.json */, - D004D52222B7B3AA00926F46 /* mask.json */, - D004D52322B7B3AA00926F46 /* loader.json */, - D004D52422B7B3AA00926F46 /* acrobatics.json */, - D004D52522B7B3AA00926F46 /* happy.json */, - D004D52622B7B3AA00926F46 /* windmill.json */, - D004D52722B7B3AA00926F46 /* heart.json */, - D004D52822B7B3AA00926F46 /* a_mountain.json */, - D004D52922B7B3AA00926F46 /* leap_frog_loader.json */, - D004D52A22B7B3AA00926F46 /* 360º_degree.json */, - D004D52B22B7B3AA00926F46 /* night_own.json */, - D004D52C22B7B3AA00926F46 /* 3d.json */, - D004D52D22B7B3AA00926F46 /* 1643-exploding-star.json */, - D004D52E22B7B3AA00926F46 /* personal_character.json */, - D004D52F22B7B3AA00926F46 /* mughead.json */, - D004D53022B7B3AA00926F46 /* peli-canon.json */, - D004D53122B7B3AA00926F46 /* 4479-fireworks.json */, - D004D53222B7B3AA00926F46 /* funky_chicken.json */, - D004D53322B7B3AA00926F46 /* spin,_lil_loader_v2.json */, - D004D53422B7B3AA00926F46 /* fingerprint_success.json */, - D004D53522B7B3AA00926F46 /* you're_in!.json */, - D004D53622B7B3AA00926F46 /* maps.json */, - D004D53722B7B3AA00926F46 /* circuit.json */, - D004D53822B7B3AA00926F46 /* dynamic_path_test.json */, - D004D53922B7B3AA00926F46 /* insta_camera.json */, - D004D53A22B7B3AA00926F46 /* loading_animation.json */, - D004D53B22B7B3AA00926F46 /* loader_4.json */, - D004D53C22B7B3AA00926F46 /* browser.json */, - D004D53D22B7B3AA00926F46 /* square_wheel.json */, - D004D53E22B7B3AA00926F46 /* polystar_line_clockwise_trim.json */, - D004D53F22B7B3AA00926F46 /* eid_mubarak.json */, - D004D54022B7B3AA00926F46 /* ondas.json */, - ); - path = resource; - sourceTree = ""; - }; - D004D4ED22B7B3AA00926F46 /* images */ = { - isa = PBXGroup; - children = ( - D004D4EE22B7B3AA00926F46 /* img_0.png */, - ); - path = images; - sourceTree = ""; - }; - D004D51422B7B3AA00926F46 /* UXSample_1920x1080 */ = { - isa = PBXGroup; - children = ( - D004D51522B7B3AA00926F46 /* F Masks_All_01_1920x1080.json */, - D004D51622B7B3AA00926F46 /* F Masks_All_02_1920x1080.json */, - D004D51722B7B3AA00926F46 /* B Fills_All_01_1920x1080.json */, - D004D51822B7B3AA00926F46 /* D Transforms_All_01_1920x1080.json */, - D004D51922B7B3AA00926F46 /* C Strokes_All_01_1920x1080.json */, - D004D51A22B7B3AA00926F46 /* E Interpolation_All_01_1920x1080.json */, - D004D51B22B7B3AA00926F46 /* A Shapes_All_01_1920x1080.json */, - ); - path = UXSample_1920x1080; - sourceTree = ""; - }; - D004D54A22B7B3AA00926F46 /* .Gifs */ = { - isa = PBXGroup; - children = ( - D004D54B22B7B3AA00926F46 /* 2.gif */, - D004D54C22B7B3AA00926F46 /* 1.gif */, - ); - path = .Gifs; - sourceTree = ""; - }; - D004D54D22B7B3AA00926F46 /* src */ = { - isa = PBXGroup; - children = ( - D004D54E22B7B3AA00926F46 /* CMakeLists.txt */, - D004D54F22B7B3AA00926F46 /* binding */, - D004D55722B7B3AA00926F46 /* meson.build */, - D004D55822B7B3AA00926F46 /* lottie */, - D004D59022B7B3AA00926F46 /* vector */, - ); - path = src; - sourceTree = ""; - }; - D004D54F22B7B3AA00926F46 /* binding */ = { - isa = PBXGroup; - children = ( - D004D55022B7B3AA00926F46 /* CMakeLists.txt */, - D004D55122B7B3AA00926F46 /* meson.build */, - D004D55222B7B3AA00926F46 /* .lottieplayer.cpp.swp */, - D004D55322B7B3AA00926F46 /* c */, - ); - path = binding; - sourceTree = ""; - }; - D004D55322B7B3AA00926F46 /* c */ = { - isa = PBXGroup; - children = ( - D004D55422B7B3AA00926F46 /* CMakeLists.txt */, - D004D55522B7B3AA00926F46 /* lottieanimation_capi.cpp */, - D004D55622B7B3AA00926F46 /* meson.build */, - ); - path = c; - sourceTree = ""; - }; - D004D55822B7B3AA00926F46 /* lottie */ = { - isa = PBXGroup; - children = ( - D004D55922B7B3AA00926F46 /* lottiemodel.cpp */, - D004D55A22B7B3AA00926F46 /* lottieitem.cpp */, - D004D55B22B7B3AA00926F46 /* CMakeLists.txt */, - D004D55C22B7B3AA00926F46 /* lottieanimation.cpp */, - D004D55D22B7B3AA00926F46 /* lottiekeypath.cpp */, - D004D55E22B7B3AA00926F46 /* lottieparser.h */, - D004D55F22B7B3AA00926F46 /* lottieparser.cpp */, - D004D56022B7B3AA00926F46 /* lottieloader.cpp */, - D004D56122B7B3AA00926F46 /* lottieitem.h */, - D004D56222B7B3AA00926F46 /* lottiekeypath.h */, - D004D56322B7B3AA00926F46 /* meson.build */, - D004D56422B7B3AA00926F46 /* lottieproxymodel.cpp */, - D004D56522B7B3AA00926F46 /* rapidjson */, - D004D58D22B7B3AA00926F46 /* lottieproxymodel.h */, - D004D58E22B7B3AA00926F46 /* lottiemodel.h */, - D004D58F22B7B3AA00926F46 /* lottieloader.h */, - ); - path = lottie; - sourceTree = ""; - }; - D004D56522B7B3AA00926F46 /* rapidjson */ = { - isa = PBXGroup; - children = ( - D004D56622B7B3AA00926F46 /* fwd.h */, - D004D56722B7B3AA00926F46 /* memorystream.h */, - D004D56822B7B3AA00926F46 /* reader.h */, - D004D56922B7B3AA00926F46 /* prettywriter.h */, - D004D56A22B7B3AA00926F46 /* ostreamwrapper.h */, - D004D56B22B7B3AA00926F46 /* encodedstream.h */, - D004D56C22B7B3AA00926F46 /* filereadstream.h */, - D004D56D22B7B3AA00926F46 /* cursorstreamwrapper.h */, - D004D56E22B7B3AA00926F46 /* istreamwrapper.h */, - D004D56F22B7B3AA00926F46 /* stringbuffer.h */, - D004D57022B7B3AA00926F46 /* internal */, - D004D57D22B7B3AA00926F46 /* encodings.h */, - D004D57E22B7B3AA00926F46 /* schema.h */, - D004D57F22B7B3AA00926F46 /* stream.h */, - D004D58022B7B3AA00926F46 /* filewritestream.h */, - D004D58122B7B3AA00926F46 /* rapidjson.h */, - D004D58222B7B3AA00926F46 /* document.h */, - D004D58322B7B3AA00926F46 /* allocators.h */, - D004D58422B7B3AA00926F46 /* writer.h */, - D004D58522B7B3AA00926F46 /* error */, - D004D58822B7B3AA00926F46 /* memorybuffer.h */, - D004D58922B7B3AA00926F46 /* pointer.h */, - D004D58A22B7B3AA00926F46 /* msinttypes */, - ); - path = rapidjson; - sourceTree = ""; - }; - D004D57022B7B3AA00926F46 /* internal */ = { - isa = PBXGroup; - children = ( - D004D57122B7B3AA00926F46 /* ieee754.h */, - D004D57222B7B3AA00926F46 /* strtod.h */, - D004D57322B7B3AA00926F46 /* swap.h */, - D004D57422B7B3AA00926F46 /* regex.h */, - D004D57522B7B3AA00926F46 /* diyfp.h */, - D004D57622B7B3AA00926F46 /* biginteger.h */, - D004D57722B7B3AA00926F46 /* strfunc.h */, - D004D57822B7B3AA00926F46 /* itoa.h */, - D004D57922B7B3AA00926F46 /* stack.h */, - D004D57A22B7B3AA00926F46 /* dtoa.h */, - D004D57B22B7B3AA00926F46 /* meta.h */, - D004D57C22B7B3AA00926F46 /* pow10.h */, - ); - path = internal; - sourceTree = ""; - }; - D004D58522B7B3AA00926F46 /* error */ = { - isa = PBXGroup; - children = ( - D004D58622B7B3AA00926F46 /* error.h */, - D004D58722B7B3AA00926F46 /* en.h */, - ); - path = error; - sourceTree = ""; - }; - D004D58A22B7B3AA00926F46 /* msinttypes */ = { - isa = PBXGroup; - children = ( - D004D58B22B7B3AA00926F46 /* inttypes.h */, - D004D58C22B7B3AA00926F46 /* stdint.h */, - ); - path = msinttypes; - sourceTree = ""; - }; - D004D59022B7B3AA00926F46 /* vector */ = { - isa = PBXGroup; - children = ( - D004D59122B7B3AA00926F46 /* vdasher.h */, - D004D59222B7B3AA00926F46 /* vrle.h */, - D004D59322B7B3AA00926F46 /* velapsedtimer.cpp */, - D004D59422B7B3AA00926F46 /* vdrawhelper_neon.cpp */, - D004D59522B7B3AA00926F46 /* velapsedtimer.h */, - D004D59622B7B3AA00926F46 /* CMakeLists.txt */, - D004D59722B7B3AA00926F46 /* vrect.cpp */, - D004D59822B7B3AA00926F46 /* vdasher.cpp */, - D004D59922B7B3AA00926F46 /* vbezier.cpp */, - D004D59A22B7B3AA00926F46 /* pixman */, - D004D5A122B7B3AA00926F46 /* vpath.cpp */, - D004D5A222B7B3AA00926F46 /* config.h */, - D004D5A322B7B3AA00926F46 /* freetype */, - D004D5AD22B7B3AA00926F46 /* vcompositionfunctions.cpp */, - D004D5AE22B7B3AA00926F46 /* vdrawhelper.h */, - D004D5AF22B7B3AA00926F46 /* vbitmap.cpp */, - D004D5B022B7B3AA00926F46 /* vdrawable.h */, - D004D5B122B7B3AA00926F46 /* vbitmap.h */, - D004D5B222B7B3AA00926F46 /* vpoint.h */, - D004D5B322B7B3AA00926F46 /* vpathmesure.h */, - D004D5B422B7B3AA00926F46 /* vdebug.h */, - D004D5B522B7B3AA00926F46 /* vpath.h */, - D004D5B622B7B3AA00926F46 /* stb */, - D004D5BB22B7B3AA00926F46 /* meson.build */, - D004D5BC22B7B3AA00926F46 /* vtaskqueue.h */, - D004D5BD22B7B3AA00926F46 /* vline.h */, - D004D5BE22B7B3AA00926F46 /* vdrawable.cpp */, - D004D5BF22B7B3AA00926F46 /* vpathmesure.cpp */, - D004D5C022B7B3AA00926F46 /* vbrush.h */, - D004D5C122B7B3AA00926F46 /* vpainter.cpp */, - D004D5C222B7B3AA00926F46 /* vdebug.cpp */, - D004D5C322B7B3AA00926F46 /* vimageloader.cpp */, - D004D5C422B7B3AA00926F46 /* vglobal.h */, - D004D5C522B7B3AA00926F46 /* vraster.cpp */, - D004D5C622B7B3AA00926F46 /* vpainter.h */, - D004D5C722B7B3AA00926F46 /* vmatrix.cpp */, - D004D5C822B7B3AA00926F46 /* vrect.h */, - D004D5C922B7B3AA00926F46 /* vinterpolator.h */, - D004D5CA22B7B3AA00926F46 /* vbezier.h */, - D004D5CB22B7B3AA00926F46 /* vdrawhelper_sse2.cpp */, - D004D5CC22B7B3AA00926F46 /* vinterpolator.cpp */, - D004D5CD22B7B3AA00926F46 /* vdrawhelper.cpp */, - D004D5CE22B7B3AA00926F46 /* vstackallocator.h */, - D004D5CF22B7B3AA00926F46 /* vimageloader.h */, - D004D5D022B7B3AA00926F46 /* vraster.h */, - D004D5D122B7B3AA00926F46 /* vmatrix.h */, - D004D5D222B7B3AA00926F46 /* vrle.cpp */, - D004D5D322B7B3AA00926F46 /* vcowptr.h */, - D004D5D422B7B3AA00926F46 /* vbrush.cpp */, - ); - path = vector; - sourceTree = ""; - }; - D004D59A22B7B3AA00926F46 /* pixman */ = { - isa = PBXGroup; - children = ( - D004D59B22B7B3AA00926F46 /* CMakeLists.txt */, - D004D59C22B7B3AA00926F46 /* pixman-arm-neon-asm.h */, - D004D59D22B7B3AA00926F46 /* vregion.h */, - D004D59E22B7B3AA00926F46 /* pixman-arm-neon-asm.S */, - D004D59F22B7B3AA00926F46 /* meson.build */, - D004D5A022B7B3AA00926F46 /* vregion.cpp */, - ); - path = pixman; - sourceTree = ""; - }; - D004D5A322B7B3AA00926F46 /* freetype */ = { - isa = PBXGroup; - children = ( - D004D5A422B7B3AA00926F46 /* CMakeLists.txt */, - D004D5A522B7B3AA00926F46 /* v_ft_types.h */, - D004D5A622B7B3AA00926F46 /* v_ft_raster.cpp */, - D004D5A722B7B3AA00926F46 /* meson.build */, - D004D5A822B7B3AA00926F46 /* v_ft_stroker.cpp */, - D004D5A922B7B3AA00926F46 /* v_ft_math.cpp */, - D004D5AA22B7B3AA00926F46 /* v_ft_stroker.h */, - D004D5AB22B7B3AA00926F46 /* v_ft_math.h */, - D004D5AC22B7B3AA00926F46 /* v_ft_raster.h */, - ); - path = freetype; - sourceTree = ""; - }; - D004D5B622B7B3AA00926F46 /* stb */ = { - isa = PBXGroup; - children = ( - D004D5B722B7B3AA00926F46 /* CMakeLists.txt */, - D004D5B822B7B3AA00926F46 /* meson.build */, - D004D5B922B7B3AA00926F46 /* stb_image.h */, - D004D5BA22B7B3AA00926F46 /* stb_image.cpp */, - ); - path = stb; - sourceTree = ""; - }; - D004D6EE22B7B59000926F46 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D0276B7E22BDA232003155D8 /* AppKit.framework */, - D014270422B83A5500E8E2AC /* libstdc++.tbd */, - D004D6FB22B7B91900926F46 /* CoreGraphics.framework */, - D004D6F922B7B84D00926F46 /* Accelerate.framework */, - D004D6F722B7B84800926F46 /* CoreMedia.framework */, - D004D6F522B7B83C00926F46 /* QuartzCore.framework */, - D004D6F222B7B73300926F46 /* libc++.tbd */, - D004D6EF22B7B59000926F46 /* libc++.1.tbd */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D004D48722B7B0A300926F46 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0276B8322BE4437003155D8 /* YUV.h in Headers */, - D004D6E322B7B3AA00926F46 /* vimageloader.h in Headers */, - D014AA1B2316BAB100CE5362 /* lottieitem.h in Headers */, - D004D6ED22B7B42700926F46 /* RLottieBridge.h in Headers */, - D004D68E22B7B3AA00926F46 /* regex.h in Headers */, - D004D68122B7B3AA00926F46 /* fwd.h in Headers */, - D004D49D22B7B0A400926F46 /* RLottieMac.h in Headers */, - D004D69522B7B3AA00926F46 /* meta.h in Headers */, - D004D6C622B7B3AA00926F46 /* vbitmap.h in Headers */, - D004D68522B7B3AA00926F46 /* ostreamwrapper.h in Headers */, - D004D6A222B7B3AA00926F46 /* pointer.h in Headers */, - D004D6BA22B7B3AA00926F46 /* v_ft_types.h in Headers */, - D004D69122B7B3AA00926F46 /* strfunc.h in Headers */, - D004D69D22B7B3AA00926F46 /* allocators.h in Headers */, - D004D68322B7B3AA00926F46 /* reader.h in Headers */, - D004D6A522B7B3AA00926F46 /* lottieproxymodel.h in Headers */, - D004D6A922B7B3AA00926F46 /* vrle.h in Headers */, - D004D67E22B7B3AA00926F46 /* lottiekeypath.h in Headers */, - D004D68D22B7B3AA00926F46 /* swap.h in Headers */, - D004D69A22B7B3AA00926F46 /* filewritestream.h in Headers */, - D004D6A822B7B3AA00926F46 /* vdasher.h in Headers */, - D004D69422B7B3AA00926F46 /* dtoa.h in Headers */, - D004D69622B7B3AA00926F46 /* pow10.h in Headers */, - D004D6D822B7B3AA00926F46 /* vglobal.h in Headers */, - D004D6B822B7B3AA00926F46 /* config.h in Headers */, - D004D68622B7B3AA00926F46 /* encodedstream.h in Headers */, - D004D69B22B7B3AA00926F46 /* rapidjson.h in Headers */, - D004D68222B7B3AA00926F46 /* memorystream.h in Headers */, - D004D6DD22B7B3AA00926F46 /* vinterpolator.h in Headers */, - D004D69E22B7B3AA00926F46 /* writer.h in Headers */, - D004D6C322B7B3AA00926F46 /* vdrawhelper.h in Headers */, - D004D68422B7B3AA00926F46 /* prettywriter.h in Headers */, - D004D6D022B7B3AA00926F46 /* vtaskqueue.h in Headers */, - D004D69722B7B3AA00926F46 /* encodings.h in Headers */, - D004D69922B7B3AA00926F46 /* stream.h in Headers */, - D004D6C122B7B3AA00926F46 /* v_ft_raster.h in Headers */, - D004D6A722B7B3AA00926F46 /* lottieloader.h in Headers */, - D004D5DB22B7B3AA00926F46 /* rlottie.h in Headers */, - D004D69322B7B3AA00926F46 /* stack.h in Headers */, - D004D68922B7B3AA00926F46 /* istreamwrapper.h in Headers */, - D004D5DC22B7B3AA00926F46 /* rlottie_capi.h in Headers */, - D004D6A622B7B3AA00926F46 /* lottiemodel.h in Headers */, - D004D69022B7B3AA00926F46 /* biginteger.h in Headers */, - D004D67D22B7B3AA00926F46 /* lottieitem.h in Headers */, - D004D68C22B7B3AA00926F46 /* strtod.h in Headers */, - D004D6E222B7B3AA00926F46 /* vstackallocator.h in Headers */, - D004D69822B7B3AA00926F46 /* schema.h in Headers */, - D004D6B222B7B3AA00926F46 /* pixman-arm-neon-asm.h in Headers */, - D004D6C822B7B3AA00926F46 /* vpathmesure.h in Headers */, - D004D6B322B7B3AA00926F46 /* vregion.h in Headers */, - D004D6A122B7B3AA00926F46 /* memorybuffer.h in Headers */, - D004D6D422B7B3AA00926F46 /* vbrush.h in Headers */, - D004D6C522B7B3AA00926F46 /* vdrawable.h in Headers */, - D004D68B22B7B3AA00926F46 /* ieee754.h in Headers */, - D004D68722B7B3AA00926F46 /* filereadstream.h in Headers */, - D004D6DE22B7B3AA00926F46 /* vbezier.h in Headers */, - D004D6A022B7B3AA00926F46 /* en.h in Headers */, - D004D6E522B7B3AA00926F46 /* vmatrix.h in Headers */, - D004D68A22B7B3AA00926F46 /* stringbuffer.h in Headers */, - D004D6DC22B7B3AA00926F46 /* vrect.h in Headers */, - D004D68822B7B3AA00926F46 /* cursorstreamwrapper.h in Headers */, - D004D69222B7B3AA00926F46 /* itoa.h in Headers */, - D004D67A22B7B3AA00926F46 /* lottieparser.h in Headers */, - D004D69C22B7B3AA00926F46 /* document.h in Headers */, - D004D68F22B7B3AA00926F46 /* diyfp.h in Headers */, - D004D6CA22B7B3AA00926F46 /* vpath.h in Headers */, - D004D6E722B7B3AA00926F46 /* vcowptr.h in Headers */, - D004D69F22B7B3AA00926F46 /* error.h in Headers */, - D004D6C922B7B3AA00926F46 /* vdebug.h in Headers */, - D004D6AC22B7B3AA00926F46 /* velapsedtimer.h in Headers */, - D004D6C022B7B3AA00926F46 /* v_ft_math.h in Headers */, - D004D6DA22B7B3AA00926F46 /* vpainter.h in Headers */, - D004D6BF22B7B3AA00926F46 /* v_ft_stroker.h in Headers */, - D004D6D122B7B3AA00926F46 /* vline.h in Headers */, - D004D6C722B7B3AA00926F46 /* vpoint.h in Headers */, - D004D5D922B7B3AA00926F46 /* rlottiecommon.h in Headers */, - D004D6E422B7B3AA00926F46 /* vraster.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D004D48B22B7B0A300926F46 /* RLottieMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D004D4A022B7B0A400926F46 /* Build configuration list for PBXNativeTarget "RLottieMac" */; - buildPhases = ( - D004D48722B7B0A300926F46 /* Headers */, - D004D48822B7B0A300926F46 /* Sources */, - D004D48922B7B0A300926F46 /* Frameworks */, - D004D48A22B7B0A300926F46 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RLottieMac; - productName = RLottieMac; - productReference = D004D48C22B7B0A300926F46 /* RLottieMac.framework */; - productType = "com.apple.product-type.framework"; - }; - D004D49422B7B0A400926F46 /* RLottieMacTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D004D4A322B7B0A400926F46 /* Build configuration list for PBXNativeTarget "RLottieMacTests" */; - buildPhases = ( - D004D49122B7B0A400926F46 /* Sources */, - D004D49222B7B0A400926F46 /* Frameworks */, - D004D49322B7B0A400926F46 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D004D49822B7B0A400926F46 /* PBXTargetDependency */, - ); - name = RLottieMacTests; - productName = RLottieMacTests; - productReference = D004D49522B7B0A400926F46 /* RLottieMacTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D004D48322B7B0A300926F46 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = "Mikhail Filimonov"; - TargetAttributes = { - D004D48B22B7B0A300926F46 = { - CreatedOnToolsVersion = 10.1; - }; - D004D49422B7B0A400926F46 = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = D004D48622B7B0A300926F46 /* Build configuration list for PBXProject "RLottieMac" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D004D48222B7B0A300926F46; - productRefGroup = D004D48D22B7B0A300926F46 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D004D48B22B7B0A300926F46 /* RLottieMac */, - D004D49422B7B0A400926F46 /* RLottieMacTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D004D48A22B7B0A300926F46 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D004D49322B7B0A400926F46 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D004D48822B7B0A300926F46 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D004D67222B7B3AA00926F46 /* lottieanimation_capi.cpp in Sources */, - D004D6AB22B7B3AA00926F46 /* vdrawhelper_neon.cpp in Sources */, - D004D67922B7B3AA00926F46 /* lottiekeypath.cpp in Sources */, - D004D67522B7B3AA00926F46 /* lottiemodel.cpp in Sources */, - D004D6C422B7B3AA00926F46 /* vbitmap.cpp in Sources */, - D004D6DB22B7B3AA00926F46 /* vmatrix.cpp in Sources */, - D004D6D722B7B3AA00926F46 /* vimageloader.cpp in Sources */, - D004D6BD22B7B3AA00926F46 /* v_ft_stroker.cpp in Sources */, - D004D6AA22B7B3AA00926F46 /* velapsedtimer.cpp in Sources */, - D004D6BE22B7B3AA00926F46 /* v_ft_math.cpp in Sources */, - D004D6BB22B7B3AA00926F46 /* v_ft_raster.cpp in Sources */, - D004D6E622B7B3AA00926F46 /* vrle.cpp in Sources */, - D004D6C222B7B3AA00926F46 /* vcompositionfunctions.cpp in Sources */, - D004D67B22B7B3AA00926F46 /* lottieparser.cpp in Sources */, - D004D6EC22B7B42700926F46 /* RLottieBridge.mm in Sources */, - D004D6E822B7B3AA00926F46 /* vbrush.cpp in Sources */, - D004D6D222B7B3AA00926F46 /* vdrawable.cpp in Sources */, - D004D6AF22B7B3AA00926F46 /* vdasher.cpp in Sources */, - D004D67C22B7B3AA00926F46 /* lottieloader.cpp in Sources */, - D004D68022B7B3AA00926F46 /* lottieproxymodel.cpp in Sources */, - D004D6D622B7B3AA00926F46 /* vdebug.cpp in Sources */, - D004D6B622B7B3AA00926F46 /* vregion.cpp in Sources */, - D004D6AE22B7B3AA00926F46 /* vrect.cpp in Sources */, - D004D6D922B7B3AA00926F46 /* vraster.cpp in Sources */, - D004D67822B7B3AA00926F46 /* lottieanimation.cpp in Sources */, - D004D6B022B7B3AA00926F46 /* vbezier.cpp in Sources */, - D004D6E022B7B3AA00926F46 /* vinterpolator.cpp in Sources */, - D004D6DF22B7B3AA00926F46 /* vdrawhelper_sse2.cpp in Sources */, - D004D6E122B7B3AA00926F46 /* vdrawhelper.cpp in Sources */, - D004D6D522B7B3AA00926F46 /* vpainter.cpp in Sources */, - D004D6D322B7B3AA00926F46 /* vpathmesure.cpp in Sources */, - D0276B8222BE4437003155D8 /* YUV.m in Sources */, - D004D6B722B7B3AA00926F46 /* vpath.cpp in Sources */, - D004D67622B7B3AA00926F46 /* lottieitem.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D004D49122B7B0A400926F46 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D004D49B22B7B0A400926F46 /* RLottieMacTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D004D49822B7B0A400926F46 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D004D48B22B7B0A300926F46 /* RLottieMac */; - targetProxy = D004D49722B7B0A400926F46 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - D004D49E22B7B0A400926F46 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D004D4A122B7B0A400926F46 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ""; - INFOPLIST_FILE = RLottieMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = mh_dylib; - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - }; - name = DebugHockeyapp; - }; - D004D4A422B7B0A400926F46 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - INFOPLIST_FILE = RLottieMacTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMacTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugHockeyapp; - }; - D004D6FF22B7BB8400926F46 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D004D70022B7BB8400926F46 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ""; - INFOPLIST_FILE = RLottieMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = mh_dylib; - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - }; - name = DebugAppStore; - }; - D004D70122B7BB8400926F46 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - INFOPLIST_FILE = RLottieMacTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMacTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStore; - }; - D004D70222B7BB9E00926F46 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D004D70322B7BB9E00926F46 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ""; - INFOPLIST_FILE = RLottieMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = mh_dylib; - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - }; - name = HockeyappMacAlpha; - }; - D004D70422B7BB9E00926F46 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - INFOPLIST_FILE = RLottieMacTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMacTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = HockeyappMacAlpha; - }; - D004D70522B7BBA900926F46 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D004D70622B7BBA900926F46 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu99; - INFOPLIST_FILE = RLottieMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = mh_dylib; - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - }; - name = ReleaseHockeyapp; - }; - D004D70722B7BBA900926F46 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - INFOPLIST_FILE = RLottieMacTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMacTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyapp; - }; - D004D70822B7BBB000926F46 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D004D70922B7BBB000926F46 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu99; - INFOPLIST_FILE = RLottieMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = mh_dylib; - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - }; - name = ReleaseAppStore; - }; - D004D70A22B7BBB000926F46 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - INFOPLIST_FILE = RLottieMacTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.overtake.RLottieMacTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStore; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D004D48622B7B0A300926F46 /* Build configuration list for PBXProject "RLottieMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D004D49E22B7B0A400926F46 /* DebugHockeyapp */, - D004D70222B7BB9E00926F46 /* HockeyappMacAlpha */, - D004D6FF22B7BB8400926F46 /* DebugAppStore */, - D004D70822B7BBB000926F46 /* ReleaseAppStore */, - D004D70522B7BBA900926F46 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; - D004D4A022B7B0A400926F46 /* Build configuration list for PBXNativeTarget "RLottieMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D004D4A122B7B0A400926F46 /* DebugHockeyapp */, - D004D70322B7BB9E00926F46 /* HockeyappMacAlpha */, - D004D70022B7BB8400926F46 /* DebugAppStore */, - D004D70922B7BBB000926F46 /* ReleaseAppStore */, - D004D70622B7BBA900926F46 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; - D004D4A322B7B0A400926F46 /* Build configuration list for PBXNativeTarget "RLottieMacTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D004D4A422B7B0A400926F46 /* DebugHockeyapp */, - D004D70422B7BB9E00926F46 /* HockeyappMacAlpha */, - D004D70122B7BB8400926F46 /* DebugAppStore */, - D004D70A22B7BBB000926F46 /* ReleaseAppStore */, - D004D70722B7BBA900926F46 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; -/* End XCConfigurationList section */ - }; - rootObject = D004D48322B7B0A300926F46 /* Project object */; -} diff --git a/RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/xcuserdata/keepcoder.xcuserdatad/UserInterfaceState.xcuserstate b/RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/xcuserdata/keepcoder.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 39394dc444503ffad66f52aa78ae75b41be3d5f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9511 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 K_l`SpKmI>NqqXG# diff --git a/RLottieMac/RLottieMac/RLottieMac.h b/RLottieMac/RLottieMac/RLottieMac.h deleted file mode 100644 index 151c473fd..000000000 --- a/RLottieMac/RLottieMac/RLottieMac.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// RLottieMac.h -// RLottieMac -// -// Created by Mikhail Filimonov on 17/06/2019. -// Copyright © 2019 Mikhail Filimonov. All rights reserved. -// - -#import - -//! Project version number for RLottieMac. -FOUNDATION_EXPORT double RLottieMacVersionNumber; - -//! Project version string for RLottieMac. -FOUNDATION_EXPORT const unsigned char RLottieMacVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - -#import "RLottieBridge.h"; diff --git a/RLottieMac/RLottieMac/YUV.h b/RLottieMac/RLottieMac/YUV.h deleted file mode 100644 index 5dc344317..000000000 --- a/RLottieMac/RLottieMac/YUV.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -void encodeARGBToARGB422A(uint8_t * _Nonnull bgrg422, uint8_t * _Nonnull a, uint8_t const * _Nonnull argb, int width, int height); - -//void encodeBRGR422AToRGBA(uint8_t const * _Nonnull bgrg422, uint8_t const * _Nonnull a, uint8_t * _Nonnull argb, int width, int height); diff --git a/RLottieMac/RLottieMac/YUV.m b/RLottieMac/RLottieMac/YUV.m deleted file mode 100644 index f49fd4348..000000000 --- a/RLottieMac/RLottieMac/YUV.m +++ /dev/null @@ -1,67 +0,0 @@ -#import "YUV.h" - -void encodeARGBToARGB422A(uint8_t *argb422, uint8_t *a, uint8_t const *argb, int width, int height) { - int i, j; - int lineWidth = width * 2; - for (j = 0; j < height; j++) { - for (i = 0; i < width; i += 2) { - int A1 = argb[(j * width + i) * 4 + 0]; - int R1 = argb[(j * width + i) * 4 + 1]; - int G1 = argb[(j * width + i) * 4 + 2]; - int B1 = argb[(j * width + i) * 4 + 3]; - - int A2 = argb[(j * width + i) * 4 + 4]; - int R2 = argb[(j * width + i) * 4 + 5]; - int G2 = argb[(j * width + i) * 4 + 6]; - int B2 = argb[(j * width + i) * 4 + 7]; - - argb422[j * lineWidth + (i / 2) * 4 + 0] = (uint8_t)((B1 + B2) >> 1); - argb422[j * lineWidth + (i / 2) * 4 + 1] = G1; - argb422[j * lineWidth + (i / 2) * 4 + 2] = (uint8_t)((R1 + R2) >> 1); - argb422[j * lineWidth + (i / 2) * 4 + 3] = G2; - - a[j * width + i + 0] = A1; - a[j * width + i + 1] = A2; - } - } -} -// -//void encodeBRGR422AToRGBA(uint8_t const * _Nonnull bgrg422, uint8_t const * _Nonnull const a, uint8_t * _Nonnull argb, int width, int height) { -// int i, j; -// int lineWidth = width * 2; -// for (j = 0; j < height; j++) { -// for (i = 0; i < width; i += 2) { -// argb[(j * width + i) * 4 + 0] = a[j * width + i + 0]; -// argb[(j * width + i) * 4 + 3] = bgrg422[j * lineWidth + (i / 2) * 4 + 2]; -// argb[(j * width + i) * 4 + 2] = bgrg422[j * lineWidth + (i / 2) * 4 + 1]; -// argb[(j * width + i) * 4 + 1] = bgrg422[j * lineWidth + (i / 2) * 4 + 0]; -// -// argb[(j * width + i) * 4 + 4] = a[j * width + i + 1]; -// argb[(j * width + i) * 4 + 7] = bgrg422[j * lineWidth + (i / 2) * 4 + 2]; -// argb[(j * width + i) * 4 + 6] = bgrg422[j * lineWidth + (i / 2) * 4 + 3]; -// argb[(j * width + i) * 4 + 5] = bgrg422[j * lineWidth + (i / 2) * 4 + 0]; -// } -// } -//} -// -//NSData * _Nonnull encodeSparseBuffer(uint8_t const * _Nonnull bytes, int length) { -// NSMutableData *result = [[NSMutableData alloc] init]; -// int offset = 0; -// int currentStart = 0; -// int currentType = 0; -// while (offset != length) { -// if (bytes[offset] == 0) { -// if (currentType != 0) { -// -// } -// } else { -// -// } -// offset += 1; -// } -// return result; -//} -// -//void decodeSparseeBuffer(uint8_t * _Nonnull bytes, uint8_t const * _Nonnull buffer) { -// -//} diff --git a/RLottieMac/RLottieMacTests/RLottieMacTests.m b/RLottieMac/RLottieMacTests/RLottieMacTests.m deleted file mode 100644 index 7e2f7c1a8..000000000 --- a/RLottieMac/RLottieMacTests/RLottieMacTests.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// RLottieMacTests.m -// RLottieMacTests -// -// Created by Mikhail Filimonov on 17/06/2019. -// Copyright © 2019 Mikhail Filimonov. All rights reserved. -// - -#import - -@interface RLottieMacTests : XCTestCase - -@end - -@implementation RLottieMacTests - -- (void)setUp { - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. -} - -- (void)testExample { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/TGUIKit/._TGUIKit.xcodeproj b/TGUIKit/._TGUIKit.xcodeproj deleted file mode 100644 index 8eb7765276b74b1f30f65f42e44cfce852619a6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103v%AVT@ z(h1bTumFe!(6lfj#HEt+bM+Dn3UX5QauSP6N{drdQW8s2l>>r7dKNZ_#e(R^RVSrE z^e7k&fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!3hjApq)Zf-o4!g=AzFD-@*` z=a&{Grz)i77iBAC=9Q%8m1O4UCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VMKin%a408Yf F0|4icD~|vG diff --git a/Telegram-Mac.xcworkspace/contents.xcworkspacedata b/Telegram-Mac.xcworkspace/contents.xcworkspacedata index 06b277280..254d58087 100644 --- a/Telegram-Mac.xcworkspace/contents.xcworkspacedata +++ b/Telegram-Mac.xcworkspace/contents.xcworkspacedata @@ -2,31 +2,49 @@ + location = "group:submodules/TGUIKit/TGUIKit.xcodeproj"> + location = "group:submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj"> + location = "group:core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj"> + location = "group:core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj"> + location = "group:core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj"> + location = "group:core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj"> + location = "group:core-xprojects/crc32/Crc32_Xcode.xcodeproj"> + location = "group:core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj"> + location = "group:core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj"> + + + + + + + + + + + + @@ -40,9 +58,6 @@ - - diff --git a/Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/IDEFindNavigatorScopes.plist b/Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/IDEFindNavigatorScopes.plist new file mode 100644 index 000000000..5dd5da85f --- /dev/null +++ b/Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/IDEFindNavigatorScopes.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/Telegram-Mac.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate index 4befc4194a2d36d8627d946e6e3f108ffdc0b4db..3858629e484cc5cc32981be46a1dd194da50f76e 100644 GIT binary patch literal 519583 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
KX=HJ}lv$QI6(RIe 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 literal 134918 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 @@ -64,11 +64,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Telegram-Mac/PhotoCache.swift" - timestampString = "0" + timestampString = "594309560.503511" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "73" - endingLineNumber = "73" + startingLineNumber = "75" + endingLineNumber = "75" landmarkName = "stringValue" landmarkType = "24"> @@ -81,11 +81,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Telegram-Mac/PeerMediaListController.swift" - timestampString = "0" + timestampString = "594309560.503551" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "291" - endingLineNumber = "291" + startingLineNumber = "292" + endingLineNumber = "292" landmarkName = "deinit" landmarkType = "7"> @@ -98,11 +98,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Telegram-Mac/InAppLinks.swift" - timestampString = "594118917.131496" + timestampString = "594309560.503584" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "739" - endingLineNumber = "739" + startingLineNumber = "748" + endingLineNumber = "748" landmarkName = "inApp(for:context:peerId:openInfo:hashtag:command:applyProxy:confirm:)" landmarkType = "9"> @@ -115,11 +115,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Telegram-Mac/InAppLinks.swift" - timestampString = "594118917.131548" + timestampString = "594309560.503616" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "733" - endingLineNumber = "733" + startingLineNumber = "742" + endingLineNumber = "742" landmarkName = "inApp(for:context:peerId:openInfo:hashtag:command:applyProxy:confirm:)" landmarkType = "9"> @@ -131,7 +131,7 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "TGUIKit/TGUIKit/PresentationTheme.swift" - timestampString = "594138060.581989" + timestampString = "594309560.503651" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "2140" @@ -147,7 +147,7 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "TGUIKit/TGUIKit/Modal.swift" - timestampString = "594118917.131622" + timestampString = "594309560.5036809" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "872" @@ -163,7 +163,7 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "TGUIKit/TGUIKit/Modal.swift" - timestampString = "594118917.131662" + timestampString = "594309560.503709" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "863" diff --git a/Telegram-Mac/AccountContext.swift b/Telegram-Mac/AccountContext.swift index 2d0756300..ca88479dc 100644 --- a/Telegram-Mac/AccountContext.swift +++ b/Telegram-Mac/AccountContext.swift @@ -7,10 +7,13 @@ // import Foundation -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit +import WalletCore +import SyncCore struct TemporaryPasswordContainer { let date: TimeInterval @@ -27,42 +30,142 @@ private final class TonInstanceData { var instance: TonInstance? } +private final class TonNetworkProxyImpl: TonNetworkProxy { + private let network: Network + + init(network: Network) { + self.network = network + } + + func request(data: Data, timeout timeoutValue: Double, completion: @escaping (TonNetworkProxyResult) -> Void) -> Disposable { + return (walletProxyRequest(network: self.network, data: data) + |> timeout(timeoutValue, queue: .concurrentDefaultQueue(), alternate: .fail(.generic(500, "Local Timeout")))).start(next: { data in + completion(.reponse(data)) + }, error: { error in + switch error { + case let .generic(_, text): + completion(.error(text)) + } + }) + } +} -public final class StoredTonContext { +final class WalletStorageInterfaceImpl: WalletStorageInterface { + private let postbox: Postbox + + init(postbox: Postbox) { + self.postbox = postbox + } + + func watchWalletRecords() -> Signal<[WalletStateRecord], NoError> { + return self.postbox.preferencesView(keys: [PreferencesKeys.walletCollection]) + |> map { view -> [WalletStateRecord] in + guard let walletCollection = view.values[PreferencesKeys.walletCollection] as? WalletCollection else { + return [] + } + return walletCollection.wallets.compactMap { item -> WalletStateRecord? in + do { + return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) + } catch { + return nil + } + } + } + } + + func getWalletRecords() -> Signal<[WalletStateRecord], NoError> { + return self.postbox.transaction { transaction -> [WalletStateRecord] in + guard let walletCollection = transaction.getPreferencesEntry(key: PreferencesKeys.walletCollection) as? WalletCollection else { + return [] + } + return walletCollection.wallets.compactMap { item -> WalletStateRecord? in + do { + return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) + } catch { + return nil + } + } + } + } + + func updateWalletRecords(_ f: @escaping ([WalletStateRecord]) -> [WalletStateRecord]) -> Signal<[WalletStateRecord], NoError> { + return self.postbox.transaction { transaction -> [WalletStateRecord] in + let updatedRecords: [WalletStateRecord] = [] + transaction.updatePreferencesEntry(key: PreferencesKeys.walletCollection, { current in + var walletCollection = (current as? WalletCollection) ?? WalletCollection(wallets: []) + let updatedItems = f(walletCollection.wallets.compactMap { item -> WalletStateRecord? in + do { + return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) + } catch { + return nil + } + }) + walletCollection.wallets = updatedItems.compactMap { item in + do { + return WalletCollectionItem(info: try JSONEncoder().encode(item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { + try? JSONEncoder().encode($0) + }) + } catch { + return nil + } + } + return walletCollection + }) + return updatedRecords + } + } + + func localWalletConfiguration() -> Signal { + return .single(LocalWalletConfiguration(source: .string(""), blockchainName: "")) + } + + func updateLocalWalletConfiguration(_ f: @escaping (LocalWalletConfiguration) -> LocalWalletConfiguration) -> Signal { + return .complete() + } +} + +final class StoredTonContext { private let basePath: String private let postbox: Postbox private let network: Network - public let keychain: TonKeychain + let keychain: TonKeychain private let currentInstance = Atomic(value: TonInstanceData()) - public init(basePath: String, postbox: Postbox, network: Network, keychain: TonKeychain) { + init(basePath: String, postbox: Postbox, network: Network, keychain: TonKeychain) { self.basePath = basePath self.postbox = postbox self.network = network self.keychain = keychain } - public func context(config: String, blockchainName: String, enableProxy: Bool) -> TonContext { + func context(config: String, blockchainName: String, enableProxy: Bool) -> TonContext { return self.currentInstance.with { data -> TonContext in if let instance = data.instance, data.config == config, data.blockchainName == blockchainName { - return TonContext(instance: instance, keychain: self.keychain) + return TonContext(instance: instance, keychain: self.keychain, storage: WalletStorageInterfaceImpl(postbox: self.postbox)) } else { data.config = config - let instance = TonInstance(basePath: self.basePath, config: config, blockchainName: blockchainName, network: enableProxy ? self.network : nil) + let tonNetwork: TonNetworkProxy? + if enableProxy { + tonNetwork = TonNetworkProxyImpl(network: self.network) + } else { + tonNetwork = nil + } + let instance = TonInstance(basePath: self.basePath, config: config, blockchainName: blockchainName, proxy: tonNetwork) data.instance = instance - return TonContext(instance: instance, keychain: self.keychain) + return TonContext(instance: instance, keychain: self.keychain, storage: WalletStorageInterfaceImpl(postbox: self.postbox)) } } } } -public struct TonContext { - public let instance: TonInstance - public let keychain: TonKeychain - - public init(instance: TonInstance, keychain: TonKeychain) { +struct TonContext { + let instance: TonInstance + let keychain: TonKeychain + let storage: WalletStorageInterfaceImpl + init(instance: TonInstance, keychain: TonKeychain, storage: WalletStorageInterfaceImpl) { self.instance = instance self.keychain = keychain + self.storage = storage } } diff --git a/Telegram-Mac/AccountInfoItem.swift b/Telegram-Mac/AccountInfoItem.swift index f3e770909..48da6e6f3 100644 --- a/Telegram-Mac/AccountInfoItem.swift +++ b/Telegram-Mac/AccountInfoItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/AccountViewController.swift b/Telegram-Mac/AccountViewController.swift index e71edea3a..4c40f4489 100644 --- a/Telegram-Mac/AccountViewController.swift +++ b/Telegram-Mac/AccountViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit @@ -415,17 +416,20 @@ private enum AccountInfoEntry : TableItemListNodeEntry { let context = arguments.context if #available(OSX 10.12, *) { - let _ = combineLatest(queue: .mainQueue(), walletConfiguration(postbox: context.account.postbox), availableWallets(postbox: context.account.postbox), TONKeychain.hasKeys(for: context.account)).start(next: { configuration, wallets, hasKeys in + let _ = combineLatest(queue: .mainQueue(), walletConfiguration(postbox: context.account.postbox), TONKeychain.hasKeys(for: context.account)).start(next: { configuration, hasKeys in if let config = configuration.config, let blockchainName = configuration.blockchainName { let tonContext = context.tonContext.context(config: config, blockchainName: blockchainName, enableProxy: !configuration.disableProxy) - if wallets.wallets.isEmpty { - arguments.presentController(WalletSplashController(context: context, tonContext: tonContext, mode: .intro), true) + if hasKeys { + let signal = tonContext.storage.getWalletRecords() |> deliverOnMainQueue + _ = signal.start(next: { wallets in + if wallets.isEmpty { + arguments.presentController(WalletSplashController(context: context, tonContext: tonContext, mode: .intro), true) + } else { + arguments.presentController(WalletInfoController(context: context, tonContext: tonContext, walletInfo: wallets[0].info), true) + } + }) } else { - if hasKeys { - arguments.presentController(WalletInfoController(context: context, tonContext: tonContext, walletInfo: wallets.wallets[0].info), true) - } else { - arguments.presentController(WalletSplashController(context: context, tonContext: tonContext, mode: .unavailable), true) - } + arguments.presentController(WalletSplashController(context: context, tonContext: tonContext, mode: .unavailable), true) } } }) diff --git a/Telegram-Mac/AddContactModalController.swift b/Telegram-Mac/AddContactModalController.swift index 4337af612..27953b052 100644 --- a/Telegram-Mac/AddContactModalController.swift +++ b/Telegram-Mac/AddContactModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private struct AddContactState : Equatable { let firstName: String diff --git a/Telegram-Mac/AdditionalSettings.swift b/Telegram-Mac/AdditionalSettings.swift index 58849a159..539e6f350 100644 --- a/Telegram-Mac/AdditionalSettings.swift +++ b/Telegram-Mac/AdditionalSettings.swift @@ -8,8 +8,8 @@ import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/AnimatedStickerUtils.swift b/Telegram-Mac/AnimatedStickerUtils.swift index 87c237e8a..532029b48 100644 --- a/Telegram-Mac/AnimatedStickerUtils.swift +++ b/Telegram-Mac/AnimatedStickerUtils.swift @@ -8,7 +8,7 @@ import Cocoa import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation import Lottie import TGUIKit diff --git a/Telegram-Mac/AppAppearanceViewController.swift b/Telegram-Mac/AppAppearanceViewController.swift index be22688c5..540fb2f7d 100644 --- a/Telegram-Mac/AppAppearanceViewController.swift +++ b/Telegram-Mac/AppAppearanceViewController.swift @@ -7,10 +7,12 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit +import SyncCore struct InstallCloudThemeCachedData { diff --git a/Telegram-Mac/AppDelegate.swift b/Telegram-Mac/AppDelegate.swift index 2864adf98..86b27bed6 100644 --- a/Telegram-Mac/AppDelegate.swift +++ b/Telegram-Mac/AppDelegate.swift @@ -1,13 +1,16 @@ import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit import Quartz -import MtProtoKitMac +import MtProtoKit import CoreServices import LocalAuthentication +import WalletCore +import OpenSSLEncryption #if !APP_STORE import HockeySDK @@ -27,32 +30,6 @@ private final class SharedApplicationContext { } } -/* - _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; - - - [_statusItem setTarget:self]; - [_statusItem setAction:@selector(didStatusItemClicked)]; - - NSImage *menuIcon = [NSImage imageNamed:@"StatusIcon"]; - [menuIcon setTemplate:YES]; - - NSMenu *statusMenu = [StandartViewController attachMenu]; - - - [statusMenu addItem:[NSMenuItem separatorItem]]; - - [statusMenu addItem:[NSMenuItem menuItemWithTitle:NSLocalizedString(@"Quit", nil) withBlock:^(id sender) { - - [[NSApplication sharedApplication] terminate:self]; - - }]]; - - [_statusItem setMenu:statusMenu]; - - [_statusItem setImage:menuIcon]; - */ - #if !APP_STORE extension AppDelegate : BITHockeyManagerDelegate { @@ -116,20 +93,6 @@ class AppDelegate: NSResponder, NSApplicationDelegate, NSUserNotificationCenterD func applicationDidFinishLaunching(_ aNotification: Notification) { -// final class Test { -// -// init() { -// } -// deinit { -// NSLog("dealloc test") -// var bp:Int = 0 -// bp += 1 -// } -// } -// -// -// let signal = Signal<(Test?, Test?, Test?, Bool), NoError>.single((Test(), Test(), nil, false)) -// signal.start() initializeSelectManager() @@ -453,7 +416,7 @@ class AppDelegate: NSResponder, NSApplicationDelegate, NSUserNotificationCenterD - let networkArguments = NetworkInitializationArguments(apiId: API_ID, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: CallBridge.voipMaxLayer(), appData: .single(nil)) + let networkArguments = NetworkInitializationArguments(apiId: API_ID, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: CallBridge.voipMaxLayer(), appData: .single(nil), autolockDeadine: .single(nil), encryptionProvider: OpenSSLEncryptionProvider()) let sharedContext = SharedAccountContext(accountManager: accountManager, networkArguments: networkArguments, rootPath: rootPath, encryptionParameters: encryptionParameters, displayUpgradeProgress: displayUpgrade) @@ -498,29 +461,8 @@ class AppDelegate: NSResponder, NSApplicationDelegate, NSUserNotificationCenterD let tonKeychain: TonKeychain -// #if DEBUG -// tonKeychain = TonKeychain(encryptionPublicKey: { -// return .single(Data()) -// }, encrypt: { data in -// return Signal { subscriber in -// subscriber.putNext(data) -// subscriber.putCompletion() -// return EmptyDisposable -// } -// }, decrypt: { data in -// return Signal { subscriber in -// subscriber.putNext(data) -// subscriber.putCompletion() -// return EmptyDisposable -// } -// }) -// #else tonKeychain = TonKeychain(encryptionPublicKey: { return Signal { subscriber in -// BuildConfig.getHardwareEncryptionAvailable(withBaseAppBundleId: self.baseAppBundleId, completion: { value in -// subscriber.putNext(value) -// subscriber.putCompletion() -// }) return EmptyDisposable } }, encrypt: { data in @@ -542,7 +484,6 @@ class AppDelegate: NSResponder, NSApplicationDelegate, NSUserNotificationCenterD return EmptyDisposable } }) -// #endif diff --git a/Telegram-Mac/AppUpdateViewController.swift b/Telegram-Mac/AppUpdateViewController.swift index 399aad577..73d80fc5a 100644 --- a/Telegram-Mac/AppUpdateViewController.swift +++ b/Telegram-Mac/AppUpdateViewController.swift @@ -10,9 +10,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import Sparkle diff --git a/Telegram-Mac/Appearance.swift b/Telegram-Mac/Appearance.swift index a136ee38a..b5be47f86 100644 --- a/Telegram-Mac/Appearance.swift +++ b/Telegram-Mac/Appearance.swift @@ -8,9 +8,11 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox +import SyncCore private func generatePollAddOption(_ color: NSColor) -> CGImage { let image = NSImage(named: "Icon_PollAddOption")!.precomposed(color) diff --git a/Telegram-Mac/AppearanceThumbs.swift b/Telegram-Mac/AppearanceThumbs.swift index c65f1d74f..d8a598fcf 100644 --- a/Telegram-Mac/AppearanceThumbs.swift +++ b/Telegram-Mac/AppearanceThumbs.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac -import PostboxMac +import SwiftSignalKit +import Postbox private func cloudThemeData(context: AccountContext, file: TelegramMediaFile) -> Signal<(ColorPalette, Wallpaper, TelegramWallpaper?), NoError> { return Signal { subscriber in diff --git a/Telegram-Mac/ApplicationContext.swift b/Telegram-Mac/ApplicationContext.swift index c0915de16..77cc53d06 100644 --- a/Telegram-Mac/ApplicationContext.swift +++ b/Telegram-Mac/ApplicationContext.swift @@ -1,9 +1,10 @@ import Foundation import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac -import MtProtoKitMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore + import IOKit private final class AuthModalController : ModalController { diff --git a/Telegram-Mac/ApplicationSpecificPreferencesKeys.swift b/Telegram-Mac/ApplicationSpecificPreferencesKeys.swift index e285411b4..8b3a99215 100644 --- a/Telegram-Mac/ApplicationSpecificPreferencesKeys.swift +++ b/Telegram-Mac/ApplicationSpecificPreferencesKeys.swift @@ -8,8 +8,9 @@ import Cocoa -import TelegramCoreMac - +import TelegramCore +import SyncCore +import SyncCore private enum ApplicationSpecificPreferencesKeyValues: Int32 { case inAppNotificationSettings case baseAppSettings diff --git a/Telegram-Mac/ArchiveTooltipController.swift b/Telegram-Mac/ArchiveTooltipController.swift index 10043bd88..bc12bb39e 100644 --- a/Telegram-Mac/ArchiveTooltipController.swift +++ b/Telegram-Mac/ArchiveTooltipController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore enum ArchiveTooltipType : Equatable { diff --git a/Telegram-Mac/ArchivedStickerPacksController.swift b/Telegram-Mac/ArchivedStickerPacksController.swift index e059fb7d0..d22a6aebc 100644 --- a/Telegram-Mac/ArchivedStickerPacksController.swift +++ b/Telegram-Mac/ArchivedStickerPacksController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class ArchivedStickerPacksControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/ArchiverContext.swift b/Telegram-Mac/ArchiverContext.swift index c5eb4c16b..5379524a1 100644 --- a/Telegram-Mac/ArchiverContext.swift +++ b/Telegram-Mac/ArchiverContext.swift @@ -6,7 +6,7 @@ // Copyright © 2018 Telegram. All rights reserved. // import Zip -import SwiftSignalKitMac +import SwiftSignalKit enum ArchiveStatus : Equatable { case none diff --git a/Telegram-Mac/AudioPlayer.swift b/Telegram-Mac/AudioPlayer.swift index 5a7d0670f..ebda7e91e 100644 --- a/Telegram-Mac/AudioPlayer.swift +++ b/Telegram-Mac/AudioPlayer.swift @@ -7,8 +7,9 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore protocol AudioPlayerDelegate : class { func audioPlayerDidFinishPlaying(_ audioPlayer:AudioPlayer) diff --git a/Telegram-Mac/AudioPlayerController.swift b/Telegram-Mac/AudioPlayerController.swift index 30925188e..10a402316 100644 --- a/Telegram-Mac/AudioPlayerController.swift +++ b/Telegram-Mac/AudioPlayerController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit import AVKit @@ -410,7 +411,7 @@ class APController : NSResponder { fileprivate(set) var needRepeat:Bool = false - fileprivate var timer:SwiftSignalKitMac.Timer? + fileprivate var timer:SwiftSignalKit.Timer? fileprivate var prevNextDisposable = DisposableSet() @@ -886,7 +887,7 @@ class APController : NSResponder { private func startTimer() { var additional: Double = 0.2 let duration: TimeInterval = 0.2 - timer = SwiftSignalKitMac.Timer(timeout: duration, repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: duration, repeat: true, completion: { [weak self] in if let `self` = self, let item = self.song { let new = item.status.timestamp + additional * item.status.baseRate item.state = .playing(current: new, duration: item.status.duration, progress: new / max((item.status.duration), 0.2), animated: true) diff --git a/Telegram-Mac/AudioRecorder.swift b/Telegram-Mac/AudioRecorder.swift index 27efe397e..efe265d87 100644 --- a/Telegram-Mac/AudioRecorder.swift +++ b/Telegram-Mac/AudioRecorder.swift @@ -9,10 +9,11 @@ import Cocoa import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import CoreMedia import AVFoundation -import TelegramCoreMac +import TelegramCore +import SyncCore private let kOutputBus: UInt32 = 0 private let kInputBus: UInt32 = 1 diff --git a/Telegram-Mac/AuthController.swift b/Telegram-Mac/AuthController.swift index 0279b169d..3e30a0a3a 100644 --- a/Telegram-Mac/AuthController.swift +++ b/Telegram-Mac/AuthController.swift @@ -1,8 +1,9 @@ import Foundation import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit private let manager = CountryManager() diff --git a/Telegram-Mac/AutoNightThemePreferences.swift b/Telegram-Mac/AutoNightThemePreferences.swift index 4be00a725..a23e9af0f 100644 --- a/Telegram-Mac/AutoNightThemePreferences.swift +++ b/Telegram-Mac/AutoNightThemePreferences.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/AutoNightViewController.swift b/Telegram-Mac/AutoNightViewController.swift index a1d484512..fff3c4141 100644 --- a/Telegram-Mac/AutoNightViewController.swift +++ b/Telegram-Mac/AutoNightViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit fileprivate let _id_disabled = InputDataIdentifier("disabled") fileprivate let _id_scheduled = InputDataIdentifier("enabled") diff --git a/Telegram-Mac/AutomaticMediaDownloadCategoryPeers.swift b/Telegram-Mac/AutomaticMediaDownloadCategoryPeers.swift index a22a4f709..33b8dd492 100644 --- a/Telegram-Mac/AutomaticMediaDownloadCategoryPeers.swift +++ b/Telegram-Mac/AutomaticMediaDownloadCategoryPeers.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit public struct AutomaticMediaDownloadCategoryPeers: PostboxCoding, Equatable { public let privateChats: Bool diff --git a/Telegram-Mac/AutoplayPreferences.swift b/Telegram-Mac/AutoplayPreferences.swift index 67d1dfe15..b7d91b66d 100644 --- a/Telegram-Mac/AutoplayPreferences.swift +++ b/Telegram-Mac/AutoplayPreferences.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit class AutoplayMediaPreferences : PreferencesEntry, Equatable { diff --git a/Telegram-Mac/AvatarLayer.swift b/Telegram-Mac/AvatarLayer.swift index dba8f07a3..afb882214 100644 --- a/Telegram-Mac/AvatarLayer.swift +++ b/Telegram-Mac/AvatarLayer.swift @@ -7,10 +7,13 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit +import SyncCore + private class AvatarNodeParameters: NSObject { let account: Account let peerId: Peer diff --git a/Telegram-Mac/BaseApplicationSettings.swift b/Telegram-Mac/BaseApplicationSettings.swift index f7aa8e267..93e15cbcc 100644 --- a/Telegram-Mac/BaseApplicationSettings.swift +++ b/Telegram-Mac/BaseApplicationSettings.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit class BaseApplicationSettings: PreferencesEntry, Equatable { let handleInAppKeys: Bool let sidebar: Bool diff --git a/Telegram-Mac/BlockedPeersViewController.swift b/Telegram-Mac/BlockedPeersViewController.swift index 130264c48..be6b1a24a 100644 --- a/Telegram-Mac/BlockedPeersViewController.swift +++ b/Telegram-Mac/BlockedPeersViewController.swift @@ -1,9 +1,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class BlockedPeerControllerArguments { diff --git a/Telegram-Mac/CachedAdminIds.swift b/Telegram-Mac/CachedAdminIds.swift index 3a0648206..e4010c98d 100644 --- a/Telegram-Mac/CachedAdminIds.swift +++ b/Telegram-Mac/CachedAdminIds.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class CachedAdminIdsContext { var hash:Int32 = 0 diff --git a/Telegram-Mac/CachedChannelAdmins.swift b/Telegram-Mac/CachedChannelAdmins.swift index 7073e1440..b8888e176 100644 --- a/Telegram-Mac/CachedChannelAdmins.swift +++ b/Telegram-Mac/CachedChannelAdmins.swift @@ -7,9 +7,10 @@ // import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit enum CachedChannelAdminRank: PostboxCoding, Equatable { diff --git a/Telegram-Mac/CachedResourceRepresentations.swift b/Telegram-Mac/CachedResourceRepresentations.swift index 581a26b33..b95fa7bfb 100644 --- a/Telegram-Mac/CachedResourceRepresentations.swift +++ b/Telegram-Mac/CachedResourceRepresentations.swift @@ -8,9 +8,10 @@ import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore final class CachedStickerAJpegRepresentation: CachedMediaResourceRepresentation { let size: CGSize? diff --git a/Telegram-Mac/CallNavigationHeaderView.swift b/Telegram-Mac/CallNavigationHeaderView.swift index dcc5272d4..3779715be 100644 --- a/Telegram-Mac/CallNavigationHeaderView.swift +++ b/Telegram-Mac/CallNavigationHeaderView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox class CallNavigationHeaderView: NavigationHeaderView { private let backgroundView = NSView() diff --git a/Telegram-Mac/CallRatingModalViewController.swift b/Telegram-Mac/CallRatingModalViewController.swift index ea30d891a..d3c7e7ddd 100644 --- a/Telegram-Mac/CallRatingModalViewController.swift +++ b/Telegram-Mac/CallRatingModalViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox diff --git a/Telegram-Mac/CallSettingsModalController.swift b/Telegram-Mac/CallSettingsModalController.swift index 5ca78ad3e..1ac9d019b 100644 --- a/Telegram-Mac/CallSettingsModalController.swift +++ b/Telegram-Mac/CallSettingsModalController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit diff --git a/Telegram-Mac/CancelResetAccountController.swift b/Telegram-Mac/CancelResetAccountController.swift index 66ff72279..6fa915940 100644 --- a/Telegram-Mac/CancelResetAccountController.swift +++ b/Telegram-Mac/CancelResetAccountController.swift @@ -11,8 +11,9 @@ import Cocoa import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore private let _id_input_code = InputDataIdentifier("_id_input_code") @@ -110,7 +111,7 @@ private func timeoutSignal(codeData: CancelAccountResetData) -> Signal(value: timeout) subscriber.putNext(timeout) - let timer = SwiftSignalKitMac.Timer(timeout: 1.0, repeat: true, completion: { + let timer = SwiftSignalKit.Timer(timeout: 1.0, repeat: true, completion: { subscriber.putNext(value.modify { value in return max(0, value - 1) }) diff --git a/Telegram-Mac/ChangePhoneNumberContainerView.swift b/Telegram-Mac/ChangePhoneNumberContainerView.swift index 5209bfdac..a1c2ff931 100644 --- a/Telegram-Mac/ChangePhoneNumberContainerView.swift +++ b/Telegram-Mac/ChangePhoneNumberContainerView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit final class ChangePhoneNumberArguments { diff --git a/Telegram-Mac/ChannelAdminController.swift b/Telegram-Mac/ChannelAdminController.swift index 9e9f14834..bf6c462cc 100644 --- a/Telegram-Mac/ChannelAdminController.swift +++ b/Telegram-Mac/ChannelAdminController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class ChannelAdminControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/ChannelAdminsViewController.swift b/Telegram-Mac/ChannelAdminsViewController.swift index 03f6148d0..391675ab0 100644 --- a/Telegram-Mac/ChannelAdminsViewController.swift +++ b/Telegram-Mac/ChannelAdminsViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit fileprivate final class ChannelAdminsControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/ChannelBlacklistViewController.swift b/Telegram-Mac/ChannelBlacklistViewController.swift index 0287eab82..d4e802567 100644 --- a/Telegram-Mac/ChannelBlacklistViewController.swift +++ b/Telegram-Mac/ChannelBlacklistViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class ChannelBlacklistControllerArguments { diff --git a/Telegram-Mac/ChannelDiscussionInputView.swift b/Telegram-Mac/ChannelDiscussionInputView.swift index 252bacdf1..1013b9f94 100644 --- a/Telegram-Mac/ChannelDiscussionInputView.swift +++ b/Telegram-Mac/ChannelDiscussionInputView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class ChannelDiscussionInputView: View { private let leftButton: TitleButton = TitleButton() diff --git a/Telegram-Mac/ChannelDisscussionGroup.swift b/Telegram-Mac/ChannelDisscussionGroup.swift index 5d3d49565..7a9ab8027 100644 --- a/Telegram-Mac/ChannelDisscussionGroup.swift +++ b/Telegram-Mac/ChannelDisscussionGroup.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class DiscussionArguments { diff --git a/Telegram-Mac/ChannelEventFilterModalController.swift b/Telegram-Mac/ChannelEventFilterModalController.swift index b5c50f306..a63a1ad05 100644 --- a/Telegram-Mac/ChannelEventFilterModalController.swift +++ b/Telegram-Mac/ChannelEventFilterModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox diff --git a/Telegram-Mac/ChannelEventLogController.swift b/Telegram-Mac/ChannelEventLogController.swift index 53d2ff5bb..99ba467aa 100644 --- a/Telegram-Mac/ChannelEventLogController.swift +++ b/Telegram-Mac/ChannelEventLogController.swift @@ -11,9 +11,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChannelEventLogTitledView : TitledBarView { diff --git a/Telegram-Mac/ChannelEventLogItem.swift b/Telegram-Mac/ChannelEventLogItem.swift index 66dab5761..981e69d54 100644 --- a/Telegram-Mac/ChannelEventLogItem.swift +++ b/Telegram-Mac/ChannelEventLogItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore private struct ServiceEventLogMessagePanel { let header:TextViewLayout diff --git a/Telegram-Mac/ChannelInfoEntries.swift b/Telegram-Mac/ChannelInfoEntries.swift index fad22dd97..2162e3d65 100644 --- a/Telegram-Mac/ChannelInfoEntries.swift +++ b/Telegram-Mac/ChannelInfoEntries.swift @@ -7,10 +7,11 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit struct ChannelInfoEditingState: Equatable { diff --git a/Telegram-Mac/ChannelIntroViewController.swift b/Telegram-Mac/ChannelIntroViewController.swift index 87cef4eb1..955004623 100644 --- a/Telegram-Mac/ChannelIntroViewController.swift +++ b/Telegram-Mac/ChannelIntroViewController.swift @@ -7,10 +7,11 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChannelIntroView : NSScrollView, AppearanceViewProtocol { let imageView:ImageView = ImageView() diff --git a/Telegram-Mac/ChannelMemberCategoryListContext.swift b/Telegram-Mac/ChannelMemberCategoryListContext.swift index 1ab7233cb..b8a417928 100644 --- a/Telegram-Mac/ChannelMemberCategoryListContext.swift +++ b/Telegram-Mac/ChannelMemberCategoryListContext.swift @@ -8,9 +8,10 @@ import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private let initialBatchSize: Int32 = 64 private let defaultEmptyTimeout: Double = 2.0 * 60.0 @@ -140,7 +141,7 @@ private final class ChannelMemberSingleCategoryListContext: ChannelMemberCategor private let loadingDisposable = MetaDisposable() private let headUpdateDisposable = MetaDisposable() - private var headUpdateTimer: SwiftSignalKitMac.Timer? + private var headUpdateTimer: SwiftSignalKit.Timer? init(postbox: Postbox, network: Network, accountPeerId: PeerId, peerId: PeerId, category: ChannelMemberListCategory) { self.postbox = postbox @@ -295,7 +296,7 @@ private final class ChannelMemberSingleCategoryListContext: ChannelMemberCategor } if self.headUpdateTimer == nil { - let headUpdateTimer = SwiftSignalKitMac.Timer(timeout: headUpdateTimeout, repeat: false, completion: { [weak self] in + let headUpdateTimer = SwiftSignalKit.Timer(timeout: headUpdateTimeout, repeat: false, completion: { [weak self] in guard let strongSelf = self else { return } @@ -627,7 +628,7 @@ private final class PeerChannelMemberContextWithSubscribers { private let disposable = MetaDisposable() private let becameEmpty: () -> Void - private var emptyTimer: SwiftSignalKitMac.Timer? + private var emptyTimer: SwiftSignalKit.Timer? init(context: ChannelMemberCategoryListContext, emptyTimeout: Double, becameEmpty: @escaping () -> Void) { self.context = context @@ -651,7 +652,7 @@ private final class PeerChannelMemberContextWithSubscribers { private func resetAndBeginEmptyTimer() { self.context.reset(false) self.emptyTimer?.invalidate() - let emptyTimer = SwiftSignalKitMac.Timer(timeout: self.emptyTimeout, repeat: false, completion: { [weak self] in + let emptyTimer = SwiftSignalKit.Timer(timeout: self.emptyTimeout, repeat: false, completion: { [weak self] in if let strongSelf = self { if strongSelf.subscribers.isEmpty { strongSelf.becameEmpty() diff --git a/Telegram-Mac/ChannelMembersViewController.swift b/Telegram-Mac/ChannelMembersViewController.swift index fff4d1ab1..01f63b021 100644 --- a/Telegram-Mac/ChannelMembersViewController.swift +++ b/Telegram-Mac/ChannelMembersViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/ChannelPermissionsController.swift b/Telegram-Mac/ChannelPermissionsController.swift index 627c5413c..00aa34621 100644 --- a/Telegram-Mac/ChannelPermissionsController.swift +++ b/Telegram-Mac/ChannelPermissionsController.swift @@ -10,9 +10,10 @@ import Cocoa import Foundation import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class ChannelPermissionsControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/ChannelStatisticsController.swift b/Telegram-Mac/ChannelStatisticsController.swift index b3e19f263..22248b0ac 100644 --- a/Telegram-Mac/ChannelStatisticsController.swift +++ b/Telegram-Mac/ChannelStatisticsController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import WebKit diff --git a/Telegram-Mac/ChannelVisibilityController.swift b/Telegram-Mac/ChannelVisibilityController.swift index 36f971b46..0ae5fcf6f 100644 --- a/Telegram-Mac/ChannelVisibilityController.swift +++ b/Telegram-Mac/ChannelVisibilityController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private enum CurrentChannelType { case publicChannel diff --git a/Telegram-Mac/ChatAccessoryModel.swift b/Telegram-Mac/ChatAccessoryModel.swift index 74d8ff594..3e38b1314 100644 --- a/Telegram-Mac/ChatAccessoryModel.swift +++ b/Telegram-Mac/ChatAccessoryModel.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ChatAccessoryView : Control { var imageView: TransformImageView? diff --git a/Telegram-Mac/ChatActivitiesModel.swift b/Telegram-Mac/ChatActivitiesModel.swift index 3f467fb22..a50286edc 100644 --- a/Telegram-Mac/ChatActivitiesModel.swift +++ b/Telegram-Mac/ChatActivitiesModel.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox enum ChatActivityAnimation { case none diff --git a/Telegram-Mac/ChatAnimatedStickerItem.swift b/Telegram-Mac/ChatAnimatedStickerItem.swift index 102b29468..56e5018f2 100644 --- a/Telegram-Mac/ChatAnimatedStickerItem.swift +++ b/Telegram-Mac/ChatAnimatedStickerItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox final class ChatAnimatedStickerMediaLayoutParameters : ChatMediaLayoutParameters { let playPolicy: LottiePlayPolicy? diff --git a/Telegram-Mac/ChatAudioContentView.swift b/Telegram-Mac/ChatAudioContentView.swift index 6997ba8c5..9b0b37a05 100644 --- a/Telegram-Mac/ChatAudioContentView.swift +++ b/Telegram-Mac/ChatAudioContentView.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit diff --git a/Telegram-Mac/ChatCallRowItem.swift b/Telegram-Mac/ChatCallRowItem.swift index 056c1bb6b..28e0ce092 100644 --- a/Telegram-Mac/ChatCallRowItem.swift +++ b/Telegram-Mac/ChatCallRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ChatCallRowItem: ChatRowItem { diff --git a/Telegram-Mac/ChatContactRowItem.swift b/Telegram-Mac/ChatContactRowItem.swift index 46427345b..eb95038dc 100644 --- a/Telegram-Mac/ChatContactRowItem.swift +++ b/Telegram-Mac/ChatContactRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import Contacts class ChatContactRowItem: ChatRowItem { diff --git a/Telegram-Mac/ChatController.swift b/Telegram-Mac/ChatController.swift index 43aeb4fca..27b26b5c9 100644 --- a/Telegram-Mac/ChatController.swift +++ b/Telegram-Mac/ChatController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit enum ChatMode { @@ -1862,7 +1863,7 @@ class ChatController: EditableViewController, Notifable, Tab chatInteraction.editEditingMessagePhoto = { [weak self] media in guard let `self` = self else {return} - if let resource = media.representationForDisplayAtSize(NSMakeSize(1280, 1280))?.resource { + if let resource = media.representationForDisplayAtSize(PixelDimensions(1280, 1280))?.resource { _ = (context.account.postbox.mediaBox.resourceData(resource) |> deliverOnMainQueue).start(next: { [weak self] resource in guard let `self` = self else {return} let url = URL(fileURLWithPath: link(path:resource.path, ext:kMediaImageExt)!) diff --git a/Telegram-Mac/ChatEmptyPeerItem.swift b/Telegram-Mac/ChatEmptyPeerItem.swift index a5da6c38a..c15f20016 100644 --- a/Telegram-Mac/ChatEmptyPeerItem.swift +++ b/Telegram-Mac/ChatEmptyPeerItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChatEmptyPeerItem: TableRowItem { diff --git a/Telegram-Mac/ChatFileContentView.swift b/Telegram-Mac/ChatFileContentView.swift index 4a05d8d41..38e270a38 100644 --- a/Telegram-Mac/ChatFileContentView.swift +++ b/Telegram-Mac/ChatFileContentView.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit import Lottie @@ -251,7 +252,7 @@ class ChatFileContentView: ChatMediaContentView { if !file.previewRepresentations.isEmpty { - let arguments = TransformImageArguments(corners: ImageCorners(radius: 8), imageSize: file.previewRepresentations[0].dimensions, boundingSize: NSMakeSize(70, 70), intrinsicInsets: NSEdgeInsets()) + let arguments = TransformImageArguments(corners: ImageCorners(radius: 8), imageSize: file.previewRepresentations[0].dimensions.size, boundingSize: NSMakeSize(70, 70), intrinsicInsets: NSEdgeInsets()) thumbView.setSignal(signal: cachedMedia(messageId: stableId, arguments: arguments, scale: backingScaleFactor), clearInstantly: !semanticMedia) let reference = parent != nil ? FileMediaReference.message(message: MessageReference(parent!), media: file) : FileMediaReference.standalone(media: file) diff --git a/Telegram-Mac/ChatFileMediaItem.swift b/Telegram-Mac/ChatFileMediaItem.swift index 332097486..505805a9b 100644 --- a/Telegram-Mac/ChatFileMediaItem.swift +++ b/Telegram-Mac/ChatFileMediaItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit class ChatFileLayoutParameters : ChatMediaLayoutParameters { diff --git a/Telegram-Mac/ChatGIFContentView.swift b/Telegram-Mac/ChatGIFContentView.swift index b967b5260..97e500875 100644 --- a/Telegram-Mac/ChatGIFContentView.swift +++ b/Telegram-Mac/ChatGIFContentView.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit class ChatGIFContentView: ChatMediaContentView { private var player:GIFPlayerView = GIFPlayerView() @@ -191,7 +192,7 @@ class ChatGIFContentView: ChatMediaContentView { if let media = media as? TelegramMediaFile { - let dimensions = media.dimensions ?? size + let dimensions = media.dimensions?.size ?? size var updatedStatusSignal: Signal? let reference = parent != nil ? FileMediaReference.message(message: MessageReference(parent!), media: media) : FileMediaReference.standalone(media: media) diff --git a/Telegram-Mac/ChatGroupedItem.swift b/Telegram-Mac/ChatGroupedItem.swift index 8399979c9..8b63e61f1 100644 --- a/Telegram-Mac/ChatGroupedItem.swift +++ b/Telegram-Mac/ChatGroupedItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChatGroupedItem: ChatRowItem { diff --git a/Telegram-Mac/ChatHeaderController.swift b/Telegram-Mac/ChatHeaderController.swift index c836de7ca..e9796ba70 100644 --- a/Telegram-Mac/ChatHeaderController.swift +++ b/Telegram-Mac/ChatHeaderController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/ChatHistoryEntry.swift b/Telegram-Mac/ChatHistoryEntry.swift index ce48b6189..a59f6f679 100644 --- a/Telegram-Mac/ChatHistoryEntry.swift +++ b/Telegram-Mac/ChatHistoryEntry.swift @@ -8,9 +8,11 @@ import Cocoa -import PostboxMac -import TelegramCoreMac -import MtProtoKitMac +import Postbox +import TelegramCore +import SyncCore +import MtProtoKit + enum ChatHistoryEntryId : Hashable { case message(Message) case groupedPhotos(groupInfo: MessageGroupInfo) diff --git a/Telegram-Mac/ChatHistoryViewForLocation.swift b/Telegram-Mac/ChatHistoryViewForLocation.swift index 4d222400e..b64d493f4 100644 --- a/Telegram-Mac/ChatHistoryViewForLocation.swift +++ b/Telegram-Mac/ChatHistoryViewForLocation.swift @@ -8,9 +8,10 @@ import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit enum ChatHistoryInitialSearchLocation { diff --git a/Telegram-Mac/ChatHoleRowItem.swift b/Telegram-Mac/ChatHoleRowItem.swift index 59059c706..eceba3119 100644 --- a/Telegram-Mac/ChatHoleRowItem.swift +++ b/Telegram-Mac/ChatHoleRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore class ChatHoleRowItem: ChatRowItem { diff --git a/Telegram-Mac/ChatInfoTouchbar.swift b/Telegram-Mac/ChatInfoTouchbar.swift index fed43823d..50d63dd1d 100644 --- a/Telegram-Mac/ChatInfoTouchbar.swift +++ b/Telegram-Mac/ChatInfoTouchbar.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit @available(OSX 10.12.2, *) diff --git a/Telegram-Mac/ChatInputAccessory.swift b/Telegram-Mac/ChatInputAccessory.swift index 1effabc65..d4fcdb394 100644 --- a/Telegram-Mac/ChatInputAccessory.swift +++ b/Telegram-Mac/ChatInputAccessory.swift @@ -7,10 +7,11 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ChatInputAccessory: Node { diff --git a/Telegram-Mac/ChatInputActionsView.swift b/Telegram-Mac/ChatInputActionsView.swift index 1cddb5b2d..f69095160 100644 --- a/Telegram-Mac/ChatInputActionsView.swift +++ b/Telegram-Mac/ChatInputActionsView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit // diff --git a/Telegram-Mac/ChatInputAttachView.swift b/Telegram-Mac/ChatInputAttachView.swift index 6bab3e7ab..d1c401aee 100644 --- a/Telegram-Mac/ChatInputAttachView.swift +++ b/Telegram-Mac/ChatInputAttachView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox class ChatInputAttachView: ImageButton, Notifable { diff --git a/Telegram-Mac/ChatInputRecordingView.swift b/Telegram-Mac/ChatInputRecordingView.swift index 5d34776b8..562c11a0a 100644 --- a/Telegram-Mac/ChatInputRecordingView.swift +++ b/Telegram-Mac/ChatInputRecordingView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum ChatInputRecodingState { case none case recoding(TimeInterval) diff --git a/Telegram-Mac/ChatInputView.swift b/Telegram-Mac/ChatInputView.swift index b0a3a7359..8834d768f 100644 --- a/Telegram-Mac/ChatInputView.swift +++ b/Telegram-Mac/ChatInputView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/ChatInteractiveContentView.swift b/Telegram-Mac/ChatInteractiveContentView.swift index 88c20bd29..7a269dbd0 100644 --- a/Telegram-Mac/ChatInteractiveContentView.swift +++ b/Telegram-Mac/ChatInteractiveContentView.swift @@ -7,18 +7,20 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit +import SyncCore final class ChatVideoAutoplayView { let mediaPlayer: MediaPlayer let view: MediaPlayerView - fileprivate var playTimer: SwiftSignalKitMac.Timer? + fileprivate var playTimer: SwiftSignalKit.Timer? - private var timer: SwiftSignalKitMac.Timer? = nil + private var timer: SwiftSignalKit.Timer? = nil var status: MediaPlayerStatus? init(mediaPlayer: MediaPlayer, view: MediaPlayerView) { @@ -43,7 +45,7 @@ final class ChatVideoAutoplayView { let tick = (enabled ? 1 - current : -current) / (fps * 0.3) - self?.timer = SwiftSignalKitMac.Timer(timeout: abs(Double(tick)), repeat: true, completion: { [weak self] in + self?.timer = SwiftSignalKit.Timer(timeout: abs(Double(tick)), repeat: true, completion: { [weak self] in current += tick self?.mediaPlayer.setVolume(min(1, max(0, current))) @@ -136,7 +138,7 @@ class ChatInteractiveContentView: ChatMediaContentView { switch status.status { case .playing: autoplayVideoView.playTimer?.invalidate() - autoplayVideoView.playTimer = SwiftSignalKitMac.Timer(timeout: 0.5, repeat: true, completion: { [weak self] in + autoplayVideoView.playTimer = SwiftSignalKit.Timer(timeout: 0.5, repeat: true, completion: { [weak self] in self?.updateVideoAccessory(.Local, file: media, mediaPlayerStatus: status, animated: animated) }, queue: .mainQueue()) @@ -394,7 +396,7 @@ class ChatInteractiveContentView: ChatMediaContentView { autoplayVideoView = nil videoAccessory?.removeFromSuperview() videoAccessory = nil - dimensions = image.representationForDisplayAtSize(size)?.dimensions ?? size + dimensions = image.representationForDisplayAtSize(PixelDimensions(size))?.dimensions.size ?? size if let parent = parent, parent.containsSecretMedia { updateImageSignal = chatSecretPhoto(account: context.account, imageReference: ImageMediaReference.message(message: MessageReference(parent), media: image), scale: backingScaleFactor, synchronousLoad: approximateSynchronousValue) @@ -437,7 +439,7 @@ class ChatInteractiveContentView: ChatMediaContentView { updateImageSignal = chatMessageVideo(postbox: context.account.postbox, fileReference: fileReference, scale: backingScaleFactor) //chatMessageVideo(account: account, video: file, scale: backingScaleFactor) } - dimensions = file.dimensions ?? size + dimensions = file.dimensions?.size ?? size diff --git a/Telegram-Mac/ChatInterfaceInputContext.swift b/Telegram-Mac/ChatInterfaceInputContext.swift index 4b1601c7f..e5824fe86 100644 --- a/Telegram-Mac/ChatInterfaceInputContext.swift +++ b/Telegram-Mac/ChatInterfaceInputContext.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox struct PossibleContextQueryTypes: OptionSet { var rawValue: Int32 diff --git a/Telegram-Mac/ChatInterfaceInteraction.swift b/Telegram-Mac/ChatInterfaceInteraction.swift index 98e76d5d0..dd2e70b58 100644 --- a/Telegram-Mac/ChatInterfaceInteraction.swift +++ b/Telegram-Mac/ChatInterfaceInteraction.swift @@ -7,10 +7,11 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import MapKit diff --git a/Telegram-Mac/ChatInterfaceState.swift b/Telegram-Mac/ChatInterfaceState.swift index 79518f34a..6789263f8 100644 --- a/Telegram-Mac/ChatInterfaceState.swift +++ b/Telegram-Mac/ChatInterfaceState.swift @@ -9,9 +9,10 @@ import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore struct ChatTextFontAttributes: OptionSet { var rawValue: Int32 = 0 diff --git a/Telegram-Mac/ChatInterfaceStateContextQueries.swift b/Telegram-Mac/ChatInterfaceStateContextQueries.swift index 3a0d4fb12..16b70588b 100644 --- a/Telegram-Mac/ChatInterfaceStateContextQueries.swift +++ b/Telegram-Mac/ChatInterfaceStateContextQueries.swift @@ -8,9 +8,10 @@ import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox func contextQueryResultStateForChatInterfacePresentationState(_ chatPresentationInterfaceState: ChatPresentationInterfaceState, context: AccountContext, currentQuery: ChatPresentationInputQuery?) -> (ChatPresentationInputQuery?, Signal<(ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult?, NoError>)? { let inputQuery = chatPresentationInterfaceState.inputContext diff --git a/Telegram-Mac/ChatInvoiceItem.swift b/Telegram-Mac/ChatInvoiceItem.swift index ef7eae580..35394626f 100644 --- a/Telegram-Mac/ChatInvoiceItem.swift +++ b/Telegram-Mac/ChatInvoiceItem.swift @@ -7,9 +7,10 @@ // import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChatInvoiceItem: ChatRowItem { @@ -40,10 +41,9 @@ class ChatInvoiceItem: ChatRowItem { for attr in photo.attributes { switch attr { - case .ImageSize(let size): - //videoSize.fitted() - contentSize = size.fitted(NSMakeSize(200, 200)) - arguments = TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: size, boundingSize: contentSize, intrinsicInsets: NSEdgeInsets()) + case let .ImageSize(size): + contentSize = size.size.fitted(NSMakeSize(200, 200)) + arguments = TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: size.size, boundingSize: contentSize, intrinsicInsets: NSEdgeInsets()) default: break diff --git a/Telegram-Mac/ChatLayoutUtils.swift b/Telegram-Mac/ChatLayoutUtils.swift index 499d1f9fa..fdf7bc918 100644 --- a/Telegram-Mac/ChatLayoutUtils.swift +++ b/Telegram-Mac/ChatLayoutUtils.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatLayoutUtils: NSObject { @@ -19,7 +20,7 @@ class ChatLayoutUtils: NSObject { let maxSize = NSMakeSize(min(width,320), min(width,320)) if let image = media as? TelegramMediaImage { - size = image.representationForDisplayAtSize(maxSize)?.dimensions.fitted(maxSize) ?? maxSize + size = image.representationForDisplayAtSize(PixelDimensions(maxSize))?.dimensions.size.fitted(maxSize) ?? maxSize if size.width < 100 && size.height < 100 { size = size.aspectFitted(NSMakeSize(200, 200)) } @@ -33,9 +34,9 @@ class ChatLayoutUtils: NSObject { var contentSize:NSSize = NSZeroSize for attr in file.attributes { if case let .ImageSize(size) = attr { - contentSize = size + contentSize = size.size } else if case let .Video(_,video, _) = attr { - contentSize = video + contentSize = video.size if contentSize.width < 50 && contentSize.height < 50 { contentSize = maxSize } @@ -44,7 +45,7 @@ class ChatLayoutUtils: NSObject { } } if file.isAnimatedSticker { - let dimensions = file.dimensions + let dimensions = file.dimensions?.size size = NSMakeSize(240, 240) if file.isEmojiAnimatedSticker { size = NSMakeSize(112, 112) diff --git a/Telegram-Mac/ChatListController.swift b/Telegram-Mac/ChatListController.swift index ae671fc2a..b37d5a1f7 100644 --- a/Telegram-Mac/ChatListController.swift +++ b/Telegram-Mac/ChatListController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/ChatListHoleRowItem.swift b/Telegram-Mac/ChatListHoleRowItem.swift index fa8671ad3..e9cee821a 100644 --- a/Telegram-Mac/ChatListHoleRowItem.swift +++ b/Telegram-Mac/ChatListHoleRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore class ChatListHoleRowItem: TableRowItem { private var context: AccountContext diff --git a/Telegram-Mac/ChatListMessageRowItem.swift b/Telegram-Mac/ChatListMessageRowItem.swift index 158131c43..e8b3f31f9 100644 --- a/Telegram-Mac/ChatListMessageRowItem.swift +++ b/Telegram-Mac/ChatListMessageRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatListMessageRowItem: ChatListRowItem { diff --git a/Telegram-Mac/ChatListNothingItem.swift b/Telegram-Mac/ChatListNothingItem.swift index 1c8dc1381..58a4fceae 100644 --- a/Telegram-Mac/ChatListNothingItem.swift +++ b/Telegram-Mac/ChatListNothingItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatListNothingItem: TableRowItem { let stableIndex:ChatListIndex diff --git a/Telegram-Mac/ChatListRowItem.swift b/Telegram-Mac/ChatListRowItem.swift index 042d14eed..30c225b60 100644 --- a/Telegram-Mac/ChatListRowItem.swift +++ b/Telegram-Mac/ChatListRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit enum ChatListPinnedType { diff --git a/Telegram-Mac/ChatListRowView.swift b/Telegram-Mac/ChatListRowView.swift index 79abac2ac..09100de6b 100644 --- a/Telegram-Mac/ChatListRowView.swift +++ b/Telegram-Mac/ChatListRowView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/ChatMapContentView.swift b/Telegram-Mac/ChatMapContentView.swift index 689933f2e..4a8bae532 100644 --- a/Telegram-Mac/ChatMapContentView.swift +++ b/Telegram-Mac/ChatMapContentView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore class ChatMapContentView: ChatMediaContentView { diff --git a/Telegram-Mac/ChatMapRowItem.swift b/Telegram-Mac/ChatMapRowItem.swift index 1d904df73..654e4866e 100644 --- a/Telegram-Mac/ChatMapRowItem.swift +++ b/Telegram-Mac/ChatMapRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore final class ChatMediaMapLayoutParameters : ChatMediaLayoutParameters { let map:TelegramMediaMap @@ -27,7 +28,7 @@ final class ChatMediaMapLayoutParameters : ChatMediaLayoutParameters { self.resource = resource self.defaultImageSize = isVenue ? NSMakeSize(60, 60) : NSMakeSize(320, 120) self.url = "https://maps.google.com/maps?q=\(String(format:"%f", map.latitude)),\(String(format:"%f", map.longitude))" - let representation = TelegramMediaImageRepresentation(dimensions: defaultImageSize, resource: resource) + let representation = TelegramMediaImageRepresentation(dimensions: PixelDimensions(defaultImageSize), resource: resource) self.image = TelegramMediaImage(imageId: map.id ?? MediaId(namespace: 0, id: arc4random64()), representations: [representation], immediateThumbnailData: nil, reference: nil, partialReference: nil) self.arguments = TransformImageArguments(corners: ImageCorners(radius: 8), imageSize: defaultImageSize, boundingSize: defaultImageSize, intrinsicInsets: NSEdgeInsets()) diff --git a/Telegram-Mac/ChatMediaContentView.swift b/Telegram-Mac/ChatMediaContentView.swift index c6bfde1de..ad94823dc 100644 --- a/Telegram-Mac/ChatMediaContentView.swift +++ b/Telegram-Mac/ChatMediaContentView.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit import Lottie diff --git a/Telegram-Mac/ChatMediaItem.swift b/Telegram-Mac/ChatMediaItem.swift index 9c1b36391..a09bcbc32 100644 --- a/Telegram-Mac/ChatMediaItem.swift +++ b/Telegram-Mac/ChatMediaItem.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ChatMediaLayoutParameters : Equatable { diff --git a/Telegram-Mac/ChatMessageAccessoryView.swift b/Telegram-Mac/ChatMessageAccessoryView.swift index 1f37d7852..6214bb991 100644 --- a/Telegram-Mac/ChatMessageAccessoryView.swift +++ b/Telegram-Mac/ChatMessageAccessoryView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/ChatMessageDateHeader.swift b/Telegram-Mac/ChatMessageDateHeader.swift index 85728ad30..2cbcb1f0e 100644 --- a/Telegram-Mac/ChatMessageDateHeader.swift +++ b/Telegram-Mac/ChatMessageDateHeader.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox private let timezoneOffset: Int32 = { let nowTimestamp = Int32(CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970) diff --git a/Telegram-Mac/ChatMessageItem.swift b/Telegram-Mac/ChatMessageItem.swift index 5d604d834..46230ff7e 100644 --- a/Telegram-Mac/ChatMessageItem.swift +++ b/Telegram-Mac/ChatMessageItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/ChatMessageThrottledProcessingManager.swift b/Telegram-Mac/ChatMessageThrottledProcessingManager.swift index f6ca711ec..666669009 100644 --- a/Telegram-Mac/ChatMessageThrottledProcessingManager.swift +++ b/Telegram-Mac/ChatMessageThrottledProcessingManager.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit final class ChatMessageThrottledProcessingManager { private let queue = Queue(name: "ChatMessageThrottledProcessingManager") @@ -20,7 +20,7 @@ final class ChatMessageThrottledProcessingManager { var process: ((Set) -> Void)? - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? private var processed = Set() private var buffer = Set() @@ -41,7 +41,7 @@ final class ChatMessageThrottledProcessingManager { if self.timer == nil { var completionImpl: (() -> Void)? - let timer = SwiftSignalKitMac.Timer(timeout: self.delay, repeat: false, completion: { + let timer = SwiftSignalKit.Timer(timeout: self.delay, repeat: false, completion: { completionImpl?() }, queue: self.queue) completionImpl = { [weak self, weak timer] in diff --git a/Telegram-Mac/ChatMessageView.swift b/Telegram-Mac/ChatMessageView.swift index 2d82a6e42..f604c7bda 100644 --- a/Telegram-Mac/ChatMessageView.swift +++ b/Telegram-Mac/ChatMessageView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ChatMessageView: ChatRowView, ModalPreviewRowViewProtocol { diff --git a/Telegram-Mac/ChatMusicContentView.swift b/Telegram-Mac/ChatMusicContentView.swift index 6b4ef1692..f9bbdd66a 100644 --- a/Telegram-Mac/ChatMusicContentView.swift +++ b/Telegram-Mac/ChatMusicContentView.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit class ChatMusicContentView: ChatAudioContentView { @@ -73,7 +74,7 @@ class ChatMusicContentView: ChatAudioContentView { imageView.layer?.contents = theme.icons.chatMusicPlaceholder - let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: iconSize, resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(iconSize), resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) imageView.setSignal(signal: cachedMedia(media: media, arguments: arguments, scale: backingScaleFactor, positionFlags: positionFlags), clearInstantly: false) diff --git a/Telegram-Mac/ChatMusicRowItem.swift b/Telegram-Mac/ChatMusicRowItem.swift index a2b1a4bce..af47f5fc7 100644 --- a/Telegram-Mac/ChatMusicRowItem.swift +++ b/Telegram-Mac/ChatMusicRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ChatMediaMusicLayoutParameters : ChatMediaLayoutParameters { let resource: TelegramMediaResource let title:String? diff --git a/Telegram-Mac/ChatNavigateScroller.swift b/Telegram-Mac/ChatNavigateScroller.swift index f34a772b1..ba63a9303 100644 --- a/Telegram-Mac/ChatNavigateScroller.swift +++ b/Telegram-Mac/ChatNavigateScroller.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ChatNavigateScroller: ImageButton { diff --git a/Telegram-Mac/ChatNavigationMention.swift b/Telegram-Mac/ChatNavigationMention.swift index 93e5a589d..555f968a8 100644 --- a/Telegram-Mac/ChatNavigationMention.swift +++ b/Telegram-Mac/ChatNavigationMention.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatNavigationMention: ImageButton { diff --git a/Telegram-Mac/ChatPollItem.swift b/Telegram-Mac/ChatPollItem.swift index a9c7cc140..4b77a0981 100644 --- a/Telegram-Mac/ChatPollItem.swift +++ b/Telegram-Mac/ChatPollItem.swift @@ -9,10 +9,11 @@ import Cocoa import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac - +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit +import SyncCore private struct PercentCounterItem : Comparable { var index: Int = 0 diff --git a/Telegram-Mac/ChatPresentationInterfaceState.swift b/Telegram-Mac/ChatPresentationInterfaceState.swift index 992e49e56..2643dfe20 100644 --- a/Telegram-Mac/ChatPresentationInterfaceState.swift +++ b/Telegram-Mac/ChatPresentationInterfaceState.swift @@ -8,10 +8,11 @@ import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum ChatPresentationInputContext { case none diff --git a/Telegram-Mac/ChatPresentationUtils.swift b/Telegram-Mac/ChatPresentationUtils.swift index 6f28959f1..319c1fae5 100644 --- a/Telegram-Mac/ChatPresentationUtils.swift +++ b/Telegram-Mac/ChatPresentationUtils.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox final class ChatMediaPresentation : Equatable { diff --git a/Telegram-Mac/ChatRecorderOverlayWindow.swift b/Telegram-Mac/ChatRecorderOverlayWindow.swift index 4d97b7214..4f57bfc9b 100644 --- a/Telegram-Mac/ChatRecorderOverlayWindow.swift +++ b/Telegram-Mac/ChatRecorderOverlayWindow.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit private enum ChatRecordingOverlayState { case voice diff --git a/Telegram-Mac/ChatRightView.swift b/Telegram-Mac/ChatRightView.swift index c5f631bb5..fb4950227 100644 --- a/Telegram-Mac/ChatRightView.swift +++ b/Telegram-Mac/ChatRightView.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class ChatRightView: View { diff --git a/Telegram-Mac/ChatRowItem.swift b/Telegram-Mac/ChatRowItem.swift index 76b9eb185..6e878ebeb 100644 --- a/Telegram-Mac/ChatRowItem.swift +++ b/Telegram-Mac/ChatRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/ChatRowView.swift b/Telegram-Mac/ChatRowView.swift index 9138e6122..251c8b8cf 100644 --- a/Telegram-Mac/ChatRowView.swift +++ b/Telegram-Mac/ChatRowView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChatRowAnimateView: View { var stableId:AnyHashable? diff --git a/Telegram-Mac/ChatScheduleController.swift b/Telegram-Mac/ChatScheduleController.swift index 5fbb36225..ef2c464ae 100644 --- a/Telegram-Mac/ChatScheduleController.swift +++ b/Telegram-Mac/ChatScheduleController.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatScheduleController: ChatController { public override init(context: AccountContext, chatLocation:ChatLocation, mode: ChatMode = .scheduled, messageId:MessageId? = nil, initialAction:ChatInitialAction? = nil) { diff --git a/Telegram-Mac/ChatSearchView.swift b/Telegram-Mac/ChatSearchView.swift index 612eb09b7..9bd11165f 100644 --- a/Telegram-Mac/ChatSearchView.swift +++ b/Telegram-Mac/ChatSearchView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum TokenSearchState : Equatable { case none diff --git a/Telegram-Mac/ChatSelectText.swift b/Telegram-Mac/ChatSelectText.swift index 88979e6d3..e9bbdf700 100644 --- a/Telegram-Mac/ChatSelectText.swift +++ b/Telegram-Mac/ChatSelectText.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit struct SelectContainer { let text:NSAttributedString let range:NSRange diff --git a/Telegram-Mac/ChatServiceItem.swift b/Telegram-Mac/ChatServiceItem.swift index d55a13036..80997913b 100644 --- a/Telegram-Mac/ChatServiceItem.swift +++ b/Telegram-Mac/ChatServiceItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ChatServiceItem: ChatRowItem { let text:TextViewLayout diff --git a/Telegram-Mac/ChatStickerContentView.swift b/Telegram-Mac/ChatStickerContentView.swift index 4f931b7e9..7f086cdfd 100644 --- a/Telegram-Mac/ChatStickerContentView.swift +++ b/Telegram-Mac/ChatStickerContentView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ChatStickerContentView: ChatMediaContentView { private let statusDisposable = MetaDisposable() private var image:TransformImageView = TransformImageView() @@ -61,7 +62,7 @@ class ChatStickerContentView: ChatMediaContentView { if let file = media as? TelegramMediaFile { - let dimensions = file.dimensions?.aspectFitted(size) ?? size + let dimensions = file.dimensions?.size.aspectFitted(size) ?? size let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: size, boundingSize: size, intrinsicInsets: NSEdgeInsets()) diff --git a/Telegram-Mac/ChatStickersTouchBarPopover.swift b/Telegram-Mac/ChatStickersTouchBarPopover.swift index 39d0d431f..2a9ce8796 100644 --- a/Telegram-Mac/ChatStickersTouchBarPopover.swift +++ b/Telegram-Mac/ChatStickersTouchBarPopover.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit @available(OSX 10.12.2, *) fileprivate extension NSTouchBarItem.Identifier { diff --git a/Telegram-Mac/ChatStorageManagmentModalController.swift b/Telegram-Mac/ChatStorageManagmentModalController.swift index b71dad6cf..3834faa83 100644 --- a/Telegram-Mac/ChatStorageManagmentModalController.swift +++ b/Telegram-Mac/ChatStorageManagmentModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/ChatSwitchInlineController.swift b/Telegram-Mac/ChatSwitchInlineController.swift index 0be2b7527..856f24683 100644 --- a/Telegram-Mac/ChatSwitchInlineController.swift +++ b/Telegram-Mac/ChatSwitchInlineController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/ChatTitleBarView.swift b/Telegram-Mac/ChatTitleBarView.swift index 1adda087a..4269bd83d 100644 --- a/Telegram-Mac/ChatTitleBarView.swift +++ b/Telegram-Mac/ChatTitleBarView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import AVFoundation private class ConnectionStatusView : View { private var textViewLayout:TextViewLayout? diff --git a/Telegram-Mac/ChatTouchBar.swift b/Telegram-Mac/ChatTouchBar.swift index 05a2a4a6f..3aac69994 100644 --- a/Telegram-Mac/ChatTouchBar.swift +++ b/Telegram-Mac/ChatTouchBar.swift @@ -7,9 +7,10 @@ // import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore @available(OSX 10.12.2, *) extension NSTouchBar.CustomizationIdentifier { diff --git a/Telegram-Mac/ChatUndoManager.swift b/Telegram-Mac/ChatUndoManager.swift index bb43bb513..058b6053f 100644 --- a/Telegram-Mac/ChatUndoManager.swift +++ b/Telegram-Mac/ChatUndoManager.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private let queue: Queue = Queue() @@ -405,14 +406,14 @@ final class ChatUndoManager { } func clearHistoryInteractively(postbox: Postbox, peerId: PeerId, type: InteractiveHistoryClearingType = .forLocalPeer) { - _ = TelegramCoreMac.clearHistoryInteractively(postbox: postbox, peerId: peerId, type: type).start(completed: { [weak context] in + _ = TelegramCore.clearHistoryInteractively(postbox: postbox, peerId: peerId, type: type).start(completed: { [weak context] in queue.async { context?.finishAction(for: peerId, type: .clearHistory) } }) } func removePeerChat(account: Account, peerId: PeerId, type: ChatUndoActionType, reportChatSpam: Bool, deleteGloballyIfPossible: Bool = false) { - _ = TelegramCoreMac.removePeerChat(account: account, peerId: peerId, reportChatSpam: false, deleteGloballyIfPossible: deleteGloballyIfPossible).start(completed: { [weak context] in + _ = TelegramCore.removePeerChat(account: account, peerId: peerId, reportChatSpam: false, deleteGloballyIfPossible: deleteGloballyIfPossible).start(completed: { [weak context] in queue.async { context?.finishAction(for: peerId, type: type) } @@ -430,5 +431,5 @@ final class ChatUndoManager { func enqueueMessages(context: AccountContext, peerId: PeerId, messages: [EnqueueMessage]) -> Signal<[MessageId?], NoError> { context.chatUndoManager.invokeNow(for: peerId, type: .clearHistory) - return TelegramCoreMac.enqueueMessages(account: context.account, peerId: peerId, messages: messages) + return TelegramCore.enqueueMessages(account: context.account, peerId: peerId, messages: messages) } diff --git a/Telegram-Mac/ChatUnreadRowItem.swift b/Telegram-Mac/ChatUnreadRowItem.swift index 6e72f405c..2f53a532e 100644 --- a/Telegram-Mac/ChatUnreadRowItem.swift +++ b/Telegram-Mac/ChatUnreadRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatUnreadRowItem: ChatRowItem { override var height: CGFloat { diff --git a/Telegram-Mac/ChatUrlPreviewModel.swift b/Telegram-Mac/ChatUrlPreviewModel.swift index 4bf48750e..429edd399 100644 --- a/Telegram-Mac/ChatUrlPreviewModel.swift +++ b/Telegram-Mac/ChatUrlPreviewModel.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore class ChatUrlPreviewModel: ChatAccessoryModel { private let webpageDisposable = MetaDisposable() diff --git a/Telegram-Mac/ChatVideoMessageContentView.swift b/Telegram-Mac/ChatVideoMessageContentView.swift index 2d136ebe9..6b82be2f8 100644 --- a/Telegram-Mac/ChatVideoMessageContentView.swift +++ b/Telegram-Mac/ChatVideoMessageContentView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit /* func songDidStopPlaying(song:APSongItem, for controller:APController) { diff --git a/Telegram-Mac/ChatVideoMessageItem.swift b/Telegram-Mac/ChatVideoMessageItem.swift index e38dfc53b..a370071b0 100644 --- a/Telegram-Mac/ChatVideoMessageItem.swift +++ b/Telegram-Mac/ChatVideoMessageItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ChatMediaVideoMessageLayoutParameters : ChatMediaLayoutParameters { diff --git a/Telegram-Mac/ChatVoiceContentView.swift b/Telegram-Mac/ChatVoiceContentView.swift index f8d227350..95ab7d04e 100644 --- a/Telegram-Mac/ChatVoiceContentView.swift +++ b/Telegram-Mac/ChatVoiceContentView.swift @@ -7,10 +7,11 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ChatVoiceContentView: ChatAudioContentView { diff --git a/Telegram-Mac/ChatVoiceRowItem.swift b/Telegram-Mac/ChatVoiceRowItem.swift index a399b7649..d322153b7 100644 --- a/Telegram-Mac/ChatVoiceRowItem.swift +++ b/Telegram-Mac/ChatVoiceRowItem.swift @@ -9,9 +9,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ChatMediaVoiceLayoutParameters : ChatMediaLayoutParameters { let showPlayer:(APController) -> Void let waveform:AudioWaveform? diff --git a/Telegram-Mac/ChatWallpaperModalController.swift b/Telegram-Mac/ChatWallpaperModalController.swift index 5c53fa7dc..1d5781f89 100644 --- a/Telegram-Mac/ChatWallpaperModalController.swift +++ b/Telegram-Mac/ChatWallpaperModalController.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit final class ThemeGridControllerInteraction { @@ -128,12 +129,12 @@ class ChatWallpaperModalController: ModalViewController { if CGImageDestinationFinalize(colorDestination) { let thumdResource = LocalFileMediaResource(fileId: arc4random64()) context.account.postbox.mediaBox.storeResourceData(thumdResource.id, data: mutableData as Data) - representations.append(TelegramMediaImageRepresentation(dimensions: image.size.aspectFitted(NSMakeSize(90, 90)), resource: thumdResource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(image.size.aspectFitted(NSMakeSize(90, 90))), resource: thumdResource)) } } let resource = LocalFileReferenceMediaResource(localFilePath: path, randomId: arc4random64()) - representations.append(TelegramMediaImageRepresentation(dimensions: image.size, resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(image.size), resource: resource)) showModal(with: WallpaperPreviewController(context, wallpaper: .image(representations, settings: WallpaperSettings()), source: .none), for: context.window) diff --git a/Telegram-Mac/ClearUserNotifies.swift b/Telegram-Mac/ClearUserNotifies.swift index 9958df981..5416c985d 100644 --- a/Telegram-Mac/ClearUserNotifies.swift +++ b/Telegram-Mac/ClearUserNotifies.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private let queue:Queue = Queue(name: "clearUserNotifiesQueue") diff --git a/Telegram-Mac/ComposeActions.swift b/Telegram-Mac/ComposeActions.swift index ca284af9e..9ff1fb6f3 100644 --- a/Telegram-Mac/ComposeActions.swift +++ b/Telegram-Mac/ComposeActions.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit diff --git a/Telegram-Mac/ComposeViewController.swift b/Telegram-Mac/ComposeViewController.swift index 11971a969..4b67e62ad 100644 --- a/Telegram-Mac/ComposeViewController.swift +++ b/Telegram-Mac/ComposeViewController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore struct ComposeTitles { let center:String let done:String diff --git a/Telegram-Mac/ContactsController.swift b/Telegram-Mac/ContactsController.swift index 60d79f94d..0d5670bb9 100644 --- a/Telegram-Mac/ContactsController.swift +++ b/Telegram-Mac/ContactsController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private enum ContactsControllerEntryId: Hashable { case peerId(Int64) diff --git a/Telegram-Mac/ContextCommandRowItem.swift b/Telegram-Mac/ContextCommandRowItem.swift index 6c572fc8d..0a9c731a7 100644 --- a/Telegram-Mac/ContextCommandRowItem.swift +++ b/Telegram-Mac/ContextCommandRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class ContextCommandRowItem: TableRowItem { diff --git a/Telegram-Mac/ContextListRowItem.swift b/Telegram-Mac/ContextListRowItem.swift index 339e6c020..49baef693 100644 --- a/Telegram-Mac/ContextListRowItem.swift +++ b/Telegram-Mac/ContextListRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox @@ -45,7 +46,7 @@ class ContextListRowItem: TableRowItem { switch result { case let .externalReference(_, _, _, title, description, url, content, thumbnail, _): if let thumbnail = thumbnail { - representation = TelegramMediaImageRepresentation(dimensions: NSMakeSize(50, 50), resource: thumbnail.resource) + representation = TelegramMediaImageRepresentation(dimensions: PixelDimensions(NSMakeSize(50, 50)), resource: thumbnail.resource) } if let content = content { if content.mimeType.hasPrefix("audio") { @@ -88,10 +89,10 @@ class ContextListRowItem: TableRowItem { let tmpImage = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [representation], immediateThumbnailData: nil, reference: nil, partialReference: nil) iconSignal = chatWebpageSnippetPhoto(account: context.account, imageReference: ImageMediaReference.standalone(media: tmpImage), scale: 2.0, small:true) - let iconSize = representation.dimensions.aspectFilled(CGSize(width: 50, height: 50)) + let iconSize = representation.dimensions.size.aspectFilled(CGSize(width: 50, height: 50)) let imageCorners = ImageCorners(topLeft: .Corner(2.0), topRight: .Corner(2.0), bottomLeft: .Corner(2.0), bottomRight: .Corner(2.0)) - arguments = TransformImageArguments(corners: imageCorners, imageSize: representation.dimensions, boundingSize: iconSize, intrinsicInsets: NSEdgeInsets()) + arguments = TransformImageArguments(corners: imageCorners, imageSize: representation.dimensions.size, boundingSize: iconSize, intrinsicInsets: NSEdgeInsets()) iconText = nil } else { arguments = nil diff --git a/Telegram-Mac/ContextMediaRowItem.swift b/Telegram-Mac/ContextMediaRowItem.swift index 36161880f..5ab2eb1c8 100644 --- a/Telegram-Mac/ContextMediaRowItem.swift +++ b/Telegram-Mac/ContextMediaRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox final class ContextMediaArguments { let sendResult: (ChatContextResult, NSView) -> Void diff --git a/Telegram-Mac/ContextSearchMessageItem.swift b/Telegram-Mac/ContextSearchMessageItem.swift index 1dbccccdf..814bf8dfb 100644 --- a/Telegram-Mac/ContextSearchMessageItem.swift +++ b/Telegram-Mac/ContextSearchMessageItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac +import Postbox class ContextSearchMessageItem: GeneralRowItem { diff --git a/Telegram-Mac/ContextStickerRowItem.swift b/Telegram-Mac/ContextStickerRowItem.swift index d1550b9ad..7b4f63a2b 100644 --- a/Telegram-Mac/ContextStickerRowItem.swift +++ b/Telegram-Mac/ContextStickerRowItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit @@ -126,7 +127,7 @@ class ContextStickerRowView : TableRowView, ModalPreviewRowViewProtocol { container.addSubview(view) } else { let file = data.file - let imageSize = file.dimensions?.aspectFitted(NSMakeSize(item.result.sizes[i].width - 8, item.result.sizes[i].height - 8)) ?? item.result.sizes[i] + let imageSize = file.dimensions?.size.aspectFitted(NSMakeSize(item.result.sizes[i].width - 8, item.result.sizes[i].height - 8)) ?? item.result.sizes[i] let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: imageSize, boundingSize: imageSize, intrinsicInsets: NSEdgeInsets()) let view = TransformImageView() view.setSignal(signal: cachedMedia(media: file, arguments: arguments, scale: backingScaleFactor), clearInstantly: false) diff --git a/Telegram-Mac/ContextSwitchPeerRowItem.swift b/Telegram-Mac/ContextSwitchPeerRowItem.swift index 84d5d9950..51b2ea86c 100644 --- a/Telegram-Mac/ContextSwitchPeerRowItem.swift +++ b/Telegram-Mac/ContextSwitchPeerRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ContextSwitchPeerRowItem: TableRowItem { fileprivate let account:Account fileprivate let peerId:PeerId diff --git a/Telegram-Mac/ControllerExtension.swift b/Telegram-Mac/ControllerExtension.swift index a46828530..8d3b5bfb9 100644 --- a/Telegram-Mac/ControllerExtension.swift +++ b/Telegram-Mac/ControllerExtension.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit class TelegramGenericViewController: GenericViewController where T:NSView { diff --git a/Telegram-Mac/CoreExtension.swift b/Telegram-Mac/CoreExtension.swift index 502a9a417..9b0f57c1e 100644 --- a/Telegram-Mac/CoreExtension.swift +++ b/Telegram-Mac/CoreExtension.swift @@ -8,27 +8,14 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit -import MtProtoKitMac +import SyncCore +import MtProtoKit -extension AdminLogEventsFlags { - - /* - "ChannelEventFilter.NewRestrictions" = "New Restrictions"; - "ChannelEventFilter.NewAdmins" = "New Admins"; - "ChannelEventFilter.NewMembers" = "New Members"; - "ChannelEventFilter.GroupInfo" = "Group Info"; - "ChannelEventFilter.DeletedMessages" = "Deleted Messages"; - "ChannelEventFilter.EditedMessages" = "Edited Messages"; - "ChannelEventFilter.PinnedMessages" = "Pinned Messages"; - "ChannelEventFilter.LeavingMembers" = "Leaving Members"; - */ - - -} extension RenderedChannelParticipant { func withUpdatedBannedRights(_ info: ChannelParticipantBannedInfo) -> RenderedChannelParticipant { @@ -241,7 +228,7 @@ extension TelegramMediaFile { var videoSize:NSSize { for attr in attributes { if case let .Video(_,size, _) = attr { - return size + return size.size } } return NSZeroSize @@ -261,7 +248,7 @@ extension TelegramMediaFile { var imageSize:NSSize { for attr in attributes { if case let .ImageSize(size) = attr { - return size + return size.size } } return NSZeroSize @@ -2186,8 +2173,8 @@ extension PostboxAccessChallengeData { switch self { case .none: return nil - case let .numericalPassword(_, timeout, _), let .plaintextPassword(_, timeout, _): - return timeout + case let .numericalPassword(_), let .plaintextPassword(_): + return 0 } } } @@ -2499,7 +2486,7 @@ struct SecureIdDocumentValue { self.context = context } var image: TelegramMediaImage { - return TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: NSMakeSize(100, 100), resource: document.resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + return TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(100, 100), resource: document.resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) } } @@ -2738,5 +2725,3 @@ extension TelegramMediaWebpageLoadedContent { // - - diff --git a/Telegram-Mac/CreateChannelViewController.swift b/Telegram-Mac/CreateChannelViewController.swift index eadb58159..ac2975715 100644 --- a/Telegram-Mac/CreateChannelViewController.swift +++ b/Telegram-Mac/CreateChannelViewController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/CreateGroupSignals.swift b/Telegram-Mac/CreateGroupSignals.swift index 2a53092bd..e90d01f93 100644 --- a/Telegram-Mac/CreateGroupSignals.swift +++ b/Telegram-Mac/CreateGroupSignals.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac -import MtProtoKitMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/CreateGroupViewController.swift b/Telegram-Mac/CreateGroupViewController.swift index f426f5d19..9bbc0e95f 100644 --- a/Telegram-Mac/CreateGroupViewController.swift +++ b/Telegram-Mac/CreateGroupViewController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/CustomAccentColorModalController.swift b/Telegram-Mac/CustomAccentColorModalController.swift index 350db2ae3..49ee11f3f 100644 --- a/Telegram-Mac/CustomAccentColorModalController.swift +++ b/Telegram-Mac/CustomAccentColorModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class CustomAccentColorView : View { private let tableView: TableView = TableView(frame: NSZeroRect) diff --git a/Telegram-Mac/DataAndStorageViewController.swift b/Telegram-Mac/DataAndStorageViewController.swift index 9d2693e38..9adc8b29c 100644 --- a/Telegram-Mac/DataAndStorageViewController.swift +++ b/Telegram-Mac/DataAndStorageViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit public func autodownloadDataSizeString(_ size: Int64) -> String { diff --git a/Telegram-Mac/DeclareEncodables.swift b/Telegram-Mac/DeclareEncodables.swift index 94e0b42db..a1e8247fd 100644 --- a/Telegram-Mac/DeclareEncodables.swift +++ b/Telegram-Mac/DeclareEncodables.swift @@ -7,7 +7,7 @@ // import Cocoa -import PostboxMac +import Postbox private var telegramUIDeclaredEncodables: Void = { declareEncodable(ChatInterfaceState.self, f: { ChatInterfaceState(decoder: $0) }) diff --git a/Telegram-Mac/DeleteSupergroupMessagesModalController.swift b/Telegram-Mac/DeleteSupergroupMessagesModalController.swift index f54851fad..a60622cea 100644 --- a/Telegram-Mac/DeleteSupergroupMessagesModalController.swift +++ b/Telegram-Mac/DeleteSupergroupMessagesModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit struct DeleteSupergroupMessagesSet : OptionSet { diff --git a/Telegram-Mac/DeveloperViewController.swift b/Telegram-Mac/DeveloperViewController.swift index 5927e2cd5..3c964f08a 100644 --- a/Telegram-Mac/DeveloperViewController.swift +++ b/Telegram-Mac/DeveloperViewController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import MtProtoKitMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import MtProtoKit +import Postbox private final class DeveloperArguments { let importColors:()->Void diff --git a/Telegram-Mac/DiscussionSetModalController.swift b/Telegram-Mac/DiscussionSetModalController.swift index cb64c5adb..27ff593c4 100644 --- a/Telegram-Mac/DiscussionSetModalController.swift +++ b/Telegram-Mac/DiscussionSetModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class DiscussionSetView : View { diff --git a/Telegram-Mac/DownloadSettingsViewController.swift b/Telegram-Mac/DownloadSettingsViewController.swift index 4eec747f3..86f3fa889 100644 --- a/Telegram-Mac/DownloadSettingsViewController.swift +++ b/Telegram-Mac/DownloadSettingsViewController.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit private final class DownloadSettingsArguments { diff --git a/Telegram-Mac/DownloadedFilesPaths.swift b/Telegram-Mac/DownloadedFilesPaths.swift index 3c0696a4f..6e81d0e4e 100644 --- a/Telegram-Mac/DownloadedFilesPaths.swift +++ b/Telegram-Mac/DownloadedFilesPaths.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit struct DownloadedPath : PostboxCoding, Equatable { let id: MediaId diff --git a/Telegram-Mac/EBlockItem.swift b/Telegram-Mac/EBlockItem.swift index 65b8f3f16..549a29e05 100644 --- a/Telegram-Mac/EBlockItem.swift +++ b/Telegram-Mac/EBlockItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class EBlockItem: TableRowItem { var _stableId:Int64 = Int64(arc4random()) diff --git a/Telegram-Mac/EBlockRowView.swift b/Telegram-Mac/EBlockRowView.swift index cdefb8716..253cbd09e 100644 --- a/Telegram-Mac/EBlockRowView.swift +++ b/Telegram-Mac/EBlockRowView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit extension CATiledLayer { func fadeDuration() -> CFTimeInterval { diff --git a/Telegram-Mac/EditAccountInfoController.swift b/Telegram-Mac/EditAccountInfoController.swift index 02af1d184..9ed3fd685 100644 --- a/Telegram-Mac/EditAccountInfoController.swift +++ b/Telegram-Mac/EditAccountInfoController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private func valuesRequiringUpdate(state: EditInfoState, view: PeerView) -> ((fn: String, ln: String)?, about: String?) { if let peer = view.peers[view.peerId] as? TelegramUser { diff --git a/Telegram-Mac/EditAccountInfoItem.swift b/Telegram-Mac/EditAccountInfoItem.swift index 423359754..f3167e16d 100644 --- a/Telegram-Mac/EditAccountInfoItem.swift +++ b/Telegram-Mac/EditAccountInfoItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class EditAccountInfoItem: GeneralRowItem { diff --git a/Telegram-Mac/EditImageControls.swift b/Telegram-Mac/EditImageControls.swift index 1b775d7f7..931ad2e7e 100644 --- a/Telegram-Mac/EditImageControls.swift +++ b/Telegram-Mac/EditImageControls.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit struct EditedImageData : Equatable { let originalUrl: URL diff --git a/Telegram-Mac/EditImageModalController.swift b/Telegram-Mac/EditImageModalController.swift index 133868cab..8dc063ee8 100644 --- a/Telegram-Mac/EditImageModalController.swift +++ b/Telegram-Mac/EditImageModalController.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit diff --git a/Telegram-Mac/EditMessageModel.swift b/Telegram-Mac/EditMessageModel.swift index e3dcf84d2..c662762e2 100644 --- a/Telegram-Mac/EditMessageModel.swift +++ b/Telegram-Mac/EditMessageModel.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class EditMessageModel: ChatAccessoryModel { private var account:Account @@ -49,14 +50,14 @@ class EditMessageModel: ChatAccessoryModel { for media in message.media { if let image = media as? TelegramMediaImage { if let representation = largestRepresentationForPhoto(image) { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } break } else if let file = media as? TelegramMediaFile, file.isVideo { - if let dimensions = file.dimensions { + if let dimensions = file.dimensions?.size { imageDimensions = dimensions } else if let representation = largestImageRepresentation(file.previewRepresentations), !file.isStaticSticker { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } break } @@ -94,16 +95,16 @@ class EditMessageModel: ChatAccessoryModel { if let image = media as? TelegramMediaImage { updatedMedia = image if let representation = largestRepresentationForPhoto(image) { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } break } else if let file = media as? TelegramMediaFile, file.isVideo { updatedMedia = file if let dimensions = file.dimensions { - imageDimensions = dimensions + imageDimensions = dimensions.size } else if let representation = largestImageRepresentation(file.previewRepresentations), !file.isStaticSticker { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } if file.isInstantVideo { hasRoundImage = true diff --git a/Telegram-Mac/EditThemeController.swift b/Telegram-Mac/EditThemeController.swift index 5a1f224bf..19eecc01a 100644 --- a/Telegram-Mac/EditThemeController.swift +++ b/Telegram-Mac/EditThemeController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox private let _id_no_preview1 = InputDataIdentifier("_id_no_preview1") private let _id_no_preview2 = InputDataIdentifier("_id_no_preview2") diff --git a/Telegram-Mac/EmojiToleranceController.swift b/Telegram-Mac/EmojiToleranceController.swift index 7fb24369c..2aa59646d 100644 --- a/Telegram-Mac/EmojiToleranceController.swift +++ b/Telegram-Mac/EmojiToleranceController.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import PostboxMac +import Postbox private class EmojiTolerance : View { diff --git a/Telegram-Mac/EmojiViewController.swift b/Telegram-Mac/EmojiViewController.swift index 6593d8ed0..c208739d4 100644 --- a/Telegram-Mac/EmojiViewController.swift +++ b/Telegram-Mac/EmojiViewController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/EmptyChatViewController.swift b/Telegram-Mac/EmptyChatViewController.swift index 052bf80ed..888a6c668 100644 --- a/Telegram-Mac/EmptyChatViewController.swift +++ b/Telegram-Mac/EmptyChatViewController.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class EmptyChatView : View { private let containerView: View = View() diff --git a/Telegram-Mac/EmptyComposeController.swift b/Telegram-Mac/EmptyComposeController.swift index cae9abd17..a786f2090 100644 --- a/Telegram-Mac/EmptyComposeController.swift +++ b/Telegram-Mac/EmptyComposeController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore class ComposeState { let result:T diff --git a/Telegram-Mac/EntertainmentViewController.swift b/Telegram-Mac/EntertainmentViewController.swift index 42a8feedd..5f980362a 100644 --- a/Telegram-Mac/EntertainmentViewController.swift +++ b/Telegram-Mac/EntertainmentViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox enum ESearchCommand { diff --git a/Telegram-Mac/ExMajorNavigationController.swift b/Telegram-Mac/ExMajorNavigationController.swift index 510cd07e1..06b034c89 100644 --- a/Telegram-Mac/ExMajorNavigationController.swift +++ b/Telegram-Mac/ExMajorNavigationController.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class ExMajorNavigationController: MajorNavigationController { private let context:AccountContext diff --git a/Telegram-Mac/ExportProxyModalController.swift b/Telegram-Mac/ExportProxyModalController.swift index 2c31beafd..8dab0aa48 100644 --- a/Telegram-Mac/ExportProxyModalController.swift +++ b/Telegram-Mac/ExportProxyModalController.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/Extensions.swift b/Telegram-Mac/Extensions.swift index 6d02a1bff..989361e69 100644 --- a/Telegram-Mac/Extensions.swift +++ b/Telegram-Mac/Extensions.swift @@ -8,9 +8,10 @@ import Foundation import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import LocalAuthentication extension Message { diff --git a/Telegram-Mac/ExternalMusicAlbumArtResources.swift b/Telegram-Mac/ExternalMusicAlbumArtResources.swift index abcc6bfea..7da36d427 100644 --- a/Telegram-Mac/ExternalMusicAlbumArtResources.swift +++ b/Telegram-Mac/ExternalMusicAlbumArtResources.swift @@ -9,9 +9,10 @@ import Cocoa import Foundation -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private func urlEncodedStringFromString(_ string: String) -> String { var nsString: NSString = string as NSString diff --git a/Telegram-Mac/ExternalVideoLoader.swift b/Telegram-Mac/ExternalVideoLoader.swift index 52b55936d..633114243 100644 --- a/Telegram-Mac/ExternalVideoLoader.swift +++ b/Telegram-Mac/ExternalVideoLoader.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit let sharedVideoLoader:ExternalVideoLoader = { let shared = ExternalVideoLoader() diff --git a/Telegram-Mac/FFMpegMediaFrameSource.swift b/Telegram-Mac/FFMpegMediaFrameSource.swift index 3c90165db..7585b1c3a 100644 --- a/Telegram-Mac/FFMpegMediaFrameSource.swift +++ b/Telegram-Mac/FFMpegMediaFrameSource.swift @@ -1,7 +1,8 @@ import Foundation -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class ThreadTaskQueue: NSObject { diff --git a/Telegram-Mac/FFMpegMediaFrameSourceContext.swift b/Telegram-Mac/FFMpegMediaFrameSourceContext.swift index 51320b8a9..a64246b60 100644 --- a/Telegram-Mac/FFMpegMediaFrameSourceContext.swift +++ b/Telegram-Mac/FFMpegMediaFrameSourceContext.swift @@ -1,8 +1,9 @@ import Foundation -import SwiftSignalKitMac -import PostboxMac +import SwiftSignalKit +import Postbox import CoreMedia -import TelegramCoreMac +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/FWDNavigationAction.swift b/Telegram-Mac/FWDNavigationAction.swift index 35e8532e4..dbf940f3c 100644 --- a/Telegram-Mac/FWDNavigationAction.swift +++ b/Telegram-Mac/FWDNavigationAction.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class FWDNavigationAction: NavigationModalAction { let messages:[Message] diff --git a/Telegram-Mac/FastSettings.swift b/Telegram-Mac/FastSettings.swift index f17ca100f..fb27a1046 100644 --- a/Telegram-Mac/FastSettings.swift +++ b/Telegram-Mac/FastSettings.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox enum SendingType :String { case enter = "enter" diff --git a/Telegram-Mac/FeaturedStickerPacksController.swift b/Telegram-Mac/FeaturedStickerPacksController.swift index 3fd0a7b01..8c563c4e9 100644 --- a/Telegram-Mac/FeaturedStickerPacksController.swift +++ b/Telegram-Mac/FeaturedStickerPacksController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class FeaturedStickerPacksControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/FetchCachedRepresentations.swift b/Telegram-Mac/FetchCachedRepresentations.swift index 93abac0a4..84d2109ac 100644 --- a/Telegram-Mac/FetchCachedRepresentations.swift +++ b/Telegram-Mac/FetchCachedRepresentations.swift @@ -7,11 +7,12 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit -import RLottieMac +import RLottie private let cacheThreadPool = ThreadPool(threadCount: 1, threadPriority: 0.1) diff --git a/Telegram-Mac/FetchManager.swift b/Telegram-Mac/FetchManager.swift index 8cbb91a80..1672f2209 100644 --- a/Telegram-Mac/FetchManager.swift +++ b/Telegram-Mac/FetchManager.swift @@ -1,7 +1,8 @@ import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private struct FetchManagerLocationEntryId: Hashable { let location: FetchManagerLocation diff --git a/Telegram-Mac/FetchManagerLocation.swift b/Telegram-Mac/FetchManagerLocation.swift index ec82e2322..448119249 100644 --- a/Telegram-Mac/FetchManagerLocation.swift +++ b/Telegram-Mac/FetchManagerLocation.swift @@ -1,6 +1,6 @@ import Foundation -import PostboxMac +import Postbox enum FetchManagerCategory: Int32 { case image diff --git a/Telegram-Mac/FetchMediaUtils.swift b/Telegram-Mac/FetchMediaUtils.swift index b751607c2..6d3952154 100644 --- a/Telegram-Mac/FetchMediaUtils.swift +++ b/Telegram-Mac/FetchMediaUtils.swift @@ -1,8 +1,9 @@ import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit func freeMediaFileInteractiveFetched(context: AccountContext, fileReference: FileMediaReference, range: Range? = nil) -> Signal { return fetchedMediaResource(mediaBox: context.account.postbox.mediaBox, reference: fileReference.resourceReference(fileReference.media.resource), range: range != nil ? (range!, .default) : nil, statsCategory: fileReference.media.isVideo ? .video : .file) |> `catch` { _ in return .complete() } diff --git a/Telegram-Mac/FetchVideoMediaResource.swift b/Telegram-Mac/FetchVideoMediaResource.swift index 94ff9cdc0..bf769100b 100644 --- a/Telegram-Mac/FetchVideoMediaResource.swift +++ b/Telegram-Mac/FetchVideoMediaResource.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit func fetchGifMediaResource(resource: LocalFileGifMediaResource) -> Signal { return Signal { subscriber in @@ -68,7 +69,7 @@ func fetchMovMediaResource(resource: LocalFileVideoMediaResource) -> Signal Signal BarView { let button = TextButtonBarView(controller: self, text: tr(L10n.chatCancel)) diff --git a/Telegram-Mac/ForwardPanelModel.swift b/Telegram-Mac/ForwardPanelModel.swift index 100838fa9..032e9bfe8 100644 --- a/Telegram-Mac/ForwardPanelModel.swift +++ b/Telegram-Mac/ForwardPanelModel.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore class ForwardPanelModel: ChatAccessoryModel { diff --git a/Telegram-Mac/GIFContainerView.swift b/Telegram-Mac/GIFContainerView.swift index 957bfd65c..f6f5477c9 100644 --- a/Telegram-Mac/GIFContainerView.swift +++ b/Telegram-Mac/GIFContainerView.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit class GIFContainerView: Control { let player:GIFPlayerView = GIFPlayerView() @@ -180,7 +181,7 @@ class GIFContainerView: Control { player.center() progressView?.center() let imageSize = viewSize.aspectFitted(NSMakeSize(size.width, size.height)) - let arguments = TransformImageArguments(corners: ImageCorners(radius:2.0), imageSize: (file?.dimensions ?? imageSize).aspectFilled(viewSize), boundingSize: imageSize, intrinsicInsets: NSEdgeInsets()) + let arguments = TransformImageArguments(corners: ImageCorners(radius:2.0), imageSize: (file?.dimensions?.size ?? imageSize).aspectFilled(viewSize), boundingSize: imageSize, intrinsicInsets: NSEdgeInsets()) if let file = file { player.setSignal(signal: cachedMedia(media: file, arguments: arguments, scale: backingScaleFactor), clearInstantly: updated) diff --git a/Telegram-Mac/GIFPlayerView.swift b/Telegram-Mac/GIFPlayerView.swift index fabd2c921..144b0a3ab 100644 --- a/Telegram-Mac/GIFPlayerView.swift +++ b/Telegram-Mac/GIFPlayerView.swift @@ -9,7 +9,7 @@ import Cocoa import TGUIKit import AVFoundation -import SwiftSignalKitMac +import SwiftSignalKit final class CIStickerContext : CIContext { diff --git a/Telegram-Mac/GIFViewController.swift b/Telegram-Mac/GIFViewController.swift index b5b3a8fb5..1ebcb2a8f 100644 --- a/Telegram-Mac/GIFViewController.swift +++ b/Telegram-Mac/GIFViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private func prepareEntries(left:[InputContextEntry], right:[InputContextEntry], context: AccountContext, initialSize:NSSize, chatInteraction: RecentGifsArguments?) -> TableUpdateTransition { let (removed, inserted, updated) = proccessEntriesWithoutReverse(left, right: right, { entry -> TableRowItem in diff --git a/Telegram-Mac/GalleryModernControls.swift b/Telegram-Mac/GalleryModernControls.swift index 60239da79..12a57416f 100644 --- a/Telegram-Mac/GalleryModernControls.swift +++ b/Telegram-Mac/GalleryModernControls.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class GalleryModernControlsView: View { diff --git a/Telegram-Mac/GalleryPageController.swift b/Telegram-Mac/GalleryPageController.swift index 5880f5c03..d8b9de0c0 100644 --- a/Telegram-Mac/GalleryPageController.swift +++ b/Telegram-Mac/GalleryPageController.swift @@ -8,11 +8,12 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation import AVKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import Lottie fileprivate class GMagnifyView : MagnifyView { diff --git a/Telegram-Mac/GalleryThumbsControl.swift b/Telegram-Mac/GalleryThumbsControl.swift index 5d0305ebc..1875d4fbe 100644 --- a/Telegram-Mac/GalleryThumbsControl.swift +++ b/Telegram-Mac/GalleryThumbsControl.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore class GalleryThumbsControl: ViewController { private let interactions: GalleryInteractions diff --git a/Telegram-Mac/GalleryThumbsControlView.swift b/Telegram-Mac/GalleryThumbsControlView.swift index e00682247..b44a48d2c 100644 --- a/Telegram-Mac/GalleryThumbsControlView.swift +++ b/Telegram-Mac/GalleryThumbsControlView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class GalleryThumbContainer : Control { @@ -22,7 +22,7 @@ class GalleryThumbContainer : Control { var size: NSSize? if let item = item as? MGalleryPhotoItem { signal = chatWebpageSnippetPhoto(account: item.context.account, imageReference: item.entry.imageReference(item.media), scale: backingScaleFactor, small: true, secureIdAccessContext: item.secureIdAccessContext) - size = item.media.representations.first?.dimensions + size = item.media.representations.first?.dimensions.size item.fetch() } else if let item = item as? MGalleryGIFItem { signal = chatMessageImageFile(account: item.context.account, fileReference: item.entry.fileReference(item.media), scale: backingScaleFactor) @@ -33,7 +33,7 @@ class GalleryThumbContainer : Control { } else if let item = item as? MGalleryPeerPhotoItem { signal = chatMessagePhoto(account: item.context.account, imageReference: item.entry.imageReference(item.media), scale: backingScaleFactor) - size = item.media.representations.first?.dimensions + size = item.media.representations.first?.dimensions.size item.fetch() } diff --git a/Telegram-Mac/GalleryTouchBar.swift b/Telegram-Mac/GalleryTouchBar.swift index 6a2c69222..d90f23a40 100644 --- a/Telegram-Mac/GalleryTouchBar.swift +++ b/Telegram-Mac/GalleryTouchBar.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/GalleryTouchBarThumbItemView.swift b/Telegram-Mac/GalleryTouchBarThumbItemView.swift index 0dfbb4966..36fcc5cbe 100644 --- a/Telegram-Mac/GalleryTouchBarThumbItemView.swift +++ b/Telegram-Mac/GalleryTouchBarThumbItemView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit @available(OSX 10.12.2, *) class GalleryTouchBarThumbItemView: NSScrubberItemView { @@ -26,20 +27,20 @@ class GalleryTouchBarThumbItemView: NSScrubberItemView { var size: NSSize? if let item = item as? MGalleryPhotoItem { signal = chatWebpageSnippetPhoto(account: item.context.account, imageReference: item.entry.imageReference(item.media), scale: backingScaleFactor, small: true, secureIdAccessContext: item.secureIdAccessContext) - size = item.media.representations.first?.dimensions + size = item.media.representations.first?.dimensions.size } else if let item = item as? MGalleryGIFItem { signal = chatMessageImageFile(account: item.context.account, fileReference: item.entry.fileReference(item.media), scale: backingScaleFactor) size = item.media.videoSize } else if let item = item as? MGalleryExternalVideoItem { signal = chatWebpageSnippetPhoto(account: item.context.account, imageReference: item.entry.imageReference(item.mediaImage), scale: backingScaleFactor, small: true, secureIdAccessContext: nil) - size = item.mediaImage.representations.first?.dimensions + size = item.mediaImage.representations.first?.dimensions.size } else if let item = item as? MGalleryVideoItem { signal = chatMessageImageFile(account: item.context.account, fileReference: item.entry.fileReference(item.media), scale: backingScaleFactor) size = item.media.videoSize } else if let item = item as? MGalleryPeerPhotoItem { signal = chatMessagePhoto(account: item.context.account, imageReference: item.entry.imageReference(item.media), scale: backingScaleFactor) - size = item.media.representations.first?.dimensions + size = item.media.representations.first?.dimensions.size } item.fetch() diff --git a/Telegram-Mac/GalleryViewer.swift b/Telegram-Mac/GalleryViewer.swift index 834975eaf..31648be26 100644 --- a/Telegram-Mac/GalleryViewer.swift +++ b/Telegram-Mac/GalleryViewer.swift @@ -7,10 +7,11 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import AVFoundation import Lottie @@ -484,7 +485,7 @@ class GalleryViewer: NSResponder { default: break } - } else if let base = firstStableId.base as? String, base == photo.image.representationForDisplayAtSize(NSMakeSize(640, 640))?.resource.id.uniqueId { + } else if let base = firstStableId.base as? String, base == photo.image.representationForDisplayAtSize(PixelDimensions(640, 640))?.resource.id.uniqueId { foundIndex = true currentIndex = i diff --git a/Telegram-Mac/GeneralInputRow.swift b/Telegram-Mac/GeneralInputRow.swift index 49f007574..b3f93e618 100644 --- a/Telegram-Mac/GeneralInputRow.swift +++ b/Telegram-Mac/GeneralInputRow.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum GeneralInputRowType { case plain diff --git a/Telegram-Mac/GeneralInteractedRowItem.swift b/Telegram-Mac/GeneralInteractedRowItem.swift index fd75f37d4..85041e4e9 100644 --- a/Telegram-Mac/GeneralInteractedRowItem.swift +++ b/Telegram-Mac/GeneralInteractedRowItem.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit struct GeneralThumbAdditional { diff --git a/Telegram-Mac/GeneralSettingsViewController.swift b/Telegram-Mac/GeneralSettingsViewController.swift index 4a3057658..31c5c995c 100644 --- a/Telegram-Mac/GeneralSettingsViewController.swift +++ b/Telegram-Mac/GeneralSettingsViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private enum GeneralSettingsEntry : Comparable, Identifiable { diff --git a/Telegram-Mac/GeneratedMediaStoreSettings.swift b/Telegram-Mac/GeneratedMediaStoreSettings.swift index c010b8109..a0e7724f4 100644 --- a/Telegram-Mac/GeneratedMediaStoreSettings.swift +++ b/Telegram-Mac/GeneratedMediaStoreSettings.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit public struct GeneratedMediaStoreSettings: PreferencesEntry, Equatable { public let storeEditedPhotos: Bool diff --git a/Telegram-Mac/Geocoding.swift b/Telegram-Mac/Geocoding.swift index 1dc53d341..9a39958f0 100644 --- a/Telegram-Mac/Geocoding.swift +++ b/Telegram-Mac/Geocoding.swift @@ -1,6 +1,6 @@ import Foundation import CoreLocation -import SwiftSignalKitMac +import SwiftSignalKit func geocodeLocation(dictionary: [String: String]) -> Signal<(Double, Double)?, NoError> { return Signal { subscriber in diff --git a/Telegram-Mac/GlobalBadgeNode.swift b/Telegram-Mac/GlobalBadgeNode.swift index 02ead57d9..4ec0b2229 100644 --- a/Telegram-Mac/GlobalBadgeNode.swift +++ b/Telegram-Mac/GlobalBadgeNode.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/GlobalHandlers.swift b/Telegram-Mac/GlobalHandlers.swift index da7148dc6..867a15324 100644 --- a/Telegram-Mac/GlobalHandlers.swift +++ b/Telegram-Mac/GlobalHandlers.swift @@ -7,8 +7,9 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore let archiver: ArchiverContext = ArchiverContext() diff --git a/Telegram-Mac/GridMessageItem.swift b/Telegram-Mac/GridMessageItem.swift index 0f9232f7f..1b8329370 100644 --- a/Telegram-Mac/GridMessageItem.swift +++ b/Telegram-Mac/GridMessageItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private func mediaForMessage(_ message: Message) -> Media? { @@ -296,7 +297,7 @@ final class GridMessageItemNode: GridItemNode { let imageFrame = NSMakeRect(1, 1, bounds.width - 4, bounds.height - 4) - if let media = media as? TelegramMediaImage, let largestSize = largestImageRepresentation(media.representations)?.dimensions { + if let media = media as? TelegramMediaImage, let largestSize = largestImageRepresentation(media.representations)?.dimensions.size { mediaDimensions = largestSize let imageSize = largestSize.aspectFilled(NSMakeSize(bounds.width - 4, bounds.height - 4)) @@ -313,7 +314,7 @@ final class GridMessageItemNode: GridItemNode { self.videoAccessory?.removeFromSuperview() self.videoAccessory = nil - } else if let file = media as? TelegramMediaFile, let imgSize = file.previewRepresentations.last?.dimensions { + } else if let file = media as? TelegramMediaFile, let imgSize = file.previewRepresentations.last?.dimensions.size { mediaDimensions = imgSize diff --git a/Telegram-Mac/GroupInfoEntries.swift b/Telegram-Mac/GroupInfoEntries.swift index b3ee891d7..e0b00a6ef 100644 --- a/Telegram-Mac/GroupInfoEntries.swift +++ b/Telegram-Mac/GroupInfoEntries.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/GroupNameRowItem.swift b/Telegram-Mac/GroupNameRowItem.swift index b353320c5..4d317099e 100644 --- a/Telegram-Mac/GroupNameRowItem.swift +++ b/Telegram-Mac/GroupNameRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class GroupNameRowItem: InputDataRowItem { @@ -73,7 +74,7 @@ class GroupNameRowView : InputDataRowView { if let path = item.photo, let image = NSImage(contentsOf: URL(fileURLWithPath: path)) { let resource = LocalFileReferenceMediaResource(localFilePath: path, randomId: arc4random64()) - let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: image.size, resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(image.size), resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) photoView.setSignal(chatMessagePhoto(account: item.account, imageReference: ImageMediaReference.standalone(media: image), scale: backingScaleFactor), clearInstantly: false, animate: true) let arguments = TransformImageArguments(corners: ImageCorners(radius: photoView.frame.width / 2), imageSize: photoView.frame.size, boundingSize: photoView.frame.size, intrinsicInsets: NSEdgeInsets()) diff --git a/Telegram-Mac/GroupStickerSetController.swift b/Telegram-Mac/GroupStickerSetController.swift index d9aa45db5..582c27808 100644 --- a/Telegram-Mac/GroupStickerSetController.swift +++ b/Telegram-Mac/GroupStickerSetController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class GroupStickersArguments { let context: AccountContext diff --git a/Telegram-Mac/GroupedLayout.swift b/Telegram-Mac/GroupedLayout.swift index c4eccb574..59e46a73e 100644 --- a/Telegram-Mac/GroupedLayout.swift +++ b/Telegram-Mac/GroupedLayout.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac +import Postbox private final class MessagePhotoInfo { let mid:MessageId diff --git a/Telegram-Mac/GroupsInCommonViewController.swift b/Telegram-Mac/GroupsInCommonViewController.swift index 535c48595..dcd15c006 100644 --- a/Telegram-Mac/GroupsInCommonViewController.swift +++ b/Telegram-Mac/GroupsInCommonViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit final class GroupsInCommonArguments { let context: AccountContext diff --git a/Telegram-Mac/ImageCompression.swift b/Telegram-Mac/ImageCompression.swift index 4971be9af..d702f9564 100644 --- a/Telegram-Mac/ImageCompression.swift +++ b/Telegram-Mac/ImageCompression.swift @@ -7,9 +7,10 @@ // import Cocoa -import MtProtoKitMac -import TelegramCoreMac -import PostboxMac + +import TelegramCore +import SyncCore +import Postbox import TGUIKit diff --git a/Telegram-Mac/ImageUtils.swift b/Telegram-Mac/ImageUtils.swift index 676bee8fd..0b665654f 100644 --- a/Telegram-Mac/ImageUtils.swift +++ b/Telegram-Mac/ImageUtils.swift @@ -7,10 +7,12 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit +import SyncCore let graphicsThreadPool = ThreadPool(threadCount: 5, threadPriority: 1) diff --git a/Telegram-Mac/InAppLinks.swift b/Telegram-Mac/InAppLinks.swift index e31eab177..13746f1c5 100644 --- a/Telegram-Mac/InAppLinks.swift +++ b/Telegram-Mac/InAppLinks.swift @@ -9,10 +9,12 @@ import Cocoa import Foundation import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit +import MtProtoKit +import WalletCore private let inapp:String = "chat://" private let tgme:String = "tg://" @@ -441,28 +443,35 @@ func execute(inapp:inAppLink) { }) case let .tonTransfer(_, context, data: data): if #available(OSX 10.12, *) { - let _ = combineLatest(queue: .mainQueue(), walletConfiguration(postbox: context.account.postbox), availableWallets(postbox: context.account.postbox), TONKeychain.hasKeys(for: context.account)).start(next: { configuration, wallets, hasKeys in + let _ = combineLatest(queue: .mainQueue(), walletConfiguration(postbox: context.account.postbox), TONKeychain.hasKeys(for: context.account)).start(next: { configuration, hasKeys in if let config = configuration.config, let blockchainName = configuration.blockchainName { let tonContext = context.tonContext.context(config: config, blockchainName: blockchainName, enableProxy: !configuration.disableProxy) - if !wallets.wallets.isEmpty, hasKeys { - let amount = data.amount ?? 0 - let formattedAmount: String - if amount > 0 { - formattedAmount = formatBalanceText(amount) - } else { - formattedAmount = "" - } - let controller = WalletSendController(context: context, tonContext: tonContext, walletInfo: wallets.wallets[0].info, recipient: data.address, comment: data.comment ?? "", amount: formattedAmount) - showModal(with: controller, for: context.window) - } else { - confirm(for: context.window, header: L10n.walletTonLinkEmptyTitle, information: L10n.walletTonLinkEmptyText, okTitle: L10n.walletTonLinkEmptyThrid, successHandler: { result in - switch result { - case .basic: - context.sharedContext.bindings.rootNavigation().push(WalletSplashController(context: context, tonContext: tonContext, mode: .intro)) - default: - break + if hasKeys { + let signal = tonContext.storage.getWalletRecords() |> deliverOnMainQueue + _ = signal.start(next: { wallets in + if !wallets.isEmpty { + let amount = data.amount ?? 0 + let formattedAmount: String + if amount > 0 { + formattedAmount = formatBalanceText(amount) + } else { + formattedAmount = "" + } + let controller = WalletSendController(context: context, tonContext: tonContext, walletInfo: wallets[0].info, recipient: data.address, comment: data.comment ?? "", amount: formattedAmount) + showModal(with: controller, for: context.window) + } else { + confirm(for: context.window, header: L10n.walletTonLinkEmptyTitle, information: L10n.walletTonLinkEmptyText, okTitle: L10n.walletTonLinkEmptyThrid, successHandler: { result in + switch result { + case .basic: + context.sharedContext.bindings.rootNavigation().push(WalletSplashController(context: context, tonContext: tonContext, mode: .intro)) + default: + break + } + }) } }) + } else { + context.sharedContext.bindings.rootNavigation().push(WalletSplashController(context: context, tonContext: tonContext, mode: .unavailable)) } } }) diff --git a/Telegram-Mac/InAppNotificationSettings.swift b/Telegram-Mac/InAppNotificationSettings.swift index f7c632a66..b4b9f59fe 100644 --- a/Telegram-Mac/InAppNotificationSettings.swift +++ b/Telegram-Mac/InAppNotificationSettings.swift @@ -35,9 +35,11 @@ public enum TotalUnreadCountDisplayCategory: Int32 { } } -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore +import SyncCore struct InAppNotificationSettings: PreferencesEntry, Equatable { let enabled: Bool diff --git a/Telegram-Mac/Info.plist b/Telegram-Mac/Info.plist index c5feb735f..38f7bc246 100644 --- a/Telegram-Mac/Info.plist +++ b/Telegram-Mac/Info.plist @@ -34,7 +34,7 @@ CFBundleVersion - 185481 + 185511 LSApplicationCategoryType public.app-category.social-networking LSFileQuarantineEnabled diff --git a/Telegram-Mac/InlineAudioPlayerView.swift b/Telegram-Mac/InlineAudioPlayerView.swift index d39b07e3e..5f6f5426b 100644 --- a/Telegram-Mac/InlineAudioPlayerView.swift +++ b/Telegram-Mac/InlineAudioPlayerView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/InlineLoginController.swift b/Telegram-Mac/InlineLoginController.swift index e18410a70..6b5a371de 100644 --- a/Telegram-Mac/InlineLoginController.swift +++ b/Telegram-Mac/InlineLoginController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox public struct InlineLoginOption: OptionSet { public var rawValue: Int32 diff --git a/Telegram-Mac/InputContextHelper.swift b/Telegram-Mac/InputContextHelper.swift index 252813859..db05cf0c9 100644 --- a/Telegram-Mac/InputContextHelper.swift +++ b/Telegram-Mac/InputContextHelper.swift @@ -7,10 +7,11 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/InputDataController.swift b/Telegram-Mac/InputDataController.swift index 4aa48aba4..79c44b6b6 100644 --- a/Telegram-Mac/InputDataController.swift +++ b/Telegram-Mac/InputDataController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit public class InputDataModalController : ModalViewController { diff --git a/Telegram-Mac/InputDataControllerEntries.swift b/Telegram-Mac/InputDataControllerEntries.swift index 351fd8f6b..6ca368530 100644 --- a/Telegram-Mac/InputDataControllerEntries.swift +++ b/Telegram-Mac/InputDataControllerEntries.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit enum InputDataEntryId : Hashable { case desc(Int32) diff --git a/Telegram-Mac/InputPasswordController.swift b/Telegram-Mac/InputPasswordController.swift index 0dfb18346..7a5c0fb51 100644 --- a/Telegram-Mac/InputPasswordController.swift +++ b/Telegram-Mac/InputPasswordController.swift @@ -7,8 +7,9 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore import TGUIKit enum InputPasswordValueError { diff --git a/Telegram-Mac/InputPasteboardParser.swift b/Telegram-Mac/InputPasteboardParser.swift index ca73cd3e1..6759b20a9 100644 --- a/Telegram-Mac/InputPasteboardParser.swift +++ b/Telegram-Mac/InputPasteboardParser.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit class InputPasteboardParser: NSObject { diff --git a/Telegram-Mac/InputSources.swift b/Telegram-Mac/InputSources.swift index 5df205101..f8ffabfbe 100644 --- a/Telegram-Mac/InputSources.swift +++ b/Telegram-Mac/InputSources.swift @@ -6,10 +6,11 @@ // Copyright © 2019 Telegram. All rights reserved. // -import SwiftSignalKitMac +import SwiftSignalKit import Foundation -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox final class InputSources: NSObject { diff --git a/Telegram-Mac/InputURLFormatterModalController.swift b/Telegram-Mac/InputURLFormatterModalController.swift index 568287a54..77db952b9 100644 --- a/Telegram-Mac/InputURLFormatterModalController.swift +++ b/Telegram-Mac/InputURLFormatterModalController.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit private struct InputURLFormatterState : Equatable { let text: String diff --git a/Telegram-Mac/InstalledStickerPacksController.swift b/Telegram-Mac/InstalledStickerPacksController.swift index cba0e4ac1..f00a26628 100644 --- a/Telegram-Mac/InstalledStickerPacksController.swift +++ b/Telegram-Mac/InstalledStickerPacksController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class InstalledStickerPacksControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/InstantPageAnchorItem.swift b/Telegram-Mac/InstantPageAnchorItem.swift index 6387f7f7c..1220818f7 100644 --- a/Telegram-Mac/InstantPageAnchorItem.swift +++ b/Telegram-Mac/InstantPageAnchorItem.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore final class InstantPageAnchorItem: InstantPageItem { var frame: CGRect diff --git a/Telegram-Mac/InstantPageArticleItem.swift b/Telegram-Mac/InstantPageArticleItem.swift index aff90b6dc..1ef7cacd6 100644 --- a/Telegram-Mac/InstantPageArticleItem.swift +++ b/Telegram-Mac/InstantPageArticleItem.swift @@ -8,10 +8,11 @@ import Cocoa import Foundation -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit final class InstantPageArticleItem: InstantPageItem { @@ -221,7 +222,7 @@ final class InstantPageArticleView: Button, InstantPageView { self.contentTileView.frame = self.bounds if let imageView = self.imageView, let image = self.cover, let largest = largestImageRepresentation(image.representations) { - let size = largest.dimensions.aspectFilled(imageSize) + let size = largest.dimensions.size.aspectFilled(imageSize) let boundingSize = imageSize imageView.set(arguments: TransformImageArguments(corners: ImageCorners(radius: 5.0), imageSize: size, boundingSize: boundingSize, intrinsicInsets: NSEdgeInsets())) diff --git a/Telegram-Mac/InstantPageAudioItem.swift b/Telegram-Mac/InstantPageAudioItem.swift index 1a82ae0a9..bcccb8200 100644 --- a/Telegram-Mac/InstantPageAudioItem.swift +++ b/Telegram-Mac/InstantPageAudioItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore final class InstantPageAudioItem: InstantPageItem { let wantsView: Bool = true diff --git a/Telegram-Mac/InstantPageAudioView.swift b/Telegram-Mac/InstantPageAudioView.swift index 3724360d2..c0a9b6160 100644 --- a/Telegram-Mac/InstantPageAudioView.swift +++ b/Telegram-Mac/InstantPageAudioView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit final class InstantPageAudioView: View, InstantPageView, APDelegate { diff --git a/Telegram-Mac/InstantPageChannelItem.swift b/Telegram-Mac/InstantPageChannelItem.swift index d47bf2b2c..069e3b338 100644 --- a/Telegram-Mac/InstantPageChannelItem.swift +++ b/Telegram-Mac/InstantPageChannelItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit class InstantPageChannelItem: InstantPageItem { diff --git a/Telegram-Mac/InstantPageChannelView.swift b/Telegram-Mac/InstantPageChannelView.swift index 295a77b65..6dd387708 100644 --- a/Telegram-Mac/InstantPageChannelView.swift +++ b/Telegram-Mac/InstantPageChannelView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class InstantPageChannelView : View, InstantPageView { private let channel: TelegramChannel diff --git a/Telegram-Mac/InstantPageContentView.swift b/Telegram-Mac/InstantPageContentView.swift index 48f25eb89..9108eb7da 100644 --- a/Telegram-Mac/InstantPageContentView.swift +++ b/Telegram-Mac/InstantPageContentView.swift @@ -7,9 +7,10 @@ // import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/InstantPageDetailsItem.swift b/Telegram-Mac/InstantPageDetailsItem.swift index c9195200b..877c1bcb0 100644 --- a/Telegram-Mac/InstantPageDetailsItem.swift +++ b/Telegram-Mac/InstantPageDetailsItem.swift @@ -7,10 +7,11 @@ // import Foundation -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit final class InstantPageDetailsItem: InstantPageItem { var hasLinks: Bool = false @@ -348,7 +349,7 @@ final class InstantPageDetailsArrowView : View { private var progress: CGFloat = 0.0 private var targetProgress: CGFloat? - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? init(color: NSColor, open: Bool) { self.color = color @@ -379,7 +380,7 @@ final class InstantPageDetailsArrowView : View { } private func startTimer() { if timer == nil { - timer = SwiftSignalKitMac.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in self?.displayLinkEvent() }, queue: Queue.mainQueue()) timer?.start() diff --git a/Telegram-Mac/InstantPageImageItem.swift b/Telegram-Mac/InstantPageImageItem.swift index e71847526..4e078814a 100644 --- a/Telegram-Mac/InstantPageImageItem.swift +++ b/Telegram-Mac/InstantPageImageItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore protocol InstantPageImageAttribute { } diff --git a/Telegram-Mac/InstantPageItem.swift b/Telegram-Mac/InstantPageItem.swift index f5115214b..1bc0c0f65 100644 --- a/Telegram-Mac/InstantPageItem.swift +++ b/Telegram-Mac/InstantPageItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox final class InstantPageItemArguments { diff --git a/Telegram-Mac/InstantPageLayout.swift b/Telegram-Mac/InstantPageLayout.swift index 3f3d62be7..0de0dbe2f 100644 --- a/Telegram-Mac/InstantPageLayout.swift +++ b/Telegram-Mac/InstantPageLayout.swift @@ -7,9 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit +import SyncCore final class InstantPageLayout { let origin: CGPoint @@ -404,7 +406,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins return InstantPageLayout(origin: CGPoint(), contentSize: contentSize, items: items) case let .image(id, caption, url, webpageId): if let image = media[id] as? TelegramMediaImage, let largest = largestImageRepresentation(image.representations) { - let imageSize = largest.dimensions + let imageSize = largest.dimensions.size var filledSize = imageSize.aspectFitted(CGSize(width: boundingWidth - safeInset * 2.0, height: 1200.0)) if let size = fillToSize { @@ -441,7 +443,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins return InstantPageLayout(origin: CGPoint(), contentSize: CGSize(), items: []) } case let .video(id, caption, autoplay, loop): - if let file = media[id] as? TelegramMediaFile, let dimensions = file.dimensions { + if let file = media[id] as? TelegramMediaFile, let dimensions = file.dimensions?.size { let imageSize = dimensions var filledSize = imageSize.aspectFitted(CGSize(width: boundingWidth - safeInset * 2.0, height: 1200.0)) @@ -587,7 +589,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins for subBlock in subItems { switch subBlock { case let .image(id, caption, url, webpageId): - if let image = media[id] as? TelegramMediaImage, let imageSize = largestImageRepresentation(image.representations)?.dimensions { + if let image = media[id] as? TelegramMediaImage, let imageSize = largestImageRepresentation(image.representations)?.dimensions.size { let mediaIndex = mediaIndexCounter mediaIndexCounter += 1 @@ -724,7 +726,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins } return InstantPageLayout(origin: CGPoint(), contentSize: contentSize, items: items) case let .map(latitude, longitude, zoom, dimensions, caption): - let imageSize = dimensions + let imageSize = dimensions.size var filledSize = imageSize.aspectFitted(CGSize(width: boundingWidth - safeInset * 2.0, height: 1200.0)) if let size = fillToSize { @@ -737,7 +739,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins } let map = TelegramMediaMap(latitude: latitude, longitude: longitude, geoPlace: nil, venue: nil, liveBroadcastingTimeout: nil) - let attributes: [InstantPageImageAttribute] = [InstantPageMapAttribute(zoom: zoom, dimensions: dimensions)] + let attributes: [InstantPageImageAttribute] = [InstantPageMapAttribute(zoom: zoom, dimensions: dimensions.size)] var contentSize = CGSize(width: boundingWidth - safeInset * 2.0, height: 0.0) var items: [InstantPageItem] = [] @@ -761,7 +763,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins embedIndexCounter += 1 let size: CGSize - if let dimensions = dimensions { + if let dimensions = dimensions?.size { if dimensions.width.isLessThanOrEqualTo(0.0) { size = CGSize(width: embedBoundingWidth, height: dimensions.height) } else { @@ -784,7 +786,7 @@ func layoutInstantPageBlock(webpage: TelegramMediaWebpage, rtl: Bool, block: Ins if url.lowercased().contains("youtube"), url.lowercased().contains("embed/") { url = url.replacingOccurrences(of: "embed/", with: "watch?v=") } - let loadedContent = TelegramMediaWebpageLoadedContent(url: url, displayUrl: url, hash: 0, type: "video", websiteName: nil, title: nil, text: nil, embedUrl: url, embedType: "video", embedSize: size, duration: nil, author: nil, image: image, file: nil, files: nil, instantPage: nil) + let loadedContent = TelegramMediaWebpageLoadedContent(url: url, displayUrl: url, hash: 0, type: "video", websiteName: nil, title: nil, text: nil, embedUrl: url, embedType: "video", embedSize: PixelDimensions(size), duration: nil, author: nil, image: image, file: nil, files: nil, instantPage: nil) let content = TelegramMediaWebpageContent.Loaded(loadedContent) item = InstantPageImageItem(frame: frame, webPage: webpage, media: InstantPageMedia(index: embedIndex, media: TelegramMediaWebpage(webpageId: MediaId(namespace: Namespaces.Media.LocalWebpage, id: -1), content: content), webpage: webpage, url: nil, caption: nil, credit: nil), attributes: [], interactive: false, roundCorners: false, fit: false) diff --git a/Telegram-Mac/InstantPageLayoutSpacings.swift b/Telegram-Mac/InstantPageLayoutSpacings.swift index e63964106..d531d24e9 100644 --- a/Telegram-Mac/InstantPageLayoutSpacings.swift +++ b/Telegram-Mac/InstantPageLayoutSpacings.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore func spacingBetweenBlocks(upper: InstantPageBlock?, lower: InstantPageBlock?) -> CGFloat { if let upper = upper, let lower = lower { diff --git a/Telegram-Mac/InstantPageMedia.swift b/Telegram-Mac/InstantPageMedia.swift index ad31d6356..f6892385f 100644 --- a/Telegram-Mac/InstantPageMedia.swift +++ b/Telegram-Mac/InstantPageMedia.swift @@ -7,8 +7,9 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/InstantPageMediaItem.swift b/Telegram-Mac/InstantPageMediaItem.swift index 95e07f09d..8edcacead 100644 --- a/Telegram-Mac/InstantPageMediaItem.swift +++ b/Telegram-Mac/InstantPageMediaItem.swift @@ -8,7 +8,8 @@ import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore enum InstantPageMediaArguments { case image(interactive: Bool, roundCorners: Bool, fit: Bool) diff --git a/Telegram-Mac/InstantPageMediaView.swift b/Telegram-Mac/InstantPageMediaView.swift index ab9758d05..b91a26167 100644 --- a/Telegram-Mac/InstantPageMediaView.swift +++ b/Telegram-Mac/InstantPageMediaView.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac - +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit +import SyncCore final class InstantPageMediaView: View, InstantPageView { private let context: AccountContext let media: InstantPageMedia @@ -178,7 +179,7 @@ final class InstantPageMediaView: View, InstantPageView { let resource = MapSnapshotMediaResource(latitude: map.latitude, longitude: map.longitude, width: Int32(dimensions.width), height: Int32(dimensions.height), zoom: zoom) - let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: dimensions, resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(dimensions), resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) let imageReference = ImageMediaReference.webPage(webPage: WebpageReference(media.webpage), media: image) let signal = chatWebpageSnippetPhoto(account: context.account, imageReference: imageReference, scale: backingScaleFactor, small: false) self.imageView.setSignal(signal) @@ -229,7 +230,7 @@ final class InstantPageMediaView: View, InstantPageView { self.imageView.frame = CGRect(origin: CGPoint(), size: size) if let image = self.media.media as? TelegramMediaImage, let largest = largestImageRepresentation(image.representations) { - var imageSize = largest.dimensions.aspectFilled(size) + var imageSize = largest.dimensions.size.aspectFilled(size) var boundingSize = size var radius: CGFloat = 0.0 @@ -238,7 +239,7 @@ final class InstantPageMediaView: View, InstantPageView { radius = roundCorners ? floor(min(size.width, size.height) / 2.0) : 0.0 if fit { - imageSize = largest.dimensions.fitted(size) + imageSize = largest.dimensions.size.fitted(size) boundingSize = imageSize; } @@ -251,7 +252,7 @@ final class InstantPageMediaView: View, InstantPageView { imageView.set(arguments: TransformImageArguments(corners: ImageCorners(radius: radius), imageSize: imageSize, boundingSize: boundingSize, intrinsicInsets: NSEdgeInsets())) } else if let file = self.media.media as? TelegramMediaFile { - let imageSize = file.dimensions?.aspectFilled(size) ?? size + let imageSize = file.dimensions?.size.aspectFilled(size) ?? size let boundingSize = size imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: imageSize, boundingSize: boundingSize, intrinsicInsets: NSEdgeInsets())) @@ -270,7 +271,7 @@ final class InstantPageMediaView: View, InstantPageView { imageView.set(arguments: TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: imageSize, boundingSize: boundingSize, intrinsicInsets: NSEdgeInsets())) } else if let webPage = media.media as? TelegramMediaWebpage, case let .Loaded(content) = webPage.content, let image = content.image, let largest = largestImageRepresentation(image.representations) { - var imageSize = largest.dimensions.aspectFilled(size) + var imageSize = largest.dimensions.size.aspectFilled(size) var boundingSize = size var radius: CGFloat = 0.0 @@ -279,7 +280,7 @@ final class InstantPageMediaView: View, InstantPageView { radius = roundCorners ? floor(min(size.width, size.height) / 2.0) : 0.0 if fit { - imageSize = largest.dimensions.fitted(size) + imageSize = largest.dimensions.size.fitted(size) boundingSize = imageSize; } diff --git a/Telegram-Mac/InstantPagePeerReferenceItem.swift b/Telegram-Mac/InstantPagePeerReferenceItem.swift index 57b8449ab..96cdde795 100644 --- a/Telegram-Mac/InstantPagePeerReferenceItem.swift +++ b/Telegram-Mac/InstantPagePeerReferenceItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore final class InstantPagePeerReferenceItem: InstantPageItem { diff --git a/Telegram-Mac/InstantPageScrollableItem.swift b/Telegram-Mac/InstantPageScrollableItem.swift index 2c9de2294..16f8b93d9 100644 --- a/Telegram-Mac/InstantPageScrollableItem.swift +++ b/Telegram-Mac/InstantPageScrollableItem.swift @@ -1,7 +1,8 @@ import Foundation -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit protocol InstantPageScrollableItem: class, InstantPageItem { diff --git a/Telegram-Mac/InstantPageSelectText.swift b/Telegram-Mac/InstantPageSelectText.swift index 5c84aa960..a8e6b8e84 100644 --- a/Telegram-Mac/InstantPageSelectText.swift +++ b/Telegram-Mac/InstantPageSelectText.swift @@ -16,9 +16,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import AVFoundation struct InstantPageSelectContainer { diff --git a/Telegram-Mac/InstantPageShapeItem.swift b/Telegram-Mac/InstantPageShapeItem.swift index b516232a2..26ea0b731 100644 --- a/Telegram-Mac/InstantPageShapeItem.swift +++ b/Telegram-Mac/InstantPageShapeItem.swift @@ -8,7 +8,8 @@ import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore enum InstantPageShape { case rect diff --git a/Telegram-Mac/InstantPageSlideshowItem.swift b/Telegram-Mac/InstantPageSlideshowItem.swift index cbc846a95..b3b79e3ae 100644 --- a/Telegram-Mac/InstantPageSlideshowItem.swift +++ b/Telegram-Mac/InstantPageSlideshowItem.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit class InstantPageSlideshowItem: InstantPageItem { diff --git a/Telegram-Mac/InstantPageStoredState.swift b/Telegram-Mac/InstantPageStoredState.swift index 164fbcd58..b84250417 100644 --- a/Telegram-Mac/InstantPageStoredState.swift +++ b/Telegram-Mac/InstantPageStoredState.swift @@ -9,9 +9,10 @@ import Cocoa import Foundation -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore final class InstantPageStoredDetailsState: PostboxCoding { let index: Int32 diff --git a/Telegram-Mac/InstantPageTableItem.swift b/Telegram-Mac/InstantPageTableItem.swift index 9f30f19e7..6c69b7017 100644 --- a/Telegram-Mac/InstantPageTableItem.swift +++ b/Telegram-Mac/InstantPageTableItem.swift @@ -1,7 +1,8 @@ import Foundation -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit diff --git a/Telegram-Mac/InstantPageTextItem.swift b/Telegram-Mac/InstantPageTextItem.swift index b758e48d9..62fec9ef4 100644 --- a/Telegram-Mac/InstantPageTextItem.swift +++ b/Telegram-Mac/InstantPageTextItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox extension NSAttributedString.Key { @@ -533,7 +534,7 @@ func attributedStringForRichText(_ text: RichText, styleStack: InstantPageTextSt let width: CGFloat } - var dimensions = dimensions + var dimensions = dimensions.size if let boundingWidth = boundingWidth { dimensions = dimensions.fittedToWidthOrSmaller(boundingWidth) } diff --git a/Telegram-Mac/InstantPageTextStyleStack.swift b/Telegram-Mac/InstantPageTextStyleStack.swift index 17a29be44..9c751e2ef 100644 --- a/Telegram-Mac/InstantPageTextStyleStack.swift +++ b/Telegram-Mac/InstantPageTextStyleStack.swift @@ -8,7 +8,8 @@ import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit enum InstantPageTextStyle { diff --git a/Telegram-Mac/InstantPageTheme.swift b/Telegram-Mac/InstantPageTheme.swift index 539400e5f..09ecc9df3 100644 --- a/Telegram-Mac/InstantPageTheme.swift +++ b/Telegram-Mac/InstantPageTheme.swift @@ -9,7 +9,7 @@ import Cocoa import Foundation -import PostboxMac +import Postbox enum InstantPageFontStyle { case sans diff --git a/Telegram-Mac/InstantPageViewController.swift b/Telegram-Mac/InstantPageViewController.swift index e29dd7447..ab5e23b34 100644 --- a/Telegram-Mac/InstantPageViewController.swift +++ b/Telegram-Mac/InstantPageViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class InstantPageViewController: TelegramGenericViewController { diff --git a/Telegram-Mac/InstantPageWebEmbedItem.swift b/Telegram-Mac/InstantPageWebEmbedItem.swift index 77bbb9ae3..6bf81bf13 100644 --- a/Telegram-Mac/InstantPageWebEmbedItem.swift +++ b/Telegram-Mac/InstantPageWebEmbedItem.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore final class InstantPageWebEmbedItem: InstantPageItem { var frame: CGRect diff --git a/Telegram-Mac/InstantVideoPIP.swift b/Telegram-Mac/InstantVideoPIP.swift index 902d7dd32..306f033a0 100644 --- a/Telegram-Mac/InstantVideoPIP.swift +++ b/Telegram-Mac/InstantVideoPIP.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit enum InstantVideoPIPCornerAlignment { case topLeft diff --git a/Telegram-Mac/InstantViewAppearance.swift b/Telegram-Mac/InstantViewAppearance.swift index 8468c19d5..68a63a6e7 100644 --- a/Telegram-Mac/InstantViewAppearance.swift +++ b/Telegram-Mac/InstantViewAppearance.swift @@ -8,8 +8,8 @@ import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit public enum InstantPageThemeType: Int32 { case light = 0 diff --git a/Telegram-Mac/InstantViewWindow.swift b/Telegram-Mac/InstantViewWindow.swift index aa0a51f67..abb47d1f5 100644 --- a/Telegram-Mac/InstantViewWindow.swift +++ b/Telegram-Mac/InstantViewWindow.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class InstantViewArguments { let context: AccountContext let share:()->Void diff --git a/Telegram-Mac/JoinLinkPreviewModalController.swift b/Telegram-Mac/JoinLinkPreviewModalController.swift index 18ee3aab7..33ffbacd7 100644 --- a/Telegram-Mac/JoinLinkPreviewModalController.swift +++ b/Telegram-Mac/JoinLinkPreviewModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private class JoinLinkPreviewView : View { private let imageView:AvatarControl = AvatarControl(font: .avatar(.huge)) diff --git a/Telegram-Mac/Keychain.swift b/Telegram-Mac/Keychain.swift index 8624b54cf..d895e4183 100644 --- a/Telegram-Mac/Keychain.swift +++ b/Telegram-Mac/Keychain.swift @@ -8,9 +8,12 @@ import Cocoa import Security -import MtProtoKitMac -import TelegramCoreMac -import SwiftSignalKitMac + +import TelegramCore +import SyncCore +import SwiftSignalKit +import MtProtoKit +import WalletCore private let salt = "string with no sense".data(using: .utf8)! diff --git a/Telegram-Mac/LanguageRowItem.swift b/Telegram-Mac/LanguageRowItem.swift index 7f7824135..b4435234d 100644 --- a/Telegram-Mac/LanguageRowItem.swift +++ b/Telegram-Mac/LanguageRowItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class LanguageRowItem: GeneralRowItem { fileprivate let selected:Bool fileprivate let locale:TextViewLayout diff --git a/Telegram-Mac/LanguageViewController.swift b/Telegram-Mac/LanguageViewController.swift index 8e828e148..f9c0879a6 100644 --- a/Telegram-Mac/LanguageViewController.swift +++ b/Telegram-Mac/LanguageViewController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/LegacyImportAuthorization.swift b/Telegram-Mac/LegacyImportAuthorization.swift index 9e80197ac..477c74701 100644 --- a/Telegram-Mac/LegacyImportAuthorization.swift +++ b/Telegram-Mac/LegacyImportAuthorization.swift @@ -7,10 +7,11 @@ // -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac -//import MtProtoKitMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore +// // //enum AuthorizationLegacyData { // case data(masterDatacenterId: Int32, userId:Int32, groups:[String: [String: Data]], peers:[Peer], secretMessages:[StoreMessage], resources: [(MediaResource, Data)], secretState:[PeerId: SecretChatStateBridge], passcode:String?) diff --git a/Telegram-Mac/LinkInvationController.swift b/Telegram-Mac/LinkInvationController.swift index 245985149..b200a9888 100644 --- a/Telegram-Mac/LinkInvationController.swift +++ b/Telegram-Mac/LinkInvationController.swift @@ -9,9 +9,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private enum GroupLinkInvationEntryStableId : Hashable { case section(Int) diff --git a/Telegram-Mac/ListViewIntermediateState.swift b/Telegram-Mac/ListViewIntermediateState.swift index e7d1a2d35..10c197859 100644 --- a/Telegram-Mac/ListViewIntermediateState.swift +++ b/Telegram-Mac/ListViewIntermediateState.swift @@ -8,7 +8,7 @@ import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public enum ListViewCenterScrollPositionOverflow { case Top diff --git a/Telegram-Mac/LocalizableExtension.swift b/Telegram-Mac/LocalizableExtension.swift index cb32a16c2..37472888d 100644 --- a/Telegram-Mac/LocalizableExtension.swift +++ b/Telegram-Mac/LocalizableExtension.swift @@ -5,10 +5,11 @@ // Created by keepcoder on 25/05/2017. // Copyright © 2017 Telegram. All rights reserved. // -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore import TGUIKit - +import SyncCore #if !APP_STORE import Sparkle #endif diff --git a/Telegram-Mac/LocalizationPreviewModalController.swift b/Telegram-Mac/LocalizationPreviewModalController.swift index 545b3d694..83563877a 100644 --- a/Telegram-Mac/LocalizationPreviewModalController.swift +++ b/Telegram-Mac/LocalizationPreviewModalController.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore private final class LocalizationPreviewView : Control { private let titleView: TextView = TextView() diff --git a/Telegram-Mac/LocationModalController.swift b/Telegram-Mac/LocationModalController.swift index c54274f71..aac76a6d9 100644 --- a/Telegram-Mac/LocationModalController.swift +++ b/Telegram-Mac/LocationModalController.swift @@ -9,10 +9,11 @@ import Cocoa import TGUIKit import MapKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac -import MtProtoKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox + private enum PickLocationState : Equatable { diff --git a/Telegram-Mac/LocationPlaceSuggestionRowItem.swift b/Telegram-Mac/LocationPlaceSuggestionRowItem.swift index ae7b60344..16ad3cf53 100644 --- a/Telegram-Mac/LocationPlaceSuggestionRowItem.swift +++ b/Telegram-Mac/LocationPlaceSuggestionRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox class LocationPlaceSuggestionRowItem: GeneralRowItem { private let result: ChatContextResult @@ -33,7 +34,7 @@ class LocationPlaceSuggestionRowItem: GeneralRowItem { _ = attr.append(string: venue.address, color: theme.colors.grayText, font: .normal(.text)) if let type = venue.type { let resource = HttpReferenceMediaResource(url: "https://ss3.4sqi.net/img/categories_v2/\(type)_88.png", size: nil) - let representation = TelegramMediaImageRepresentation(dimensions: NSMakeSize(60, 60), resource: resource) + let representation = TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 60, height: 60), resource: resource) image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [representation], immediateThumbnailData: nil, reference: nil, partialReference: nil) } diff --git a/Telegram-Mac/LocationRequest.swift b/Telegram-Mac/LocationRequest.swift index 45d5ad29b..3e9a4ea67 100644 --- a/Telegram-Mac/LocationRequest.swift +++ b/Telegram-Mac/LocationRequest.swift @@ -8,7 +8,7 @@ import Cocoa import CoreLocation -import SwiftSignalKitMac +import SwiftSignalKit import AVKit enum UserLocationResult : Equatable { case success(CLLocation) diff --git a/Telegram-Mac/LoginErrorStateView.swift b/Telegram-Mac/LoginErrorStateView.swift index a354f6c1e..419fd6b02 100644 --- a/Telegram-Mac/LoginErrorStateView.swift +++ b/Telegram-Mac/LoginErrorStateView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit enum LoginAuthErrorState : Equatable { case normal diff --git a/Telegram-Mac/LoginViewController.swift b/Telegram-Mac/LoginViewController.swift index 689cdc49e..c2bed4c8b 100644 --- a/Telegram-Mac/LoginViewController.swift +++ b/Telegram-Mac/LoginViewController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit + private let manager = CountryManager() final class LoginAuthViewArguments { @@ -1005,7 +1006,7 @@ private final class AwaitingResetConfirmationView : View { private let reset: TitleButton = TitleButton() private var phoneNumber: String = "" private var protectedUntil: Int32 = 0 - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? required init(frame frameRect: NSRect) { super.init(frame: frameRect) textView.isSelectable = false @@ -1026,7 +1027,7 @@ private final class AwaitingResetConfirmationView : View { }, for: .Click) if self.timer == nil { - let timer = SwiftSignalKitMac.Timer(timeout: 1.0, repeat: true, completion: { [weak self] in + let timer = SwiftSignalKit.Timer(timeout: 1.0, repeat: true, completion: { [weak self] in self?.updateTimerValue() }, queue: Queue.mainQueue()) self.timer = timer diff --git a/Telegram-Mac/LogoutViewController.swift b/Telegram-Mac/LogoutViewController.swift index a645a0767..b5f35773d 100644 --- a/Telegram-Mac/LogoutViewController.swift +++ b/Telegram-Mac/LogoutViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private struct LogoutControllerState : Equatable { diff --git a/Telegram-Mac/LottieBufferCompressor.swift b/Telegram-Mac/LottieBufferCompressor.swift index c04a51ca5..3441a6f7b 100644 --- a/Telegram-Mac/LottieBufferCompressor.swift +++ b/Telegram-Mac/LottieBufferCompressor.swift @@ -8,10 +8,9 @@ import Cocoa import Compression -import TelegramApiMac import Accelerate -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit import TGUIKit private enum WriteResult { diff --git a/Telegram-Mac/LottiePlayer.swift b/Telegram-Mac/LottiePlayer.swift index 255c94720..84864395b 100644 --- a/Telegram-Mac/LottiePlayer.swift +++ b/Telegram-Mac/LottiePlayer.swift @@ -1,6 +1,6 @@ -import SwiftSignalKitMac -import PostboxMac -import RLottieMac +import SwiftSignalKit +import Postbox +import RLottie import TGUIKit import Metal @@ -224,7 +224,7 @@ private final class PlayerRenderer { private var layer: Atomic = Atomic(value: nil) private let updateState:(LottiePlayerState)->Void private let displayFrame: (RenderedFrame)->Void - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? private let release:()->Void init(animation: LottieAnimation, displayFrame: @escaping(RenderedFrame)->Void, release:@escaping()->Void, updateState:@escaping(LottiePlayerState)->Void) { self.animation = animation @@ -439,7 +439,7 @@ private final class PlayerRenderer { } add_frames() - self.timer = SwiftSignalKitMac.Timer(timeout: (1.0 / TimeInterval(fps)), repeat: true, completion: { + self.timer = SwiftSignalKit.Timer(timeout: (1.0 / TimeInterval(fps)), repeat: true, completion: { render() }, queue: stateQueue) diff --git a/Telegram-Mac/LottieTestModalController.swift b/Telegram-Mac/LottieTestModalController.swift index c1085755c..0c2b39792 100644 --- a/Telegram-Mac/LottieTestModalController.swift +++ b/Telegram-Mac/LottieTestModalController.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import Lottie private final class LottieTestView : ImageView { required override init(frame frameRect: NSRect) { diff --git a/Telegram-Mac/MGalleryExternalVideoItem.swift b/Telegram-Mac/MGalleryExternalVideoItem.swift index ab6f24637..18e923c16 100644 --- a/Telegram-Mac/MGalleryExternalVideoItem.swift +++ b/Telegram-Mac/MGalleryExternalVideoItem.swift @@ -8,9 +8,10 @@ import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit import AVFoundation import AVKit diff --git a/Telegram-Mac/MGalleryGIFItem.swift b/Telegram-Mac/MGalleryGIFItem.swift index 34e2c8d3d..89e9454b5 100644 --- a/Telegram-Mac/MGalleryGIFItem.swift +++ b/Telegram-Mac/MGalleryGIFItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit class MGalleryGIFItem: MGalleryItem { @@ -67,7 +68,7 @@ class MGalleryGIFItem: MGalleryItem { } override var sizeValue: NSSize { - if let size = media.dimensions { + if let size = media.dimensions?.size { return size.fitted(pagerSize) } return pagerSize diff --git a/Telegram-Mac/MGalleryItem.swift b/Telegram-Mac/MGalleryItem.swift index e267437fd..3472cd6c5 100644 --- a/Telegram-Mac/MGalleryItem.swift +++ b/Telegram-Mac/MGalleryItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit import Lottie @@ -219,7 +220,7 @@ enum GalleryEntry : Comparable, Identifiable { func peerPhotoResource() -> MediaResourceReference { switch self { case let .photo(_, _, image, _, peer, message, _): - if let representation = image.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { + if let representation = image.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { if let message = message { return .media(media: .message(message: MessageReference(message), media: image), resource: representation.resource) } diff --git a/Telegram-Mac/MGalleryPeerPhotoItem.swift b/Telegram-Mac/MGalleryPeerPhotoItem.swift index b33aed29b..b5b22cdc3 100644 --- a/Telegram-Mac/MGalleryPeerPhotoItem.swift +++ b/Telegram-Mac/MGalleryPeerPhotoItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit class MGalleryPeerPhotoItem: MGalleryItem { @@ -21,21 +22,21 @@ class MGalleryPeerPhotoItem: MGalleryItem { } override var sizeValue: NSSize { - if let largest = media.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { - return largest.dimensions.fitted(pagerSize) + if let largest = media.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { + return largest.dimensions.size.fitted(pagerSize) } return NSZeroSize } override func smallestValue(for size: NSSize) -> NSSize { - if let largest = media.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { - return largest.dimensions.fitted(size) + if let largest = media.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { + return largest.dimensions.size.fitted(size) } return pagerSize } override var status:Signal { - if let largestRepresentation = media.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { + if let largestRepresentation = media.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { return context.account.postbox.mediaBox.resourceStatus(largestRepresentation.resource) } else { return .never() @@ -101,7 +102,7 @@ class MGalleryPeerPhotoItem: MGalleryItem { // } - if let representation = media.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { + if let representation = media.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { path.set(context.account.postbox.mediaBox.resourceData(representation.resource) |> mapToSignal { (resource) -> Signal in if resource.complete { @@ -123,7 +124,7 @@ class MGalleryPeerPhotoItem: MGalleryItem { override func cancel() -> Void { super.cancel() - if let representation = media.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { + if let representation = media.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { cancelFreeMediaFileInteractiveFetch(context: context, resource: representation.resource) } fetching.set(nil) diff --git a/Telegram-Mac/MGalleryPhotoItem.swift b/Telegram-Mac/MGalleryPhotoItem.swift index c39d62606..6640ac28b 100644 --- a/Telegram-Mac/MGalleryPhotoItem.swift +++ b/Telegram-Mac/MGalleryPhotoItem.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit class MGalleryPhotoItem: MGalleryItem { @@ -24,7 +25,7 @@ class MGalleryPhotoItem: MGalleryItem { if case let .Loaded(content) = webpage.content, let image = content.image { self.media = image } else if case let .Loaded(content) = webpage.content, let media = content.file { - let represenatation = TelegramMediaImageRepresentation(dimensions: media.dimensions ?? NSZeroSize, resource: media.resource) + let represenatation = TelegramMediaImageRepresentation(dimensions: media.dimensions ?? PixelDimensions(0, 0), resource: media.resource) var representations = media.previewRepresentations representations.append(represenatation) self.media = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: representations, immediateThumbnailData: nil, reference: nil, partialReference: nil) @@ -34,7 +35,7 @@ class MGalleryPhotoItem: MGalleryItem { } } else { if let media = entry.message!.media[0] as? TelegramMediaFile { - let represenatation = TelegramMediaImageRepresentation(dimensions: media.dimensions ?? NSZeroSize, resource: media.resource) + let represenatation = TelegramMediaImageRepresentation(dimensions: media.dimensions ?? PixelDimensions(0, 0), resource: media.resource) var representations = media.previewRepresentations representations.append(represenatation) self.media = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: representations, immediateThumbnailData: nil, reference: nil, partialReference: nil) @@ -63,7 +64,7 @@ class MGalleryPhotoItem: MGalleryItem { if let modifiedSize = modifiedSize { return modifiedSize.fitted(pagerSize) } - return largest.dimensions.fitted(pagerSize) + return largest.dimensions.size.fitted(pagerSize) } return NSZeroSize } @@ -72,13 +73,13 @@ class MGalleryPhotoItem: MGalleryItem { if let largest = media.representations.last { if let modifiedSize = modifiedSize { let lhsProportion = modifiedSize.width/modifiedSize.height - let rhsProportion = largest.dimensions.width/largest.dimensions.height + let rhsProportion = largest.dimensions.size.width/largest.dimensions.size.height if lhsProportion != rhsProportion { return modifiedSize.fitted(size) } } - return largest.dimensions.fitted(size) + return largest.dimensions.size.fitted(size) } return pagerSize } diff --git a/Telegram-Mac/MGalleryVideoItem.swift b/Telegram-Mac/MGalleryVideoItem.swift index f2539a34e..5001f2f19 100644 --- a/Telegram-Mac/MGalleryVideoItem.swift +++ b/Telegram-Mac/MGalleryVideoItem.swift @@ -8,9 +8,10 @@ import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit import AVFoundation import AVKit @@ -116,16 +117,16 @@ class MGalleryVideoItem: MGalleryItem { return examinatedSize } if let dimensions = media.dimensions { - return dimensions + return dimensions.size } let linked = link(path: context.account.postbox.mediaBox.resourcePath(media.resource), ext: "mp4") guard let path = linked else { - return media.dimensions + return media.dimensions?.size } let url = URL(fileURLWithPath: path) guard let track = AVURLAsset(url: url).tracks(withMediaType: .video).first else { - return media.dimensions + return media.dimensions?.size } try? FileManager.default.removeItem(at: url) self.examinatedSize = track.naturalSize.applying(track.preferredTransform) @@ -178,7 +179,7 @@ class MGalleryVideoItem: MGalleryItem { let signal:Signal = chatMessageVideo(postbox: context.account.postbox, fileReference: entry.fileReference(media), scale: System.backingScale, synchronousLoad: true) - let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: media.dimensions?.fitted(pagerSize) ?? sizeValue, boundingSize: sizeValue, intrinsicInsets: NSEdgeInsets(), resizeMode: .fill(.black)) + let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: media.dimensions?.size.fitted(pagerSize) ?? sizeValue, boundingSize: sizeValue, intrinsicInsets: NSEdgeInsets(), resizeMode: .fill(.black)) let result = signal |> mapToThrottled { data -> Signal in return .single(data.execute(arguments, data.data)?.generateImage()) } diff --git a/Telegram-Mac/MainViewController.swift b/Telegram-Mac/MainViewController.swift index e66d2d411..20c96634b 100644 --- a/Telegram-Mac/MainViewController.swift +++ b/Telegram-Mac/MainViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit #if !APP_STORE import Sparkle diff --git a/Telegram-Mac/MajorBackNavigationBar.swift b/Telegram-Mac/MajorBackNavigationBar.swift index 9b27e5c73..b50a6f9ce 100644 --- a/Telegram-Mac/MajorBackNavigationBar.swift +++ b/Telegram-Mac/MajorBackNavigationBar.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox class MajorBackNavigationBar: BackNavigationBar { private let disposable:MetaDisposable = MetaDisposable() private let context:AccountContext diff --git a/Telegram-Mac/ManageSharedAccountInfo.swift b/Telegram-Mac/ManageSharedAccountInfo.swift index be18fc2d0..dfeabacd6 100644 --- a/Telegram-Mac/ManageSharedAccountInfo.swift +++ b/Telegram-Mac/ManageSharedAccountInfo.swift @@ -7,10 +7,11 @@ // import Foundation -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac - +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox +import SyncCore private func accountInfo(account: Account) -> Signal { let peerName = account.postbox.transaction { transaction -> String in guard let peer = transaction.getPeer(account.peerId) else { diff --git a/Telegram-Mac/ManagedAudioSession.swift b/Telegram-Mac/ManagedAudioSession.swift index e53022163..07792f52a 100755 --- a/Telegram-Mac/ManagedAudioSession.swift +++ b/Telegram-Mac/ManagedAudioSession.swift @@ -1,5 +1,5 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation enum ManagedAudioSessionType { @@ -124,7 +124,7 @@ public final class ManagedAudioSession { private let queue = Queue() private var holders: [HolderRecord] = [] private var currentTypeAndOutputMode: (ManagedAudioSessionType, AudioSessionOutputMode)? - private var deactivateTimer: SwiftSignalKitMac.Timer? + private var deactivateTimer: SwiftSignalKit.Timer? private var isHeadsetPluggedInValue = false private let outputsToHeadphonesSubscribers = Bag<(Bool) -> Void>() @@ -355,7 +355,7 @@ public final class ManagedAudioSession { if self.currentTypeAndOutputMode?.0 == .voiceCall { self.applyNone() } else { - let deactivateTimer = SwiftSignalKitMac.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in + let deactivateTimer = SwiftSignalKit.Timer(timeout: 1.0, repeat: false, completion: { [weak self] in if let strongSelf = self { strongSelf.applyNone() } diff --git a/Telegram-Mac/MapResources.swift b/Telegram-Mac/MapResources.swift index 096e1760e..1c217b2c9 100644 --- a/Telegram-Mac/MapResources.swift +++ b/Telegram-Mac/MapResources.swift @@ -1,8 +1,9 @@ import Foundation -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import MapKit -import SwiftSignalKitMac +import SwiftSignalKit public struct MapSnapshotMediaResourceId: MediaResourceId { public let latitude: Double diff --git a/Telegram-Mac/MediaAnimatedStickerView.swift b/Telegram-Mac/MediaAnimatedStickerView.swift index 77521b87d..07c717ce4 100644 --- a/Telegram-Mac/MediaAnimatedStickerView.swift +++ b/Telegram-Mac/MediaAnimatedStickerView.swift @@ -7,10 +7,11 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import Lottie diff --git a/Telegram-Mac/MediaFrameSource.swift b/Telegram-Mac/MediaFrameSource.swift index 83d964b27..c7ade4438 100755 --- a/Telegram-Mac/MediaFrameSource.swift +++ b/Telegram-Mac/MediaFrameSource.swift @@ -1,5 +1,5 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import CoreMedia diff --git a/Telegram-Mac/MediaGroupPreviewRowItem.swift b/Telegram-Mac/MediaGroupPreviewRowItem.swift index a7ee63a74..8b62ede93 100644 --- a/Telegram-Mac/MediaGroupPreviewRowItem.swift +++ b/Telegram-Mac/MediaGroupPreviewRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class MediaGroupPreviewRowItem: TableRowItem { fileprivate let context: AccountContext diff --git a/Telegram-Mac/MediaPlaybackData.swift b/Telegram-Mac/MediaPlaybackData.swift index 30724f0d7..687daac55 100755 --- a/Telegram-Mac/MediaPlaybackData.swift +++ b/Telegram-Mac/MediaPlaybackData.swift @@ -1,5 +1,5 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit final class MediaPlaybackBuffers { let audioBuffer: MediaTrackFrameBuffer? diff --git a/Telegram-Mac/MediaPlayer.swift b/Telegram-Mac/MediaPlayer.swift index 060ca6924..3180ef0ee 100755 --- a/Telegram-Mac/MediaPlayer.swift +++ b/Telegram-Mac/MediaPlayer.swift @@ -1,9 +1,10 @@ import Foundation -import SwiftSignalKitMac -import PostboxMac +import SwiftSignalKit +import Postbox import CoreMedia -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox private let traceEvents = false @@ -79,7 +80,7 @@ private final class MediaPlayerContext { private var forceAudioToSpeaker = false fileprivate let videoRenderer: VideoPlayerProxy - private var tickTimer: SwiftSignalKitMac.Timer? + private var tickTimer: SwiftSignalKit.Timer? private var lastStatusUpdateTimestamp: Double? private let playerStatus: ValuePromise @@ -690,7 +691,7 @@ private final class MediaPlayerContext { rate = self.baseRate let nextTickDelay = max(0.0, fullUntil - timestamp) / self.baseRate - let tickTimer = SwiftSignalKitMac.Timer(timeout: nextTickDelay, repeat: false, completion: { [weak self] in + let tickTimer = SwiftSignalKit.Timer(timeout: nextTickDelay, repeat: false, completion: { [weak self] in self?.tick() }, queue: self.queue) self.tickTimer = tickTimer @@ -707,7 +708,7 @@ private final class MediaPlayerContext { if case .playing = self.state { rate = self.baseRate - let tickTimer = SwiftSignalKitMac.Timer(timeout: nextTickDelay, repeat: false, completion: { [weak self] in + let tickTimer = SwiftSignalKit.Timer(timeout: nextTickDelay, repeat: false, completion: { [weak self] in self?.tick() }, queue: self.queue) self.tickTimer = tickTimer diff --git a/Telegram-Mac/MediaPlayerAudioRenderer.swift b/Telegram-Mac/MediaPlayerAudioRenderer.swift index 05340cc5c..246a4e706 100755 --- a/Telegram-Mac/MediaPlayerAudioRenderer.swift +++ b/Telegram-Mac/MediaPlayerAudioRenderer.swift @@ -1,8 +1,9 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import CoreMedia import AVFoundation -import TelegramCoreMac +import TelegramCore +import SyncCore private enum AudioPlayerRendererState { case paused diff --git a/Telegram-Mac/MediaPlayerFramePreview.swift b/Telegram-Mac/MediaPlayerFramePreview.swift index a9dd32922..b8ef2bb9e 100644 --- a/Telegram-Mac/MediaPlayerFramePreview.swift +++ b/Telegram-Mac/MediaPlayerFramePreview.swift @@ -1,7 +1,8 @@ import Foundation -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class FramePreviewContext { diff --git a/Telegram-Mac/MediaPlayerView.swift b/Telegram-Mac/MediaPlayerView.swift index 74b2c6c05..cbcf01637 100644 --- a/Telegram-Mac/MediaPlayerView.swift +++ b/Telegram-Mac/MediaPlayerView.swift @@ -8,7 +8,7 @@ import Foundation import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation private final class MediaPlayerViewLayer: AVSampleBufferDisplayLayer { @@ -57,7 +57,7 @@ final class MediaPlayerView: View { } var takeFrameAndQueue: (Queue, () -> MediaTrackFrameResult)? - var timer: SwiftSignalKitMac.Timer? + var timer: SwiftSignalKit.Timer? var polling = false var currentRotationAngle = 0.0 @@ -152,7 +152,7 @@ final class MediaPlayerView: View { strongSelf.timer?.invalidate() switch status { case let .delay(delay): - strongSelf.timer = SwiftSignalKitMac.Timer(timeout: delay, repeat: true, completion: { + strongSelf.timer = SwiftSignalKit.Timer(timeout: delay, repeat: true, completion: { if let strongSelf = self, let videoLayer = strongSelf.videoLayer, let (_, requestFrames, _, _) = strongSelf.state, requestFrames, strongSelf.videoInHierarchy { if videoLayer.isReadyForMoreMediaData { strongSelf.timer?.invalidate() diff --git a/Telegram-Mac/MediaPreviewRowItem.swift b/Telegram-Mac/MediaPreviewRowItem.swift index 5f9d4162a..8c86b759a 100644 --- a/Telegram-Mac/MediaPreviewRowItem.swift +++ b/Telegram-Mac/MediaPreviewRowItem.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac -import PostboxMac +import SwiftSignalKit +import Postbox class MediaPreviewRowItem: TableRowItem { diff --git a/Telegram-Mac/MediaResources.swift b/Telegram-Mac/MediaResources.swift index 00b343efe..532aa3043 100644 --- a/Telegram-Mac/MediaResources.swift +++ b/Telegram-Mac/MediaResources.swift @@ -8,8 +8,9 @@ import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore public final class VideoMediaResourceAdjustments: PostboxCoding, Equatable { let data: MemoryBuffer diff --git a/Telegram-Mac/MediaTrackFrameBuffer.swift b/Telegram-Mac/MediaTrackFrameBuffer.swift index 5b1b1d391..e0d780a1c 100755 --- a/Telegram-Mac/MediaTrackFrameBuffer.swift +++ b/Telegram-Mac/MediaTrackFrameBuffer.swift @@ -1,5 +1,5 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import CoreMedia enum MediaTrackFrameBufferStatus { diff --git a/Telegram-Mac/MediaUtils.swift b/Telegram-Mac/MediaUtils.swift index fb6a4303a..7a15353a8 100644 --- a/Telegram-Mac/MediaUtils.swift +++ b/Telegram-Mac/MediaUtils.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit import AVFoundation import Accelerate @@ -51,7 +52,7 @@ func chatMessageFileCancelInteractiveFetch(account: Account, file: TelegramMedia } func largestRepresentationForPhoto(_ photo: TelegramMediaImage) -> TelegramMediaImageRepresentation? { - return photo.representationForDisplayAtSize(NSMakeSize(1280.0, 1280.0)) + return photo.representationForDisplayAtSize(PixelDimensions(1280, 1280)) } func smallestImageRepresentation(_ representation:[TelegramMediaImageRepresentation]) -> TelegramMediaImageRepresentation? { @@ -61,7 +62,7 @@ func smallestImageRepresentation(_ representation:[TelegramMediaImageRepresentat // func chatMessagePhotoDatas(postbox: Postbox, imageReference: ImageMediaReference, fullRepresentationSize: CGSize = CGSize(width: 1280.0, height: 1280.0), autoFetchFullSize: Bool = false, tryAdditionalRepresentations: Bool = false, synchronousLoad: Bool = false, secureIdAccessContext: SecureIdAccessContext? = nil) -> Signal { - if let smallestRepresentation = smallestImageRepresentation(imageReference.media.representations), let largestRepresentation = imageReference.media.representationForDisplayAtSize(fullRepresentationSize) { + if let smallestRepresentation = smallestImageRepresentation(imageReference.media.representations), let largestRepresentation = imageReference.media.representationForDisplayAtSize(PixelDimensions(fullRepresentationSize)) { let maybeFullSize = postbox.mediaBox.resourceData(largestRepresentation.resource, option: .complete(waitUntilFetchStatus: false), attemptSynchronously: synchronousLoad) @@ -788,7 +789,7 @@ private func chatMessageAnimatedStickerDatas(postbox: Postbox, file: TelegramMed private func chatMessageAnimatedStickerThumbnailData(postbox: Postbox, file: TelegramMediaFile, synchronousLoad: Bool) -> Signal { let thumbnailResource = chatMessageStickerResource(file: file, small: true) var size: NSSize = NSMakeSize(60, 60) - size = file.dimensions?.aspectFitted(size) ?? size + size = file.dimensions?.size.aspectFitted(size) ?? size let maybeFetched = postbox.mediaBox.cachedResourceRepresentation(thumbnailResource, representation: CachedAnimatedStickerRepresentation(thumb: true, size: size), complete: false, fetch: false, attemptSynchronously: synchronousLoad) return maybeFetched @@ -985,7 +986,7 @@ public func chatMessageStickerPackThumbnail(postbox: Postbox, representation: Te func chatWebpageSnippetPhotoData(account: Account, imageRefence: ImageMediaReference, small:Bool) -> Signal { - if let closestRepresentation = (small ? imageRefence.media.representationForDisplayAtSize(CGSize(width: 120.0, height: 120.0)) : largestImageRepresentation(imageRefence.media.representations)) { + if let closestRepresentation = (small ? imageRefence.media.representationForDisplayAtSize(PixelDimensions(120, 120)) : largestImageRepresentation(imageRefence.media.representations)) { let resourceData = account.postbox.mediaBox.resourceData(closestRepresentation.resource) |> map { next in return !next.complete ? nil : try? Data(contentsOf: URL(fileURLWithPath: next.path), options: .mappedIfSafe) } @@ -1168,7 +1169,7 @@ func chatWebpageSnippetPhoto(account: Account, imageReference: ImageMediaReferen func chatMessagePhotoStatus(account: Account, photo: TelegramMediaImage, approximateSynchronousValue: Bool = false) -> Signal { - if let largestRepresentation = photo.representationForDisplayAtSize(NSMakeSize(1280, 1280)) { + if let largestRepresentation = photo.representationForDisplayAtSize(PixelDimensions(1280, 1280)) { return account.postbox.mediaBox.resourceStatus(largestRepresentation.resource, approximateSynchronousValue: approximateSynchronousValue) } else { return .never() @@ -1176,7 +1177,7 @@ func chatMessagePhotoStatus(account: Account, photo: TelegramMediaImage, approxi } func chatMessagePhotoInteractiveFetched(account: Account, imageReference: ImageMediaReference, toRepresentationSize: NSSize = NSMakeSize(1280, 1280)) -> Signal { - if let largestRepresentation = imageReference.media.representationForDisplayAtSize(toRepresentationSize) { + if let largestRepresentation = imageReference.media.representationForDisplayAtSize(PixelDimensions(toRepresentationSize)) { return fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: imageReference.resourceReference(largestRepresentation.resource), statsCategory: .image) |> `catch` { _ in return .complete() } |> map {_ in} } else { return .never() @@ -2361,7 +2362,7 @@ func chatMessageImageFile(account: Account, fileReference: FileMediaReference, p private func chatMessagePhotoThumbnailDatas(account: Account, imageReference: ImageMediaReference, synchronousLoad: Bool = false, secureIdAccessContext: SecureIdAccessContext? = nil) -> Signal { let fullRepresentationSize: CGSize = CGSize(width: 1280.0, height: 1280.0) - if let smallestRepresentation = smallestImageRepresentation(imageReference.media.representations), let largestRepresentation = imageReference.media.representationForDisplayAtSize(fullRepresentationSize) { + if let smallestRepresentation = smallestImageRepresentation(imageReference.media.representations), let largestRepresentation = imageReference.media.representationForDisplayAtSize(PixelDimensions(fullRepresentationSize)) { let size = CGSize(width: 160.0, height: 160.0) let maybeFullSize: Signal @@ -2900,7 +2901,7 @@ func mapResourceToAvatarSizes(postbox: Postbox, resource: MediaResource, represe var result: [Int: Data] = [:] for i in 0 ..< representations.count { - if let scaledImage = generateScaledImage(image: image, size: representations[i].dimensions, scale: 1.0) { + if let scaledImage = generateScaledImage(image: image, size: representations[i].dimensions.size, scale: 1.0) { let mutableData: CFMutableData = NSMutableData() as CFMutableData if let colorDestination = CGImageDestinationCreateWithData(mutableData, kUTTypeJPEG, 1, options) { diff --git a/Telegram-Mac/MessageActionsPanelView.swift b/Telegram-Mac/MessageActionsPanelView.swift index 83ec7bb12..792313b3b 100644 --- a/Telegram-Mac/MessageActionsPanelView.swift +++ b/Telegram-Mac/MessageActionsPanelView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/MessageTimecode.swift b/Telegram-Mac/MessageTimecode.swift index c0bd76b95..88563fbfc 100644 --- a/Telegram-Mac/MessageTimecode.swift +++ b/Telegram-Mac/MessageTimecode.swift @@ -1,7 +1,8 @@ import Foundation import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/MimeTypes.swift b/Telegram-Mac/MimeTypes.swift index fb39727ec..df8f2dd84 100644 --- a/Telegram-Mac/MimeTypes.swift +++ b/Telegram-Mac/MimeTypes.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit fileprivate var mimestore:[String:String] = [:] fileprivate var extensionstore:[String:String] = [:] diff --git a/Telegram-Mac/ModalOptionSetController.swift b/Telegram-Mac/ModalOptionSetController.swift index 02202281f..abc2179df 100644 --- a/Telegram-Mac/ModalOptionSetController.swift +++ b/Telegram-Mac/ModalOptionSetController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit private final class ModalOptionsArguments { diff --git a/Telegram-Mac/ModalPreviewViews.swift b/Telegram-Mac/ModalPreviewViews.swift index c03f6e5eb..2a209960d 100644 --- a/Telegram-Mac/ModalPreviewViews.swift +++ b/Telegram-Mac/ModalPreviewViews.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class StickerPreviewModalView : View, ModalPreviewControllerView { fileprivate let imageView:TransformImageView = TransformImageView() @@ -37,7 +38,7 @@ class StickerPreviewModalView : View, ModalPreviewControllerView { func update(with reference: QuickPreviewMedia, context: AccountContext, animated: Bool) -> Void { if let reference = reference.fileReference { - let size = reference.media.dimensions?.aspectFitted(NSMakeSize(min(300, frame.size.width), min(300, frame.size.height))) ?? frame.size + let size = reference.media.dimensions?.size.aspectFitted(NSMakeSize(min(300, frame.size.width), min(300, frame.size.height))) ?? frame.size imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: size, boundingSize: size, intrinsicInsets: NSEdgeInsets())) imageView.frame = NSMakeRect(0, frame.height - size.height, size.width, size.height) if animated { @@ -97,7 +98,7 @@ class GifPreviewModalView : View, ModalPreviewControllerView { self.player.layer?.borderWidth = 0 self.player.layer?.cornerRadius = .cornerRadius addSubview(self.player) - let size = reference.media.dimensions?.aspectFitted(NSMakeSize(frame.size.width, frame.size.height - 40)) ?? frame.size + let size = reference.media.dimensions?.size.aspectFitted(NSMakeSize(frame.size.width, frame.size.height - 40)) ?? frame.size player.update(with: reference.resourceReference(reference.media.resource), size: size, viewSize: size, file: reference.media, context: context, table: nil, iconSignal: chatMessageVideo(postbox: context.account.postbox, fileReference: reference, scale: backingScaleFactor)) player.frame = NSMakeRect(0, frame.height - size.height, size.width, size.height) @@ -145,7 +146,7 @@ class ImagePreviewModalView : View, ModalPreviewControllerView { let size = frame.size - let dimensions = largestImageRepresentation(reference.media.representations)?.dimensions ?? size + let dimensions = largestImageRepresentation(reference.media.representations)?.dimensions.size ?? size let arguments = TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: dimensions.fitted(size), boundingSize: dimensions.fitted(size), intrinsicInsets: NSEdgeInsets(), resizeMode: .none) diff --git a/Telegram-Mac/NetworkUsageStatsController.swift b/Telegram-Mac/NetworkUsageStatsController.swift index 80b4a1c64..eabf53129 100644 --- a/Telegram-Mac/NetworkUsageStatsController.swift +++ b/Telegram-Mac/NetworkUsageStatsController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit diff --git a/Telegram-Mac/NewContactController.swift b/Telegram-Mac/NewContactController.swift index a491ae1e3..cf34d77ba 100644 --- a/Telegram-Mac/NewContactController.swift +++ b/Telegram-Mac/NewContactController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit private final class NewContactArguments { diff --git a/Telegram-Mac/NewPollController.swift b/Telegram-Mac/NewPollController.swift index 0752bbce4..89fdc53ac 100644 --- a/Telegram-Mac/NewPollController.swift +++ b/Telegram-Mac/NewPollController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit private let optionsLimit: Int = 10 diff --git a/Telegram-Mac/NewThemeController.swift b/Telegram-Mac/NewThemeController.swift index 0ef2b0b90..908755b81 100644 --- a/Telegram-Mac/NewThemeController.swift +++ b/Telegram-Mac/NewThemeController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/NotificationPreferencesController.swift b/Telegram-Mac/NotificationPreferencesController.swift index 449a0618d..c2dc593a1 100644 --- a/Telegram-Mac/NotificationPreferencesController.swift +++ b/Telegram-Mac/NotificationPreferencesController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class NotificationArguments { let resetAllNotifications:() -> Void diff --git a/Telegram-Mac/OpusAudioPlayer.swift b/Telegram-Mac/OpusAudioPlayer.swift index d383202a6..8ef889fad 100644 --- a/Telegram-Mac/OpusAudioPlayer.swift +++ b/Telegram-Mac/OpusAudioPlayer.swift @@ -8,7 +8,7 @@ import Cocoa import AudioUnit -import SwiftSignalKitMac +import SwiftSignalKit class OpusAudioPlayer: AudioPlayer, OpusBridgeDelegate { let bridge:OpusObjcBridge diff --git a/Telegram-Mac/PCallSession.swift b/Telegram-Mac/PCallSession.swift index 5546778a8..de74c0003 100644 --- a/Telegram-Mac/PCallSession.swift +++ b/Telegram-Mac/PCallSession.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit enum CallTone { diff --git a/Telegram-Mac/PIPVideoWindow.swift b/Telegram-Mac/PIPVideoWindow.swift index a5f01e4e6..d6dfcd924 100644 --- a/Telegram-Mac/PIPVideoWindow.swift +++ b/Telegram-Mac/PIPVideoWindow.swift @@ -9,7 +9,7 @@ import Cocoa import TGUIKit import AVKit -import SwiftSignalKitMac +import SwiftSignalKit private let pipFrameKey: String = "kPipFrameKey3" diff --git a/Telegram-Mac/PanelUtils.swift b/Telegram-Mac/PanelUtils.swift index c91e8e753..a14c9d020 100644 --- a/Telegram-Mac/PanelUtils.swift +++ b/Telegram-Mac/PanelUtils.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit import Foundation -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore let mediaExts:[String] = ["png","jpg","jpeg","tiff","mp4","mov","avi", "gif"] let photoExts:[String] = ["png","jpg","jpeg","tiff"] diff --git a/Telegram-Mac/PasscodeControllers.swift b/Telegram-Mac/PasscodeControllers.swift index a7e488ac7..572bcf1e2 100644 --- a/Telegram-Mac/PasscodeControllers.swift +++ b/Telegram-Mac/PasscodeControllers.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit enum PasscodeMode : Equatable { @@ -178,7 +179,7 @@ func PasscodeController(sharedContext: SharedAccountContext, mode: PasscodeMode) f(.fail(.fields(fields))) } else { actionsDisposable.add((sharedContext.accountManager.transaction { transaction in - transaction.setAccessChallengeData(.plaintextPassword(value: passcode, timeout: 60 * 60, attempts: nil)) + transaction.setAccessChallengeData(.plaintextPassword(value: passcode)) } |> deliverOnMainQueue).start(completed: { f(.success(.navigationBackWithPushAnimation)) })) @@ -229,7 +230,7 @@ func PasscodeController(sharedContext: SharedAccountContext, mode: PasscodeMode) f(.fail(.fields(fields))) } else { actionsDisposable.add((sharedContext.accountManager.transaction { transaction in - transaction.setAccessChallengeData(.plaintextPassword(value: passcode, timeout: nil, attempts: nil)) + transaction.setAccessChallengeData(.plaintextPassword(value: passcode)) } |> deliverOnMainQueue).start(completed: { f(.success(.navigationBackWithPushAnimation)) })) diff --git a/Telegram-Mac/PasscodeLockController.swift b/Telegram-Mac/PasscodeLockController.swift index 7800b72e0..b52797f36 100644 --- a/Telegram-Mac/PasscodeLockController.swift +++ b/Telegram-Mac/PasscodeLockController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import LocalAuthentication @@ -386,7 +387,7 @@ class PasscodeLockController: ModalViewController { switch transaction.getAccessChallengeData() { case .none: return (value, nil) - case let .plaintextPassword(passcode, _, _), let .numericalPassword(passcode, _, _): + case let .plaintextPassword(passcode), let .numericalPassword(passcode): return (value, passcode) } } diff --git a/Telegram-Mac/PasscodeSettingsViewController.swift b/Telegram-Mac/PasscodeSettingsViewController.swift index 8daf17c1b..98133b7b9 100644 --- a/Telegram-Mac/PasscodeSettingsViewController.swift +++ b/Telegram-Mac/PasscodeSettingsViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import LocalAuthentication private enum PasscodeEntry : Comparable, Identifiable { @@ -84,8 +85,8 @@ private func passcodeSettinsEntry(_ passcode: PostboxAccessChallengeData, _ addi entries.append(.turnOn(sectionId: sectionId, viewType: .singleItem)) entries.append(.turnOnDescription(sectionId: sectionId, viewType: .textBottomItem)) case let .plaintextPassword(value), let .numericalPassword(value): - entries.append(.turnOff(sectionId: sectionId, current: value.value, viewType: .firstItem)) - entries.append(.change(sectionId: sectionId, current: value.value, viewType: .lastItem)) + entries.append(.turnOff(sectionId: sectionId, current: value, viewType: .firstItem)) + entries.append(.change(sectionId: sectionId, current: value, viewType: .lastItem)) entries.append(.turnOffDescription(sectionId: sectionId, viewType: .textBottomItem)) entries.append(.section(sectionId: sectionId)) @@ -192,10 +193,10 @@ class PasscodeSettingsViewController: TableViewController { switch transaction.getAccessChallengeData() { case .none: break - case let .numericalPassword(passcode, _, attempts): - transaction.setAccessChallengeData(.numericalPassword(value: passcode, timeout: timeout, attempts: attempts)) - case let .plaintextPassword(passcode, _, attempts): - transaction.setAccessChallengeData(.plaintextPassword(value: passcode, timeout: timeout, attempts: attempts)) + case let .numericalPassword(passcode): + transaction.setAccessChallengeData(.numericalPassword(value: passcode)) + case let .plaintextPassword(passcode): + transaction.setAccessChallengeData(.plaintextPassword(value: passcode)) } return true }.start()) diff --git a/Telegram-Mac/PassportController.swift b/Telegram-Mac/PassportController.swift index fbad3b830..b1194f81b 100644 --- a/Telegram-Mac/PassportController.swift +++ b/Telegram-Mac/PassportController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/PassportDocumentRowItem.swift b/Telegram-Mac/PassportDocumentRowItem.swift index 4da5f3ab1..91b0b8771 100644 --- a/Telegram-Mac/PassportDocumentRowItem.swift +++ b/Telegram-Mac/PassportDocumentRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PassportDocumentRowItem: GeneralRowItem, InputDataRowDataValue { diff --git a/Telegram-Mac/PassportHeaderItem.swift b/Telegram-Mac/PassportHeaderItem.swift index 1524f27cf..fa3abe659 100644 --- a/Telegram-Mac/PassportHeaderItem.swift +++ b/Telegram-Mac/PassportHeaderItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore class PassportHeaderItem: TableRowItem { fileprivate let botPhoto: AvatarNodeState diff --git a/Telegram-Mac/PassportInsertPasswordItem.swift b/Telegram-Mac/PassportInsertPasswordItem.swift index 8a4404532..34210f464 100644 --- a/Telegram-Mac/PassportInsertPasswordItem.swift +++ b/Telegram-Mac/PassportInsertPasswordItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class PassportInsertPasswordField : NSSecureTextField { diff --git a/Telegram-Mac/PassportNewPhoneNumberRowItem.swift b/Telegram-Mac/PassportNewPhoneNumberRowItem.swift index e83a9ac90..bce0b5cd0 100644 --- a/Telegram-Mac/PassportNewPhoneNumberRowItem.swift +++ b/Telegram-Mac/PassportNewPhoneNumberRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit private let manager = CountryManager() diff --git a/Telegram-Mac/PassportTwoStepVerificationIntroItem.swift b/Telegram-Mac/PassportTwoStepVerificationIntroItem.swift index d34106740..76875a8aa 100644 --- a/Telegram-Mac/PassportTwoStepVerificationIntroItem.swift +++ b/Telegram-Mac/PassportTwoStepVerificationIntroItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore class PassportTwoStepVerificationIntroItem: GeneralRowItem { diff --git a/Telegram-Mac/PassportWindowController.swift b/Telegram-Mac/PassportWindowController.swift index ea62627fa..2d1a3a732 100644 --- a/Telegram-Mac/PassportWindowController.swift +++ b/Telegram-Mac/PassportWindowController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class PassportWindowArguments { let back:()->Void diff --git a/Telegram-Mac/PeerChannelMemberCategoriesContextsManager.swift b/Telegram-Mac/PeerChannelMemberCategoriesContextsManager.swift index 95865c01b..6d78eb3fd 100644 --- a/Telegram-Mac/PeerChannelMemberCategoriesContextsManager.swift +++ b/Telegram-Mac/PeerChannelMemberCategoriesContextsManager.swift @@ -7,9 +7,10 @@ // import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit enum PeerChannelMemberContextKey: Equatable, Hashable { case recent @@ -28,7 +29,7 @@ private final class PeerChannelMembersOnlineContext { let subscribers = Bag<(Int32) -> Void>() let disposable: Disposable var value: Int32? - var emptyTimer: SwiftSignalKitMac.Timer? + var emptyTimer: SwiftSignalKit.Timer? init(disposable: Disposable) { self.disposable = disposable @@ -109,7 +110,7 @@ private final class PeerChannelMemberCategoriesContextsManagerImpl { current.subscribers.remove(index) if current.subscribers.isEmpty { if current.emptyTimer == nil { - let timer = SwiftSignalKitMac.Timer(timeout: 60.0, repeat: false, completion: { [weak context] in + let timer = SwiftSignalKit.Timer(timeout: 60.0, repeat: false, completion: { [weak context] in if let current = strongSelf.onlineContexts[peerId], let context = context, current === context { if current.subscribers.isEmpty { strongSelf.onlineContexts.removeValue(forKey: peerId) diff --git a/Telegram-Mac/PeerInfoController.swift b/Telegram-Mac/PeerInfoController.swift index ba0822258..e8dcf6a78 100644 --- a/Telegram-Mac/PeerInfoController.swift +++ b/Telegram-Mac/PeerInfoController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class PeerInfoTitleBarView : TitledBarView { private var search:ImageButton = ImageButton() diff --git a/Telegram-Mac/PeerInfoEntries.swift b/Telegram-Mac/PeerInfoEntries.swift index 178a136b6..d432c869c 100644 --- a/Telegram-Mac/PeerInfoEntries.swift +++ b/Telegram-Mac/PeerInfoEntries.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit diff --git a/Telegram-Mac/PeerInfoHeaderItem.swift b/Telegram-Mac/PeerInfoHeaderItem.swift index dff039397..d29c5371c 100644 --- a/Telegram-Mac/PeerInfoHeaderItem.swift +++ b/Telegram-Mac/PeerInfoHeaderItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PeerInfoHeaderItem: GeneralRowItem { fileprivate var firstTextEdited:String? diff --git a/Telegram-Mac/PeerInfoHeaderView.swift b/Telegram-Mac/PeerInfoHeaderView.swift index 3835d7e5f..f6e188865 100644 --- a/Telegram-Mac/PeerInfoHeaderView.swift +++ b/Telegram-Mac/PeerInfoHeaderView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/PeerInfoUtils.swift b/Telegram-Mac/PeerInfoUtils.swift index 01c4aa5fb..1087ce3f2 100644 --- a/Telegram-Mac/PeerInfoUtils.swift +++ b/Telegram-Mac/PeerInfoUtils.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox struct GroupAccess { let highlightAdmins:Bool diff --git a/Telegram-Mac/PeerMediaCollectionInterfaceState.swift b/Telegram-Mac/PeerMediaCollectionInterfaceState.swift index 754a1b709..10a7c0c4a 100644 --- a/Telegram-Mac/PeerMediaCollectionInterfaceState.swift +++ b/Telegram-Mac/PeerMediaCollectionInterfaceState.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit final class PeerMediaCollectionInteraction : InterfaceObserver { diff --git a/Telegram-Mac/PeerMediaController.swift b/Telegram-Mac/PeerMediaController.swift index eff500966..a9de74c3f 100644 --- a/Telegram-Mac/PeerMediaController.swift +++ b/Telegram-Mac/PeerMediaController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox diff --git a/Telegram-Mac/PeerMediaDateItem.swift b/Telegram-Mac/PeerMediaDateItem.swift index 190aad65e..29162e0c3 100644 --- a/Telegram-Mac/PeerMediaDateItem.swift +++ b/Telegram-Mac/PeerMediaDateItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class PeerMediaDateItem: TableStickItem { diff --git a/Telegram-Mac/PeerMediaEmptyRowItem.swift b/Telegram-Mac/PeerMediaEmptyRowItem.swift index 22d2a28cf..95917bf26 100644 --- a/Telegram-Mac/PeerMediaEmptyRowItem.swift +++ b/Telegram-Mac/PeerMediaEmptyRowItem.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import PostboxMac +import Postbox diff --git a/Telegram-Mac/PeerMediaFileRowContent.swift b/Telegram-Mac/PeerMediaFileRowContent.swift index 53234aa4f..5e9c77cb4 100644 --- a/Telegram-Mac/PeerMediaFileRowContent.swift +++ b/Telegram-Mac/PeerMediaFileRowContent.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit @@ -54,7 +55,7 @@ class PeerMediaFileRowItem: PeerMediaRowItem { let iconImageRepresentation:TelegramMediaImageRepresentation? = smallestImageRepresentation(file.previewRepresentations) if let iconImageRepresentation = iconImageRepresentation { - iconArguments = TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: iconImageRepresentation.dimensions.aspectFilled(PeerMediaIconSize), boundingSize: PeerMediaIconSize, intrinsicInsets: NSEdgeInsets()) + iconArguments = TransformImageArguments(corners: ImageCorners(radius: .cornerRadius), imageSize: iconImageRepresentation.dimensions.size.aspectFilled(PeerMediaIconSize), boundingSize: PeerMediaIconSize, intrinsicInsets: NSEdgeInsets()) icon = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [iconImageRepresentation], immediateThumbnailData: nil, reference: nil, partialReference: nil) } else { let fileName: String = file.fileName ?? "" diff --git a/Telegram-Mac/PeerMediaGridController.swift b/Telegram-Mac/PeerMediaGridController.swift index 38fa6227f..fe715cf3f 100644 --- a/Telegram-Mac/PeerMediaGridController.swift +++ b/Telegram-Mac/PeerMediaGridController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit public enum ChatHistoryNodeHistoryState: Equatable { diff --git a/Telegram-Mac/PeerMediaListController.swift b/Telegram-Mac/PeerMediaListController.swift index e46357c3d..9cd5b601f 100644 --- a/Telegram-Mac/PeerMediaListController.swift +++ b/Telegram-Mac/PeerMediaListController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit enum PeerMediaSharedEntryStableId : Hashable { case messageId(MessageId) diff --git a/Telegram-Mac/PeerMediaMusicRowContent.swift b/Telegram-Mac/PeerMediaMusicRowContent.swift index 4f3ab3213..aea02860c 100644 --- a/Telegram-Mac/PeerMediaMusicRowContent.swift +++ b/Telegram-Mac/PeerMediaMusicRowContent.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PeerMediaMusicRowItem: PeerMediaRowItem { fileprivate let textLayout:TextViewLayout @@ -210,7 +211,7 @@ class PeerMediaMusicRowView : PeerMediaRowView, APDelegate { thumbView.layer?.contents = theme.icons.playerMusicPlaceholder thumbView.layer?.cornerRadius = .cornerRadius - let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PeerMediaIconSize, resource: item.thumbResource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + let image = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(PeerMediaIconSize), resource: item.thumbResource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) thumbView.setSignal(chatMessagePhotoThumbnail(account: item.interface.context.account, imageReference: ImageMediaReference.message(message: MessageReference(item.message), media: image))) diff --git a/Telegram-Mac/PeerMediaPhotosController.swift b/Telegram-Mac/PeerMediaPhotosController.swift index 5fdd8a975..8b30cc716 100644 --- a/Telegram-Mac/PeerMediaPhotosController.swift +++ b/Telegram-Mac/PeerMediaPhotosController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit extension Message : Equatable { public static func ==(lhs: Message, rhs: Message) -> Bool { return isEqualMessages(lhs, rhs) diff --git a/Telegram-Mac/PeerMediaRowContent.swift b/Telegram-Mac/PeerMediaRowContent.swift index 658c87d4f..44c0c0d33 100644 --- a/Telegram-Mac/PeerMediaRowContent.swift +++ b/Telegram-Mac/PeerMediaRowContent.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit let PeerMediaIconSize:NSSize = NSMakeSize(40, 40) diff --git a/Telegram-Mac/PeerMediaTouchBar.swift b/Telegram-Mac/PeerMediaTouchBar.swift index 38df84307..fee4521c4 100644 --- a/Telegram-Mac/PeerMediaTouchBar.swift +++ b/Telegram-Mac/PeerMediaTouchBar.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit @available(OSX 10.12.2, *) private func peerMediaTouchBarItems(presentation: ChatPresentationInterfaceState) -> [NSTouchBarItem.Identifier] { diff --git a/Telegram-Mac/PeerMediaVoiceRowItem.swift b/Telegram-Mac/PeerMediaVoiceRowItem.swift index 00f4cbed2..26a8de780 100644 --- a/Telegram-Mac/PeerMediaVoiceRowItem.swift +++ b/Telegram-Mac/PeerMediaVoiceRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PeerMediaVoiceRowItem: PeerMediaRowItem { diff --git a/Telegram-Mac/PeerMediaWebpageRowContent.swift b/Telegram-Mac/PeerMediaWebpageRowContent.swift index 49cb2ceb5..46f1b091f 100644 --- a/Telegram-Mac/PeerMediaWebpageRowContent.swift +++ b/Telegram-Mac/PeerMediaWebpageRowContent.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PeerMediaWebpageRowItem: PeerMediaRowItem { @@ -77,7 +78,7 @@ class PeerMediaWebpageRowItem: PeerMediaRowItem { icon = TelegramMediaImage(imageId: MediaId(namespace: 0, id: 0), representations: [iconImageRepresentation], immediateThumbnailData: nil, reference: nil, partialReference: nil) let imageCorners = ImageCorners(radius: .cornerRadius) - iconArguments = TransformImageArguments(corners: imageCorners, imageSize: iconImageRepresentation.dimensions.aspectFilled(PeerMediaIconSize), boundingSize: PeerMediaIconSize, intrinsicInsets: NSEdgeInsets()) + iconArguments = TransformImageArguments(corners: imageCorners, imageSize: iconImageRepresentation.dimensions.size.aspectFilled(PeerMediaIconSize), boundingSize: PeerMediaIconSize, intrinsicInsets: NSEdgeInsets()) } diff --git a/Telegram-Mac/PeerPhotosMonthItem.swift b/Telegram-Mac/PeerPhotosMonthItem.swift index 1c82f3a5d..28cd9051e 100644 --- a/Telegram-Mac/PeerPhotosMonthItem.swift +++ b/Telegram-Mac/PeerPhotosMonthItem.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit private struct LayoutItem : Equatable { static func == (lhs: LayoutItem, rhs: LayoutItem) -> Bool { @@ -185,7 +186,7 @@ private class MediaCell : Control { let arguments: TransformImageArguments let cacheArguments: TransformImageArguments let signal: Signal - if let image = layout.message.media.first as? TelegramMediaImage, let largestSize = largestImageRepresentation(image.representations)?.dimensions { + if let image = layout.message.media.first as? TelegramMediaImage, let largestSize = largestImageRepresentation(image.representations)?.dimensions.size { media = image imageSize = largestSize.aspectFilled(NSMakeSize(150, 150)) arguments = TransformImageArguments(corners: layout.corners, imageSize: imageSize, boundingSize: layout.frame.size, intrinsicInsets: NSEdgeInsets()) @@ -193,7 +194,7 @@ private class MediaCell : Control { signal = mediaGridMessagePhoto(account: context.account, imageReference: ImageMediaReference.message(message: MessageReference(layout.message), media: image), scale: backingScaleFactor) } else if let file = layout.message.media.first as? TelegramMediaFile { media = file - let largestSize = file.previewRepresentations.last?.dimensions ?? file.imageSize + let largestSize = file.previewRepresentations.last?.dimensions.size ?? file.imageSize imageSize = largestSize.aspectFilled(NSMakeSize(150, 150)) arguments = TransformImageArguments(corners: layout.corners, imageSize: imageSize, boundingSize: layout.frame.size, intrinsicInsets: NSEdgeInsets()) cacheArguments = TransformImageArguments(corners: layout.corners, imageSize: imageSize, boundingSize: NSMakeSize(150, 150), intrinsicInsets: NSEdgeInsets()) diff --git a/Telegram-Mac/PeerPresenceStatusManager.swift b/Telegram-Mac/PeerPresenceStatusManager.swift index ac80ce1ea..8c6cc5d59 100644 --- a/Telegram-Mac/PeerPresenceStatusManager.swift +++ b/Telegram-Mac/PeerPresenceStatusManager.swift @@ -8,12 +8,13 @@ import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore final class PeerPresenceStatusManager { private let update: () -> Void - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? init(update: @escaping () -> Void) { self.update = update @@ -30,7 +31,7 @@ final class PeerPresenceStatusManager { let timestamp = CFAbsoluteTimeGetCurrent() + NSTimeIntervalSince1970 let timeout = userPresenceStringRefreshTimeout(presence, timeDifference: timeDifference, relativeTo: Int32(timestamp)) if timeout.isFinite { - self.timer = SwiftSignalKitMac.Timer(timeout: timeout, repeat: false, completion: { [weak self] in + self.timer = SwiftSignalKit.Timer(timeout: timeout, repeat: false, completion: { [weak self] in if let strongSelf = self { strongSelf.update() } diff --git a/Telegram-Mac/PeerUtils.swift b/Telegram-Mac/PeerUtils.swift index 732a5d392..88f73b659 100644 --- a/Telegram-Mac/PeerUtils.swift +++ b/Telegram-Mac/PeerUtils.swift @@ -7,8 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox +import SyncCore extension Peer { @@ -87,7 +89,21 @@ extension Peer { public var displayTitle: String { switch self { case let user as TelegramUser: - return user.name.isEmpty ? tr(L10n.peerDeletedUser) : user.name + if user.firstName == nil && user.lastName == nil { + return L10n.peerDeletedUser + } else { + var name: String = "" + if let firstName = user.firstName { + name += firstName + } + if let lastName = user.lastName { + if user.firstName != nil { + name += " " + } + name += lastName + } + return name + } case let group as TelegramGroup: return group.title case let channel as TelegramChannel: diff --git a/Telegram-Mac/PeersListController.swift b/Telegram-Mac/PeersListController.swift index 4abf1dfc5..6250f7685 100644 --- a/Telegram-Mac/PeersListController.swift +++ b/Telegram-Mac/PeersListController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac - +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit +import SyncCore /* diff --git a/Telegram-Mac/PhoneCallWindowController.swift b/Telegram-Mac/PhoneCallWindowController.swift index 3936872f9..bb562e868 100644 --- a/Telegram-Mac/PhoneCallWindowController.swift +++ b/Telegram-Mac/PhoneCallWindowController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit + private class ShadowView : View { @@ -539,7 +540,7 @@ class PhoneCallWindowController { let media = TelegramMediaImage(imageId: MediaId(namespace: 0, id: user.id.toInt64()), representations: user.profileImageRepresentations, immediateThumbnailData: nil, reference: nil, partialReference: nil) - if let dimension = user.profileImageRepresentations.last?.dimensions { + if let dimension = user.profileImageRepresentations.last?.dimensions.size { let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: dimension, boundingSize: view.imageView.frame.size, intrinsicInsets: NSEdgeInsets()) view.imageView.setSignal(signal: cachedMedia(media: media, arguments: arguments, scale: view.backingScaleFactor), clearInstantly: true) view.imageView.setSignal(chatMessagePhoto(account: session.account, imageReference: ImageMediaReference.standalone(media: media), scale: view.backingScaleFactor), clearInstantly: false, animate: true, cacheImage: { result in diff --git a/Telegram-Mac/PhoneNumberConfirmController.swift b/Telegram-Mac/PhoneNumberConfirmController.swift index 9ab55745b..8ba9e8dcb 100644 --- a/Telegram-Mac/PhoneNumberConfirmController.swift +++ b/Telegram-Mac/PhoneNumberConfirmController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit + private let manager = CountryManager() diff --git a/Telegram-Mac/PhoneNumberInputCodeController.swift b/Telegram-Mac/PhoneNumberInputCodeController.swift index 13b133ee6..a5ed4b12c 100644 --- a/Telegram-Mac/PhoneNumberInputCodeController.swift +++ b/Telegram-Mac/PhoneNumberInputCodeController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class ConfirmCodeArguments { diff --git a/Telegram-Mac/PhoneNumberIntroController.swift b/Telegram-Mac/PhoneNumberIntroController.swift index 5c118a416..d71b50540 100644 --- a/Telegram-Mac/PhoneNumberIntroController.swift +++ b/Telegram-Mac/PhoneNumberIntroController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit class ChaneNumberIntroView : NSScrollView, AppearanceViewProtocol { let imageView:ImageView = ImageView() diff --git a/Telegram-Mac/PhoneNumberUtils.swift b/Telegram-Mac/PhoneNumberUtils.swift new file mode 100644 index 000000000..50edc47a4 --- /dev/null +++ b/Telegram-Mac/PhoneNumberUtils.swift @@ -0,0 +1,49 @@ +// +// PhoneNumberUtils.swift +// Telegram +// +// Created by Mikhail Filimonov on 01.11.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +import Cocoa +import libphonenumber + +private let phoneNumberUtil = NBPhoneNumberUtil() +func formatPhoneNumber(_ string: String) -> String { + do { + let number = try phoneNumberUtil.parse("+" + string, defaultRegion: nil) + return try phoneNumberUtil.format(number, numberFormat: .INTERNATIONAL) + } catch _ { + return string + } +} + +func isViablePhoneNumber(_ string: String) -> Bool { + return phoneNumberUtil.isViablePhoneNumber(string) +} + +class ParsedPhoneNumber: Equatable { + let rawPhoneNumber: NBPhoneNumber? + + init?(string: String) { + if let number = try? phoneNumberUtil.parse(string, defaultRegion: NB_UNKNOWN_REGION) { + self.rawPhoneNumber = number + } else { + return nil + } + } + + static func == (lhs: ParsedPhoneNumber, rhs: ParsedPhoneNumber) -> Bool { + var error: NSError? + let result = phoneNumberUtil.isNumberMatch(lhs.rawPhoneNumber, second: rhs.rawPhoneNumber, error: &error) + if error != nil { + return false + } + if result != .NO_MATCH && result != .NOT_A_NUMBER { + return true + } else { + return false + } + } +} diff --git a/Telegram-Mac/PhotoCache.swift b/Telegram-Mac/PhotoCache.swift index 291d10a97..3563c9529 100644 --- a/Telegram-Mac/PhotoCache.swift +++ b/Telegram-Mac/PhotoCache.swift @@ -7,10 +7,12 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit +import SyncCore enum ThemeSource : Equatable { case local(ColorPalette) diff --git a/Telegram-Mac/PlayerListController.swift b/Telegram-Mac/PlayerListController.swift index fca9fbaae..958b5338a 100644 --- a/Telegram-Mac/PlayerListController.swift +++ b/Telegram-Mac/PlayerListController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class PlayerListArguments { let chatInteraction: ChatInteraction diff --git a/Telegram-Mac/PopularPeersRowItem.swift b/Telegram-Mac/PopularPeersRowItem.swift index 00f4e0876..99cda40fc 100644 --- a/Telegram-Mac/PopularPeersRowItem.swift +++ b/Telegram-Mac/PopularPeersRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore enum PopularItemType : Hashable { diff --git a/Telegram-Mac/PreHistoryControllerStructures.swift b/Telegram-Mac/PreHistoryControllerStructures.swift index d18255580..e416e39bc 100644 --- a/Telegram-Mac/PreHistoryControllerStructures.swift +++ b/Telegram-Mac/PreHistoryControllerStructures.swift @@ -8,4 +8,5 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/PreHistorySettingsController.swift b/Telegram-Mac/PreHistorySettingsController.swift index f90a5a1d0..9a270930c 100644 --- a/Telegram-Mac/PreHistorySettingsController.swift +++ b/Telegram-Mac/PreHistorySettingsController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/Telegram-Mac/PreUploadManager.swift b/Telegram-Mac/PreUploadManager.swift index 71c902d68..a9e35a169 100644 --- a/Telegram-Mac/PreUploadManager.swift +++ b/Telegram-Mac/PreUploadManager.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class PreUploadManager { let path: String diff --git a/Telegram-Mac/PreparedChatHistoryViewTransition.swift b/Telegram-Mac/PreparedChatHistoryViewTransition.swift index e196e7ec2..4946b62db 100644 --- a/Telegram-Mac/PreparedChatHistoryViewTransition.swift +++ b/Telegram-Mac/PreparedChatHistoryViewTransition.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore struct ChatHistoryViewTransition { let historyView: ChatHistoryView diff --git a/Telegram-Mac/PresenceStrings.swift b/Telegram-Mac/PresenceStrings.swift index 9232a2e93..0980e2a98 100644 --- a/Telegram-Mac/PresenceStrings.swift +++ b/Telegram-Mac/PresenceStrings.swift @@ -7,8 +7,9 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore import TGUIKit func stringForTimestamp(day: Int32, month: Int32, year: Int32) -> String { return String(format: "%d.%02d.%02d", day, month, year - 100) diff --git a/Telegram-Mac/PrettyGridUtils.swift b/Telegram-Mac/PrettyGridUtils.swift index b80b278ed..5c962daf9 100644 --- a/Telegram-Mac/PrettyGridUtils.swift +++ b/Telegram-Mac/PrettyGridUtils.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit @@ -275,7 +276,7 @@ func makeMediaEnties(_ results:[ChatContextResult], isSavedGifs: Bool, initialSi case kBotInlineTypePhoto: if let image = data.image, let representation = image.representations.last { - dimension = representation.dimensions + dimension = representation.dimensions.size entries.append(.photo(image: image)) } else { removeResultIndexes.append(i) diff --git a/Telegram-Mac/PreviewSenderController.swift b/Telegram-Mac/PreviewSenderController.swift index a50948632..fffa5cd88 100644 --- a/Telegram-Mac/PreviewSenderController.swift +++ b/Telegram-Mac/PreviewSenderController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private enum SecretMediaTtl { case off diff --git a/Telegram-Mac/PrivacyAndSecurityViewController.swift b/Telegram-Mac/PrivacyAndSecurityViewController.swift index d52ad2435..becbc6269 100644 --- a/Telegram-Mac/PrivacyAndSecurityViewController.swift +++ b/Telegram-Mac/PrivacyAndSecurityViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private final class PrivacyAndSecurityControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/ProxyListController.swift b/Telegram-Mac/ProxyListController.swift index ea77af4e9..f6fde2599 100644 --- a/Telegram-Mac/ProxyListController.swift +++ b/Telegram-Mac/ProxyListController.swift @@ -7,11 +7,12 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit -import MtProtoKitMac +import MtProtoKit private let _p_id_enable: InputDataIdentifier = InputDataIdentifier("_p_id_enable") private let _p_id_add: InputDataIdentifier = InputDataIdentifier("_p_id_add") diff --git a/Telegram-Mac/ProxyListRowItem.swift b/Telegram-Mac/ProxyListRowItem.swift index 60b1c17ee..ac3f884c3 100644 --- a/Telegram-Mac/ProxyListRowItem.swift +++ b/Telegram-Mac/ProxyListRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class ProxyListRowItem: GeneralRowItem { fileprivate let headerLayout: TextViewLayout diff --git a/Telegram-Mac/ProxyQRCodeRowItem.swift b/Telegram-Mac/ProxyQRCodeRowItem.swift index 65cb56545..bd433dd64 100644 --- a/Telegram-Mac/ProxyQRCodeRowItem.swift +++ b/Telegram-Mac/ProxyQRCodeRowItem.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class ProxyQRCodeRowItem: GeneralRowItem { diff --git a/Telegram-Mac/QRCode.swift b/Telegram-Mac/QRCode.swift index 1957555c1..e7b6505e4 100644 --- a/Telegram-Mac/QRCode.swift +++ b/Telegram-Mac/QRCode.swift @@ -9,7 +9,7 @@ import Cocoa import Foundation import CoreImage -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/QuickLookPreview.swift b/Telegram-Mac/QuickLookPreview.swift index 1281bd652..f83cb63ce 100644 --- a/Telegram-Mac/QuickLookPreview.swift +++ b/Telegram-Mac/QuickLookPreview.swift @@ -7,13 +7,14 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox import TGUIKit import Quartz import Foundation - +import SyncCore private class QuickLookPreviewItem : NSObject, QLPreviewItem { let media:Media diff --git a/Telegram-Mac/QuickSwitcherModalController.swift b/Telegram-Mac/QuickSwitcherModalController.swift index a25e4c54f..4d07bea1e 100644 --- a/Telegram-Mac/QuickSwitcherModalController.swift +++ b/Telegram-Mac/QuickSwitcherModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private class QuickSwitcherArguments { let context: AccountContext diff --git a/Telegram-Mac/ReadArticlesListPreferences.swift b/Telegram-Mac/ReadArticlesListPreferences.swift index a7a7ccfa1..ba0788c2a 100644 --- a/Telegram-Mac/ReadArticlesListPreferences.swift +++ b/Telegram-Mac/ReadArticlesListPreferences.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore final class ReadArticle : PreferencesEntry, Equatable { static func == (lhs: ReadArticle, rhs: ReadArticle) -> Bool { diff --git a/Telegram-Mac/RecentCallsViewController.swift b/Telegram-Mac/RecentCallsViewController.swift index 4470df926..7a36a4138 100644 --- a/Telegram-Mac/RecentCallsViewController.swift +++ b/Telegram-Mac/RecentCallsViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class RecentCallsArguments { let call:(PeerId)->Void diff --git a/Telegram-Mac/RecentGIFRowItem.swift b/Telegram-Mac/RecentGIFRowItem.swift index b27c5a19d..432b4f897 100644 --- a/Telegram-Mac/RecentGIFRowItem.swift +++ b/Telegram-Mac/RecentGIFRowItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox diff --git a/Telegram-Mac/RecentPeerRowItem.swift b/Telegram-Mac/RecentPeerRowItem.swift index 9eaff9ab9..17e47378e 100644 --- a/Telegram-Mac/RecentPeerRowItem.swift +++ b/Telegram-Mac/RecentPeerRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore class RecentPeerRowItem: ShortPeerRowItem { diff --git a/Telegram-Mac/RecentSessionRowItem.swift b/Telegram-Mac/RecentSessionRowItem.swift index 42db33b1e..e75ad0b2b 100644 --- a/Telegram-Mac/RecentSessionRowItem.swift +++ b/Telegram-Mac/RecentSessionRowItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class RecentSessionRowItem: GeneralRowItem { let session:RecentAccountSession diff --git a/Telegram-Mac/RecentSessionsController.swift b/Telegram-Mac/RecentSessionsController.swift index ffadf93dd..946b31920 100644 --- a/Telegram-Mac/RecentSessionsController.swift +++ b/Telegram-Mac/RecentSessionsController.swift @@ -10,9 +10,10 @@ import Cocoa import Foundation import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private final class RecentSessionsControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/RecentUsedEmoji.swift b/Telegram-Mac/RecentUsedEmoji.swift index cf2ea96a3..fa6eb9657 100644 --- a/Telegram-Mac/RecentUsedEmoji.swift +++ b/Telegram-Mac/RecentUsedEmoji.swift @@ -7,8 +7,8 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit struct EmojiSkinModifier : PostboxCoding, Equatable { let emoji: String diff --git a/Telegram-Mac/RenderedTotalUnreadCount.swift b/Telegram-Mac/RenderedTotalUnreadCount.swift index d20a1fbcd..56b45c998 100644 --- a/Telegram-Mac/RenderedTotalUnreadCount.swift +++ b/Telegram-Mac/RenderedTotalUnreadCount.swift @@ -1,6 +1,6 @@ import Foundation -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit enum RenderedTotalUnreadCountType { case raw diff --git a/Telegram-Mac/ReplyMarkupNode.swift b/Telegram-Mac/ReplyMarkupNode.swift index 7d9ca7426..5e229eb7c 100644 --- a/Telegram-Mac/ReplyMarkupNode.swift +++ b/Telegram-Mac/ReplyMarkupNode.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit class ReplyMarkupButtonLayout { diff --git a/Telegram-Mac/ReplyModel.swift b/Telegram-Mac/ReplyModel.swift index 086155691..95b74f561 100644 --- a/Telegram-Mac/ReplyModel.swift +++ b/Telegram-Mac/ReplyModel.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox class ReplyModel: ChatAccessoryModel { private let account:Account @@ -81,14 +82,14 @@ class ReplyModel: ChatAccessoryModel { for media in message.media { if let image = media as? TelegramMediaImage { if let representation = largestRepresentationForPhoto(image) { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } break } else if let file = media as? TelegramMediaFile, (file.isVideo || file.isSticker) { if let dimensions = file.dimensions { - imageDimensions = dimensions + imageDimensions = dimensions.size } else if let representation = largestImageRepresentation(file.previewRepresentations), !file.isStaticSticker { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } else if file.isAnimatedSticker { imageDimensions = NSMakeSize(30, 30) } @@ -125,16 +126,16 @@ class ReplyModel: ChatAccessoryModel { if let image = media as? TelegramMediaImage { updatedMedia = image if let representation = largestRepresentationForPhoto(image) { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } break } else if let file = media as? TelegramMediaFile, (file.isVideo || file.isSticker) { updatedMedia = file - if let dimensions = file.dimensions { + if let dimensions = file.dimensions?.size { imageDimensions = dimensions } else if let representation = largestImageRepresentation(file.previewRepresentations) { - imageDimensions = representation.dimensions + imageDimensions = representation.dimensions.size } else if file.isAnimatedSticker { imageDimensions = NSMakeSize(30, 30) } diff --git a/Telegram-Mac/ReportReasonModalController.swift b/Telegram-Mac/ReportReasonModalController.swift index f7add22d5..bd888c3e5 100644 --- a/Telegram-Mac/ReportReasonModalController.swift +++ b/Telegram-Mac/ReportReasonModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore func reportReasonSelector(context: AccountContext) -> Signal { diff --git a/Telegram-Mac/RestictedModalViewController.swift b/Telegram-Mac/RestictedModalViewController.swift index e102fa7be..62a905798 100644 --- a/Telegram-Mac/RestictedModalViewController.swift +++ b/Telegram-Mac/RestictedModalViewController.swift @@ -9,9 +9,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class RestrictedControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/SVideoController.swift b/Telegram-Mac/SVideoController.swift index c411bdeb2..c1be760b4 100644 --- a/Telegram-Mac/SVideoController.swift +++ b/Telegram-Mac/SVideoController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import IOKit.pwr_mgt extension MediaPlayerStatus { diff --git a/Telegram-Mac/SVideoView.swift b/Telegram-Mac/SVideoView.swift index 764034e80..03e39adc0 100644 --- a/Telegram-Mac/SVideoView.swift +++ b/Telegram-Mac/SVideoView.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum SVideoControlsStyle : Equatable { case regular(pip: Bool, fullScreen: Bool, hideRewind: Bool) diff --git a/Telegram-Mac/SearchController.swift b/Telegram-Mac/SearchController.swift index 674c7bc6c..3fa7143f5 100644 --- a/Telegram-Mac/SearchController.swift +++ b/Telegram-Mac/SearchController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore enum UnreadSearchBadge : Equatable { diff --git a/Telegram-Mac/SearchPeerMembers.swift b/Telegram-Mac/SearchPeerMembers.swift index a4e21a88b..7954570ad 100644 --- a/Telegram-Mac/SearchPeerMembers.swift +++ b/Telegram-Mac/SearchPeerMembers.swift @@ -9,9 +9,10 @@ import Cocoa import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit func searchPeerMembers(context: AccountContext, peerId: PeerId, query: String) -> Signal<[Peer], NoError> { if peerId.namespace == Namespaces.Peer.CloudChannel { diff --git a/Telegram-Mac/SearchResultModalController.swift b/Telegram-Mac/SearchResultModalController.swift index feb1de083..c75162549 100644 --- a/Telegram-Mac/SearchResultModalController.swift +++ b/Telegram-Mac/SearchResultModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit fileprivate enum SearchResultEntry : Comparable, Identifiable { case message(Message) diff --git a/Telegram-Mac/SecretChatKeyViewController.swift b/Telegram-Mac/SecretChatKeyViewController.swift index 30d96f8ec..38aa51ec0 100644 --- a/Telegram-Mac/SecretChatKeyViewController.swift +++ b/Telegram-Mac/SecretChatKeyViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class SecretChatKeyView : View { let imageView:ImageView = ImageView() diff --git a/Telegram-Mac/SecureIdVerificationDocument.swift b/Telegram-Mac/SecureIdVerificationDocument.swift index 3594f47c2..7cbbbd9a2 100644 --- a/Telegram-Mac/SecureIdVerificationDocument.swift +++ b/Telegram-Mac/SecureIdVerificationDocument.swift @@ -1,5 +1,6 @@ import Foundation -import TelegramCoreMac +import TelegramCore +import SyncCore enum SecureIdVerificationLocalDocumentState { case uploading(Float) diff --git a/Telegram-Mac/SecureIdVerificationDocumentsContext.swift b/Telegram-Mac/SecureIdVerificationDocumentsContext.swift index 1d92c3eb3..71a65d7a9 100644 --- a/Telegram-Mac/SecureIdVerificationDocumentsContext.swift +++ b/Telegram-Mac/SecureIdVerificationDocumentsContext.swift @@ -1,7 +1,8 @@ import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class DocumentContext { private let disposable: Disposable diff --git a/Telegram-Mac/SelectPeersController.swift b/Telegram-Mac/SelectPeersController.swift index 281ccb0f2..7fecaa9f6 100644 --- a/Telegram-Mac/SelectPeersController.swift +++ b/Telegram-Mac/SelectPeersController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit enum SelectPeerEntryStableId : Hashable { case search diff --git a/Telegram-Mac/SelectivePrivacySettingsController.swift b/Telegram-Mac/SelectivePrivacySettingsController.swift index b1395cb69..dc6612358 100644 --- a/Telegram-Mac/SelectivePrivacySettingsController.swift +++ b/Telegram-Mac/SelectivePrivacySettingsController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox enum SelectivePrivacySettingsKind { case presence diff --git a/Telegram-Mac/SelectivePrivacySettingsPeersController.swift b/Telegram-Mac/SelectivePrivacySettingsPeersController.swift index 53351fbd3..1ecf97afd 100644 --- a/Telegram-Mac/SelectivePrivacySettingsPeersController.swift +++ b/Telegram-Mac/SelectivePrivacySettingsPeersController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox private final class SelectivePrivacyPeersControllerArguments { diff --git a/Telegram-Mac/SenderController.swift b/Telegram-Mac/SenderController.swift index 22fb7bac2..932072aea 100644 --- a/Telegram-Mac/SenderController.swift +++ b/Telegram-Mac/SenderController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import AVFoundation import QuickLook @@ -114,7 +115,7 @@ class Sender: NSObject { if CGImageDestinationFinalize(colorDestination) { let resource = LocalFileMediaResource(fileId: arc4random64()) account.postbox.mediaBox.storeResourceData(resource.id, data: mutableData as Data) - preview.append(TelegramMediaImageRepresentation(dimensions: image.size, resource: resource)) + preview.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(image.size), resource: resource)) } } @@ -146,7 +147,7 @@ class Sender: NSObject { if CGImageDestinationFinalize(colorDestination) { let resource = LocalFileMediaResource(fileId: arc4random64()) account.postbox.mediaBox.storeResourceData(resource.id, data: mutableData as Data) - preview.append(TelegramMediaImageRepresentation(dimensions: image.size, resource: resource)) + preview.append(TelegramMediaImageRepresentation(dimensions: image.size.pixel, resource: resource)) } } } @@ -250,7 +251,7 @@ class Sender: NSObject { } - attrs.append(TelegramMediaFileAttribute.Video(duration: Int(container.duration), size: container.size, flags: [.instantRoundVideo])) + attrs.append(TelegramMediaFileAttribute.Video(duration: Int(container.duration), size: PixelDimensions(container.size), flags: [.instantRoundVideo])) media = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: randomId), partialReference: nil, resource: resource, previewRepresentations: previewForFile(path, account: account), immediateThumbnailData: nil, mimeType: mimeType, size: nil, attributes: attrs) } else if mimeType.hasPrefix("image/") && !mimeType.hasSuffix("gif"), let imageData = try? Data(contentsOf: URL(fileURLWithPath: path)) { @@ -283,7 +284,7 @@ class Sender: NSObject { let scaledSize = size.fitted(CGSize(width: 1280.0, height: 1280.0)) let resource = LocalFileReferenceMediaResource(localFilePath:path,randomId:randomId, isUniquelyReferencedTemporaryFile: true) - media = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.LocalImage, id: randomId), representations: [TelegramMediaImageRepresentation(dimensions: scaledSize, resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) + media = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.LocalImage, id: randomId), representations: [TelegramMediaImageRepresentation(dimensions: PixelDimensions(scaledSize), resource: resource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) } } else { @@ -346,7 +347,7 @@ class Sender: NSObject { let video = asset.tracks(withMediaType: AVMediaType.video).first let audio = asset.tracks(withMediaType: AVMediaType.audio).first if let video = video { - attrs.append(TelegramMediaFileAttribute.Video(duration: Int(CMTimeGetSeconds(asset.duration)), size: video.naturalSize, flags: [])) + attrs.append(TelegramMediaFileAttribute.Video(duration: Int(CMTimeGetSeconds(asset.duration)), size: PixelDimensions(video.naturalSize), flags: [])) attrs.append(TelegramMediaFileAttribute.FileName(fileName: path.nsstring.lastPathComponent.nsstring.deletingPathExtension.appending(".mp4"))) if audio == nil, let size = fileSize(path), size < Int32(10 * 1024 * 1024) { attrs.append(TelegramMediaFileAttribute.Animated) @@ -356,12 +357,12 @@ class Sender: NSObject { } if mime.hasSuffix("gif"), isMedia { - attrs.append(TelegramMediaFileAttribute.Video(duration: 0, size:TGGifConverter.gifDimensionSize(path), flags: [])) + attrs.append(TelegramMediaFileAttribute.Video(duration: 0, size:TGGifConverter.gifDimensionSize(path).pixel, flags: [])) attrs.append(TelegramMediaFileAttribute.Animated) attrs.append(TelegramMediaFileAttribute.FileName(fileName: path.nsstring.lastPathComponent.nsstring.deletingPathExtension.appending(".mp4"))) } else if mime.hasPrefix("image"), let image = NSImage(contentsOf: URL(fileURLWithPath: path)) { - attrs.append(TelegramMediaFileAttribute.ImageSize(size: image.size)) + attrs.append(TelegramMediaFileAttribute.ImageSize(size: image.size.pixel)) attrs.append(TelegramMediaFileAttribute.FileName(fileName: path.nsstring.lastPathComponent)) } else { let getname:(String)->String = { path in diff --git a/Telegram-Mac/ShareInlineResultNavigationAction.swift b/Telegram-Mac/ShareInlineResultNavigationAction.swift index 7d2702137..d2c9fbb9e 100644 --- a/Telegram-Mac/ShareInlineResultNavigationAction.swift +++ b/Telegram-Mac/ShareInlineResultNavigationAction.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class ShareInlineResultNavigationAction: NavigationModalAction { diff --git a/Telegram-Mac/ShareModalController.swift b/Telegram-Mac/ShareModalController.swift index 325907e4a..ced795d40 100644 --- a/Telegram-Mac/ShareModalController.swift +++ b/Telegram-Mac/ShareModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/SharedAccountContext.swift b/Telegram-Mac/SharedAccountContext.swift index 329b6643e..391fa2a0e 100644 --- a/Telegram-Mac/SharedAccountContext.swift +++ b/Telegram-Mac/SharedAccountContext.swift @@ -7,10 +7,12 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit +import SyncCore private struct AccountAttributes: Equatable { let sortIndex: Int32 diff --git a/Telegram-Mac/SharedNotificationManager.swift b/Telegram-Mac/SharedNotificationManager.swift index 2a36af58a..1a601eb18 100644 --- a/Telegram-Mac/SharedNotificationManager.swift +++ b/Telegram-Mac/SharedNotificationManager.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore import TGUIKit struct LockNotificationsData : Equatable { diff --git a/Telegram-Mac/SharedWakeupManager.swift b/Telegram-Mac/SharedWakeupManager.swift index d5e0c1c4e..e1d9d1082 100644 --- a/Telegram-Mac/SharedWakeupManager.swift +++ b/Telegram-Mac/SharedWakeupManager.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private struct AccountTasks { diff --git a/Telegram-Mac/ShortPeerRowItem.swift b/Telegram-Mac/ShortPeerRowItem.swift index ce1fd3e83..23533618a 100644 --- a/Telegram-Mac/ShortPeerRowItem.swift +++ b/Telegram-Mac/ShortPeerRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit final class SelectPeerPresentation : Equatable { let selected:Set diff --git a/Telegram-Mac/ShortPeerRowView.swift b/Telegram-Mac/ShortPeerRowView.swift index d93d0ef5c..b3161e8ad 100644 --- a/Telegram-Mac/ShortPeerRowView.swift +++ b/Telegram-Mac/ShortPeerRowView.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox //FB2126 diff --git a/Telegram-Mac/SidebarCapViewController.swift b/Telegram-Mac/SidebarCapViewController.swift index bc3dd8622..9ef9b80b2 100644 --- a/Telegram-Mac/SidebarCapViewController.swift +++ b/Telegram-Mac/SidebarCapViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class SidebarCapView : View { private let text:NSTextField = NSTextField() diff --git a/Telegram-Mac/SignalUtils.swift b/Telegram-Mac/SignalUtils.swift index 376eab27d..c3d60caf8 100644 --- a/Telegram-Mac/SignalUtils.swift +++ b/Telegram-Mac/SignalUtils.swift @@ -7,14 +7,14 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit func countdown(_ count:Double, delay:Double) -> Signal { return Signal { subscriber in var value:Double = count subscriber.putNext(value) - var timer:SwiftSignalKitMac.Timer? = nil - timer = SwiftSignalKitMac.Timer(timeout: delay, repeat: true, completion: { + var timer:SwiftSignalKit.Timer? = nil + timer = SwiftSignalKit.Timer(timeout: delay, repeat: true, completion: { value -= delay subscriber.putNext(max(value,0)) if value <= 0 { @@ -35,9 +35,9 @@ public func `repeat`(_ delay:Double, onQueue:Queue) -> (Signal) -> S return Signal { subscriber in // let disposable:MEtadi = DisposableSet() - var timer:SwiftSignalKitMac.Timer? = nil + var timer:SwiftSignalKit.Timer? = nil - timer = SwiftSignalKitMac.Timer(timeout: delay, repeat: true, completion: { + timer = SwiftSignalKit.Timer(timeout: delay, repeat: true, completion: { _ = signal.start(next: { (next) in subscriber.putNext(next) }) diff --git a/Telegram-Mac/SoftwareVideoSource.swift b/Telegram-Mac/SoftwareVideoSource.swift index 9d8f9e425..9b236b07f 100644 --- a/Telegram-Mac/SoftwareVideoSource.swift +++ b/Telegram-Mac/SoftwareVideoSource.swift @@ -10,7 +10,7 @@ import Cocoa import Foundation import CoreMedia -import SwiftSignalKitMac +import SwiftSignalKit private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: UnsafeMutablePointer?, bufferSize: Int32) -> Int32 { let context = Unmanaged.fromOpaque(userData!).takeUnretainedValue() diff --git a/Telegram-Mac/StickerPackGridItem.swift b/Telegram-Mac/StickerPackGridItem.swift index 4a2583d4d..7f2c28e68 100644 --- a/Telegram-Mac/StickerPackGridItem.swift +++ b/Telegram-Mac/StickerPackGridItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit final class StickerPackGridItem: GridItem { @@ -211,7 +212,7 @@ final class StickerGridItemView: GridItemNode, ModalPreviewRowViewProtocol { } func setup(context: AccountContext, file: TelegramMediaFile) { - if let dimensions = file.dimensions { + if let dimensions = file.dimensions?.size { let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: NSMakeSize(60, 60), boundingSize: NSMakeSize(60, 60), intrinsicInsets: NSEdgeInsets()) imageView.setSignal(signal: cachedMedia(media: file, arguments: arguments, scale: backingScaleFactor)) diff --git a/Telegram-Mac/StickerPackItems.swift b/Telegram-Mac/StickerPackItems.swift index 352370f5f..8e0d77a4c 100644 --- a/Telegram-Mac/StickerPackItems.swift +++ b/Telegram-Mac/StickerPackItems.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class StickerPackRowItem: TableRowItem { diff --git a/Telegram-Mac/StickerPackPanelRowItem.swift b/Telegram-Mac/StickerPackPanelRowItem.swift index 4f9bcec53..4de691971 100644 --- a/Telegram-Mac/StickerPackPanelRowItem.swift +++ b/Telegram-Mac/StickerPackPanelRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class StickerPackPanelRowItem: TableRowItem { diff --git a/Telegram-Mac/StickerPackPreviewModalController.swift b/Telegram-Mac/StickerPackPreviewModalController.swift index 11fdaad1b..b4f391967 100644 --- a/Telegram-Mac/StickerPackPreviewModalController.swift +++ b/Telegram-Mac/StickerPackPreviewModalController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac -import MtProtoKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit + diff --git a/Telegram-Mac/StickerPreviewHandler.swift b/Telegram-Mac/StickerPreviewHandler.swift index 8a1cad88c..ef43cf738 100644 --- a/Telegram-Mac/StickerPreviewHandler.swift +++ b/Telegram-Mac/StickerPreviewHandler.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit enum QuickPreviewMedia : Equatable { diff --git a/Telegram-Mac/StickerSetTableRowItem.swift b/Telegram-Mac/StickerSetTableRowItem.swift index cc2140f6b..a0b650680 100644 --- a/Telegram-Mac/StickerSetTableRowItem.swift +++ b/Telegram-Mac/StickerSetTableRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit enum ItemListStickerPackItemControl: Equatable { @@ -243,8 +244,8 @@ class StickerSetTableRowView : TableRowView, ViewDisplayDelegate { thumbnailItem = thumbnail resourceReference = MediaResourceReference.stickerPackThumbnail(stickerPack: .id(id: item.info.id.id, accessHash: item.info.accessHash), resource: thumbnail.resource) } else if let topItem = item.topItem { - let dimensions = topItem.file.dimensions ?? NSMakeSize(35, 35) - thumbnailItem = TelegramMediaImageRepresentation(dimensions: dimensions, resource: topItem.file.resource) + let dimensions = topItem.file.dimensions?.size ?? NSMakeSize(35, 35) + thumbnailItem = TelegramMediaImageRepresentation(dimensions: PixelDimensions(dimensions), resource: topItem.file.resource) resourceReference = MediaResourceReference.media(media: .stickerPack(stickerPack: StickerPackReference.id(id: item.info.id.id, accessHash: item.info.accessHash), media: topItem.file), resource: topItem.file.resource) } if let thumbnailItem = thumbnailItem { diff --git a/Telegram-Mac/StickerSettings.swift b/Telegram-Mac/StickerSettings.swift index ac183a62b..f05007a00 100644 --- a/Telegram-Mac/StickerSettings.swift +++ b/Telegram-Mac/StickerSettings.swift @@ -1,6 +1,6 @@ import Foundation -import PostboxMac -import SwiftSignalKitMac +import Postbox +import SwiftSignalKit public enum EmojiStickerSuggestionMode: Int32 { case none diff --git a/Telegram-Mac/StickersViewController.swift b/Telegram-Mac/StickersViewController.swift index 73927e9a8..2d51deb36 100644 --- a/Telegram-Mac/StickersViewController.swift +++ b/Telegram-Mac/StickersViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox final class StickerPanelArguments { let context: AccountContext diff --git a/Telegram-Mac/StorageUsageController.swift b/Telegram-Mac/StorageUsageController.swift index 4a5b40cec..eb4347202 100644 --- a/Telegram-Mac/StorageUsageController.swift +++ b/Telegram-Mac/StorageUsageController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private final class StorageUsageControllerArguments { let context: AccountContext diff --git a/Telegram-Mac/StoredMessageFromSearchPeer.swift b/Telegram-Mac/StoredMessageFromSearchPeer.swift index b5709c66f..ca349999c 100644 --- a/Telegram-Mac/StoredMessageFromSearchPeer.swift +++ b/Telegram-Mac/StoredMessageFromSearchPeer.swift @@ -7,9 +7,11 @@ // import Foundation -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit +import SyncCore func storedMessageFromSearchPeer(account: Account, peer: Peer) -> Signal { return account.postbox.transaction { transaction -> PeerId in diff --git a/Telegram-Mac/SuggestionLocalizationViewController.swift b/Telegram-Mac/SuggestionLocalizationViewController.swift index 0f1b627ad..2396a89e3 100644 --- a/Telegram-Mac/SuggestionLocalizationViewController.swift +++ b/Telegram-Mac/SuggestionLocalizationViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private class SuggestionControllerView : View { let textView:TextView = TextView() diff --git a/Telegram-Mac/SyncCoreExtension.swift b/Telegram-Mac/SyncCoreExtension.swift new file mode 100644 index 000000000..55ca3335f --- /dev/null +++ b/Telegram-Mac/SyncCoreExtension.swift @@ -0,0 +1,27 @@ +// +// SyncCoreExtension.swift +// Telegram +// +// Created by Mikhail Filimonov on 01.11.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +import Cocoa +import SyncCore + +extension PixelDimensions { + var size: CGSize { + return CGSize(width: CGFloat(self.width), height: CGFloat(self.height)) + } + init(_ size: CGSize) { + self.init(width: Int32(size.width), height: Int32(size.height)) + } + init(_ width: Int32, _ height: Int32) { + self.init(width: width, height: height) + } +} +extension CGSize { + var pixel: PixelDimensions { + return PixelDimensions(self) + } +} diff --git a/Telegram-Mac/System.swift b/Telegram-Mac/System.swift index 4e9c018c5..f39d0642c 100644 --- a/Telegram-Mac/System.swift +++ b/Telegram-Mac/System.swift @@ -7,10 +7,11 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore import TGUIKit -import PostboxMac +import Postbox private let _dQueue = Queue.init(name: "chatListQueue") private let _sQueue = Queue.init(name: "ChatQueue") diff --git a/Telegram-Mac/TabBadgeItem.swift b/Telegram-Mac/TabBadgeItem.swift index a89517fd6..b7e96d58f 100644 --- a/Telegram-Mac/TabBadgeItem.swift +++ b/Telegram-Mac/TabBadgeItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore private final class AvatarTabContainer : View { private let avatar = AvatarControl(font: .avatar(12)) diff --git a/Telegram-Mac/TableUtils.swift b/Telegram-Mac/TableUtils.swift index 0f7ec2a83..842205774 100644 --- a/Telegram-Mac/TableUtils.swift +++ b/Telegram-Mac/TableUtils.swift @@ -9,7 +9,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore protocol TableItemListNodeEntry: Comparable, Identifiable { associatedtype ItemGenerationArguments diff --git a/Telegram-Mac/Telegram-Mac-Bridging-Header.h b/Telegram-Mac/Telegram-Mac-Bridging-Header.h index 2c6880e3a..199eb2f56 100644 --- a/Telegram-Mac/Telegram-Mac-Bridging-Header.h +++ b/Telegram-Mac/Telegram-Mac-Bridging-Header.h @@ -16,7 +16,6 @@ #import #import #import -#import "DFRPrivateHeader.h" #import "MP4Atom.h" #import "HackUtils.h" #import "BuildConfig.h" diff --git a/Telegram-Mac/TelegramAccountAuxiliaryMethods.swift b/Telegram-Mac/TelegramAccountAuxiliaryMethods.swift index a91bb526e..00c897c32 100644 --- a/Telegram-Mac/TelegramAccountAuxiliaryMethods.swift +++ b/Telegram-Mac/TelegramAccountAuxiliaryMethods.swift @@ -7,8 +7,9 @@ // import Foundation -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox public let telegramAccountAuxiliaryMethods = AccountAuxiliaryMethods(updatePeerChatInputState: { interfaceState, inputState -> PeerChatInterfaceState? in if interfaceState == nil { diff --git a/Telegram-Mac/TelegramIconsTheme.swift b/Telegram-Mac/TelegramIconsTheme.swift index 3e5440973..91806bb0b 100644 --- a/Telegram-Mac/TelegramIconsTheme.swift +++ b/Telegram-Mac/TelegramIconsTheme.swift @@ -1,4 +1,4 @@ -import SwiftSignalKitMac +import SwiftSignalKit final class TelegramIconsTheme { private var cached:Atomic<[String: CGImage]> = Atomic(value: [:]) @@ -6606,4 +6606,4 @@ final class TelegramIconsTheme { bp += 1 } -} \ No newline at end of file +} diff --git a/Telegram-Mac/TermsModalController.swift b/Telegram-Mac/TermsModalController.swift index 36c7682aa..931be72f7 100644 --- a/Telegram-Mac/TermsModalController.swift +++ b/Telegram-Mac/TermsModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class TermsView : View { private let headerView: View = View() diff --git a/Telegram-Mac/TextAndLabelItem.swift b/Telegram-Mac/TextAndLabelItem.swift index 8b296ef9f..ed31a25df 100644 --- a/Telegram-Mac/TextAndLabelItem.swift +++ b/Telegram-Mac/TextAndLabelItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class TextAndLabelItem: GeneralRowItem { diff --git a/Telegram-Mac/TextUtils.swift b/Telegram-Mac/TextUtils.swift index 791ad5307..4be8fd485 100644 --- a/Telegram-Mac/TextUtils.swift +++ b/Telegram-Mac/TextUtils.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit func pullText(from message:Message, attachEmoji: Bool = true) -> NSString { var messageText: NSString = message.text.fixed.nsstring @@ -488,8 +489,8 @@ func showSlowModeTimeoutTooltip(_ slowMode: SlowMode, for view: NSView) { if let errorText = slowMode.errorText { if let validUntil = slowMode.validUntil { tooltip(for: view, text: errorText, updateText: { f in - var timer:SwiftSignalKitMac.Timer? - timer = SwiftSignalKitMac.Timer(timeout: 0.1, repeat: true, completion: { + var timer:SwiftSignalKit.Timer? + timer = SwiftSignalKit.Timer(timeout: 0.1, repeat: true, completion: { let timeout = (validUntil - Int32(Date().timeIntervalSince1970)) diff --git a/Telegram-Mac/ThemeGridControllerItem.swift b/Telegram-Mac/ThemeGridControllerItem.swift index 005e0586e..7cad03c70 100644 --- a/Telegram-Mac/ThemeGridControllerItem.swift +++ b/Telegram-Mac/ThemeGridControllerItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox final class SettingsThemeWallpaperView: View { @@ -103,7 +104,7 @@ final class SettingsThemeWallpaperView: View { self.label.isHidden = true self.imageView.isHidden = false self.imageView.setSignal(chatWallpaper(account: account, representations: representations, mode: .thumbnail, autoFetchFullSize: true, scale: backingScaleFactor)) - self.imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: largestImageRepresentation(representations)!.dimensions.aspectFilled(size), boundingSize: size, intrinsicInsets: NSEdgeInsets(), emptyColor: nil)) + self.imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: largestImageRepresentation(representations)!.dimensions.size.aspectFilled(size), boundingSize: size, intrinsicInsets: NSEdgeInsets(), emptyColor: nil)) fetchDisposable.set(fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: MediaResourceReference.wallpaper(resource: largestImageRepresentation(representations)!.resource)).start()) case let .file(_, file, settings, isPattern): @@ -129,7 +130,7 @@ final class SettingsThemeWallpaperView: View { } self.imageView.setSignal(chatWallpaper(account: account, representations: representations, mode: .thumbnail, autoFetchFullSize: true, scale: backingScaleFactor)) - self.imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: largestImageRepresentation(representations)!.dimensions.aspectFilled(isPattern ? NSMakeSize(300, 300) : size), boundingSize: size, intrinsicInsets: NSEdgeInsets(), emptyColor: patternColor)) + self.imageView.set(arguments: TransformImageArguments(corners: ImageCorners(), imageSize: largestImageRepresentation(representations)!.dimensions.size.aspectFilled(isPattern ? NSMakeSize(300, 300) : size), boundingSize: size, intrinsicInsets: NSEdgeInsets(), emptyColor: patternColor)) fetchDisposable.set(fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: MediaResourceReference.wallpaper(resource: largestImageRepresentation(representations)!.resource)).start()) diff --git a/Telegram-Mac/ThemeListRowItem.swift b/Telegram-Mac/ThemeListRowItem.swift index 0bc2bdc79..b0f223ad2 100644 --- a/Telegram-Mac/ThemeListRowItem.swift +++ b/Telegram-Mac/ThemeListRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class HorizontalThemeFirstItem : GeneralRowItem { diff --git a/Telegram-Mac/ThemePreviewModalController.swift b/Telegram-Mac/ThemePreviewModalController.swift index 10f5bef77..4fd50598a 100644 --- a/Telegram-Mac/ThemePreviewModalController.swift +++ b/Telegram-Mac/ThemePreviewModalController.swift @@ -10,9 +10,10 @@ import Cocoa import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private final class ThemePreviewView : BackgroundView { fileprivate let segmentControl = CatalinaStyledSegmentController(frame: NSMakeRect(0, 0, 290, 30)) diff --git a/Telegram-Mac/ThemePreviewRowItem.swift b/Telegram-Mac/ThemePreviewRowItem.swift index 67a303324..511979ccf 100644 --- a/Telegram-Mac/ThemePreviewRowItem.swift +++ b/Telegram-Mac/ThemePreviewRowItem.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class ThemePreviewRowItem: GeneralRowItem { diff --git a/Telegram-Mac/ThemeSettings.swift b/Telegram-Mac/ThemeSettings.swift index b69b7ee7c..3033f3f59 100644 --- a/Telegram-Mac/ThemeSettings.swift +++ b/Telegram-Mac/ThemeSettings.swift @@ -6,10 +6,12 @@ // Copyright © 2017 Telegram. All rights reserved. // import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore import TGUIKit +import SyncCore public enum PresentationThemeParsingError: Error { case generic diff --git a/Telegram-Mac/ThumbUtils.swift b/Telegram-Mac/ThumbUtils.swift index c3797a2d3..8b0b964a7 100644 --- a/Telegram-Mac/ThumbUtils.swift +++ b/Telegram-Mac/ThumbUtils.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import TGUIKit private let extensionImageCache = Atomic<[String: CGImage]>(value: [:]) diff --git a/Telegram-Mac/TouchBarStickerItemView.swift b/Telegram-Mac/TouchBarStickerItemView.swift index cbfc81199..750d81342 100644 --- a/Telegram-Mac/TouchBarStickerItemView.swift +++ b/Telegram-Mac/TouchBarStickerItemView.swift @@ -7,8 +7,9 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore import TGUIKit @@ -64,7 +65,7 @@ class TouchBarStickerItemView: NSScrubberItemView { guard let imageView = self.imageView else { return } - let dimensions = file.dimensions ?? frame.size + let dimensions = file.dimensions?.size ?? frame.size let imageSize = NSMakeSize(30, 30) let arguments = TransformImageArguments(corners: ImageCorners(), imageSize: dimensions.aspectFitted(imageSize), boundingSize: imageSize, intrinsicInsets: NSEdgeInsets()) diff --git a/Telegram-Mac/TransformImageView.swift b/Telegram-Mac/TransformImageView.swift index 5d78c65cb..6779a11c4 100644 --- a/Telegram-Mac/TransformImageView.swift +++ b/Telegram-Mac/TransformImageView.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit private let threadPool = ThreadPool(threadCount: 1, threadPriority: 0.1) diff --git a/Telegram-Mac/TransformOutgoingMessageMedia.swift b/Telegram-Mac/TransformOutgoingMessageMedia.swift index 330bb8798..552bcf604 100644 --- a/Telegram-Mac/TransformOutgoingMessageMedia.swift +++ b/Telegram-Mac/TransformOutgoingMessageMedia.swift @@ -7,10 +7,12 @@ // import Foundation -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit +import SyncCore public func transformOutgoingMessageMedia(postbox: Postbox, network: Network, reference: AnyMediaReference, opportunistic: Bool) -> Signal { switch reference.media { @@ -108,7 +110,7 @@ public func transformOutgoingMessageMedia(postbox: Postbox, network: Network, re if CGImageDestinationFinalize(colorDestination) { let thumbnailResource = LocalFileMediaResource(fileId: arc4random64()) postbox.mediaBox.storeResourceData(thumbnailResource.id, data: mutableData as Data) - subscriber.putNext(AnyMediaReference.standalone(media: file.withUpdatedSize(Int(size ?? 0)).withUpdatedPreviewRepresentations([TelegramMediaImageRepresentation(dimensions: image.size, resource: thumbnailResource)]))) + subscriber.putNext(AnyMediaReference.standalone(media: file.withUpdatedSize(Int(size ?? 0)).withUpdatedPreviewRepresentations([TelegramMediaImageRepresentation(dimensions: PixelDimensions(image.size), resource: thumbnailResource)]))) return EmptyDisposable } @@ -116,7 +118,6 @@ public func transformOutgoingMessageMedia(postbox: Postbox, network: Network, re } - subscriber.putNext(AnyMediaReference.standalone(media: file.withUpdatedSize(Int(size ?? 0)))) subscriber.putCompletion() diff --git a/Telegram-Mac/TwoStepVerification.swift b/Telegram-Mac/TwoStepVerification.swift index 4fbc7002a..814141539 100644 --- a/Telegram-Mac/TwoStepVerification.swift +++ b/Telegram-Mac/TwoStepVerification.swift @@ -7,10 +7,10 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac -import MtProtoKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit diff --git a/Telegram-Mac/TwoStepVerificationUnlockController.swift b/Telegram-Mac/TwoStepVerificationUnlockController.swift index f8903b3d8..6c5ddd193 100644 --- a/Telegram-Mac/TwoStepVerificationUnlockController.swift +++ b/Telegram-Mac/TwoStepVerificationUnlockController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox diff --git a/Telegram-Mac/UndoOverlayHeaderView.swift b/Telegram-Mac/UndoOverlayHeaderView.swift index b67f03c17..5601af498 100644 --- a/Telegram-Mac/UndoOverlayHeaderView.swift +++ b/Telegram-Mac/UndoOverlayHeaderView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit class UndoOverlayHeaderView: NavigationHeaderView { @@ -18,7 +19,7 @@ class UndoOverlayHeaderView: NavigationHeaderView { private let manager: ChatUndoManager private let disposable = MetaDisposable() private var didSetReady: Bool = false - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? private var progressValue: Double = 0.0 private var secondsUntilFinish: Int = 0 private let undoButton = TitleButton() @@ -105,7 +106,7 @@ class UndoOverlayHeaderView: NavigationHeaderView { timer?.invalidate() - timer = SwiftSignalKitMac.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in self?.progressValue = 1.0 - min(1.0, max(0, statuses.secondsUntilFinish / statuses.maximumDuration)) self?.updateDuration(value: Int(round(max(1, statuses.secondsUntilFinish))), animated: true) self?.updateProgress(force: true) diff --git a/Telegram-Mac/UniversalSoftwareVideoSource.swift b/Telegram-Mac/UniversalSoftwareVideoSource.swift index ba253fff1..4298f2044 100644 --- a/Telegram-Mac/UniversalSoftwareVideoSource.swift +++ b/Telegram-Mac/UniversalSoftwareVideoSource.swift @@ -1,7 +1,8 @@ import Foundation -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: UnsafeMutablePointer?, bufferSize: Int32) -> Int32 { diff --git a/Telegram-Mac/UpdateModalController.swift b/Telegram-Mac/UpdateModalController.swift index f6d3b5458..6b6482f81 100644 --- a/Telegram-Mac/UpdateModalController.swift +++ b/Telegram-Mac/UpdateModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit private class UpdateTableItem : GeneralRowItem { fileprivate let titleLayout: TextViewLayout diff --git a/Telegram-Mac/UpdaterNotifySettings.swift b/Telegram-Mac/UpdaterNotifySettings.swift index 2139c0f49..b24fa0c4f 100644 --- a/Telegram-Mac/UpdaterNotifySettings.swift +++ b/Telegram-Mac/UpdaterNotifySettings.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac - +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit +import SyncCore enum LaunchNavigation : PostboxCoding, Equatable { case chat(PeerId, necessary: Bool) case settings diff --git a/Telegram-Mac/UpgradedAccount.swift b/Telegram-Mac/UpgradedAccount.swift index 420ddd1f4..c590ee578 100644 --- a/Telegram-Mac/UpgradedAccount.swift +++ b/Telegram-Mac/UpgradedAccount.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private enum LegacyPreferencesKeyValues: Int32 { diff --git a/Telegram-Mac/UserInfoEntries.swift b/Telegram-Mac/UserInfoEntries.swift index 3db5cafed..cda419929 100644 --- a/Telegram-Mac/UserInfoEntries.swift +++ b/Telegram-Mac/UserInfoEntries.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit diff --git a/Telegram-Mac/UsernameInputRowItem.swift b/Telegram-Mac/UsernameInputRowItem.swift index 93ec5bc03..b7c5f2557 100644 --- a/Telegram-Mac/UsernameInputRowItem.swift +++ b/Telegram-Mac/UsernameInputRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore class UsernameInputRowItem: GeneralInputRowItem { let status:AddressNameValidationStatus? let changeHandler:(String)->Void diff --git a/Telegram-Mac/UsernameSettingsViewController.swift b/Telegram-Mac/UsernameSettingsViewController.swift index e274b0354..e6e44845d 100644 --- a/Telegram-Mac/UsernameSettingsViewController.swift +++ b/Telegram-Mac/UsernameSettingsViewController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit fileprivate enum UsernameEntryId : Hashable { case section(Int32) diff --git a/Telegram-Mac/VCardContactController.swift b/Telegram-Mac/VCardContactController.swift index 37398a166..bc947dca0 100644 --- a/Telegram-Mac/VCardContactController.swift +++ b/Telegram-Mac/VCardContactController.swift @@ -8,10 +8,11 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import Contacts -import SwiftSignalKitMac +import SwiftSignalKit // //private class VCardContactView : View { // let tableView: TableView = TableView(frame: NSZeroRect) diff --git a/Telegram-Mac/VCardHeaderItem.swift b/Telegram-Mac/VCardHeaderItem.swift index 4c09f9874..fcb23ad51 100644 --- a/Telegram-Mac/VCardHeaderItem.swift +++ b/Telegram-Mac/VCardHeaderItem.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit import Contacts diff --git a/Telegram-Mac/VCardLocationRowItem.swift b/Telegram-Mac/VCardLocationRowItem.swift index 84aecef4f..ddac34870 100644 --- a/Telegram-Mac/VCardLocationRowItem.swift +++ b/Telegram-Mac/VCardLocationRowItem.swift @@ -9,7 +9,8 @@ import Cocoa import TGUIKit import Contacts -import TelegramCoreMac +import TelegramCore +import SyncCore class VCardLocationRowItem: GeneralRowItem { fileprivate let address: CNLabeledValue diff --git a/Telegram-Mac/ValidateAddressNameInteractive.swift b/Telegram-Mac/ValidateAddressNameInteractive.swift index e1589c16d..1fa8c3c74 100644 --- a/Telegram-Mac/ValidateAddressNameInteractive.swift +++ b/Telegram-Mac/ValidateAddressNameInteractive.swift @@ -8,9 +8,10 @@ import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox enum AddressNameValidationStatus: Equatable { case checking diff --git a/Telegram-Mac/ValuesSelectorModalController.swift b/Telegram-Mac/ValuesSelectorModalController.swift index 097647dc3..00cca6fc4 100644 --- a/Telegram-Mac/ValuesSelectorModalController.swift +++ b/Telegram-Mac/ValuesSelectorModalController.swift @@ -8,7 +8,7 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit private final class ValuesSelectorArguments where T : Equatable { let selectItem:(ValuesSelectorValue)->Void diff --git a/Telegram-Mac/VideoPlayerProxy.swift b/Telegram-Mac/VideoPlayerProxy.swift index b453086cc..99d27231f 100755 --- a/Telegram-Mac/VideoPlayerProxy.swift +++ b/Telegram-Mac/VideoPlayerProxy.swift @@ -1,5 +1,5 @@ import Foundation -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation private final class VideoPlayerProxyContext { diff --git a/Telegram-Mac/VideoRecorderModalController.swift b/Telegram-Mac/VideoRecorderModalController.swift index 8e2f084d0..9746f3f68 100644 --- a/Telegram-Mac/VideoRecorderModalController.swift +++ b/Telegram-Mac/VideoRecorderModalController.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit class VideoRecorderModalController: ModalViewController { diff --git a/Telegram-Mac/VideoRecorderPipeline.swift b/Telegram-Mac/VideoRecorderPipeline.swift index 4da0f4f83..a27f2d276 100644 --- a/Telegram-Mac/VideoRecorderPipeline.swift +++ b/Telegram-Mac/VideoRecorderPipeline.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import Accelerate -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit diff --git a/Telegram-Mac/VoiceCallSettings.swift b/Telegram-Mac/VoiceCallSettings.swift index 9861ec40f..f3bb4a648 100644 --- a/Telegram-Mac/VoiceCallSettings.swift +++ b/Telegram-Mac/VoiceCallSettings.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import SwiftSignalKitMac -import TelegramCoreMac +import Postbox +import SwiftSignalKit +import TelegramCore +import SyncCore public enum VoiceCallDataSaving: Int32 { case never diff --git a/Telegram-Mac/WPArticleContentView.swift b/Telegram-Mac/WPArticleContentView.swift index c17d63dac..8f7c6dbd0 100644 --- a/Telegram-Mac/WPArticleContentView.swift +++ b/Telegram-Mac/WPArticleContentView.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit class WPArticleContentView: WPContentView { @@ -255,7 +256,7 @@ class WPArticleContentView: WPContentView { if layout.content.image == nil, let file = layout.content.file, let dimension = layout.imageSize { var representations: [TelegramMediaImageRepresentation] = [] representations.append(contentsOf: file.previewRepresentations) - representations.append(TelegramMediaImageRepresentation(dimensions: dimension, resource: file.resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(dimension), resource: file.resource)) image = TelegramMediaImage(imageId: file.id ?? MediaId(namespace: 0, id: arc4random64()), representations: representations, immediateThumbnailData: file.immediateThumbnailData, reference: nil, partialReference: file.partialReference) } @@ -272,7 +273,7 @@ class WPArticleContentView: WPContentView { self.addSubview(imageView!) } - let closestRepresentation = image.representationForDisplayAtSize(NSMakeSize(1280, 1280))//(largestImageRepresentation(image.representations)) + let closestRepresentation = image.representationForDisplayAtSize(PixelDimensions(1280, 1280)) if let closestRepresentation = closestRepresentation { statusDisposable.set((layout.context.account.postbox.mediaBox.resourceStatus(closestRepresentation.resource, approximateSynchronousValue: synchronousLoad) |> deliverOnMainQueue).start(next: { [weak self] status in diff --git a/Telegram-Mac/WPArticleLayout.swift b/Telegram-Mac/WPArticleLayout.swift index 0b57ab5fc..1456d33db 100644 --- a/Telegram-Mac/WPArticleLayout.swift +++ b/Telegram-Mac/WPArticleLayout.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox import TGUIKit -import SwiftSignalKitMac +import SwiftSignalKit class WPArticleLayout: WPLayout { @@ -97,13 +98,13 @@ class WPArticleLayout: WPLayout { } if let image = content.image, groupLayout == nil { - if let dimensions = largestImageRepresentation(image.representations)?.dimensions { + if let dimensions = largestImageRepresentation(image.representations)?.dimensions.size { imageSize = dimensions } } if let file = content.file, groupLayout == nil { - if let dimensions = file.dimensions { + if let dimensions = file.dimensions?.size { imageSize = dimensions } else if isTheme { imageSize = NSMakeSize(200, 200) diff --git a/Telegram-Mac/WPContentView.swift b/Telegram-Mac/WPContentView.swift index dd408ae05..7311aa41f 100644 --- a/Telegram-Mac/WPContentView.swift +++ b/Telegram-Mac/WPContentView.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class WPContentView: View, MultipleSelectable, ModalPreviewRowViewProtocol { diff --git a/Telegram-Mac/WPLayout.swift b/Telegram-Mac/WPLayout.swift index 818c4a463..d6c5fe4dc 100644 --- a/Telegram-Mac/WPLayout.swift +++ b/Telegram-Mac/WPLayout.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac +import Postbox +import TelegramCore +import SyncCore struct WPLayoutPresentation { diff --git a/Telegram-Mac/WPMediaContentView.swift b/Telegram-Mac/WPMediaContentView.swift index be1c21958..67a37ffd0 100644 --- a/Telegram-Mac/WPMediaContentView.swift +++ b/Telegram-Mac/WPMediaContentView.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class WPMediaContentView: WPContentView { diff --git a/Telegram-Mac/WPMediaLayout.swift b/Telegram-Mac/WPMediaLayout.swift index 1737712d3..87d4c3b77 100644 --- a/Telegram-Mac/WPMediaLayout.swift +++ b/Telegram-Mac/WPMediaLayout.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import PostboxMac -import TelegramCoreMac +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/WalletBalanceItem.swift b/Telegram-Mac/WalletBalanceItem.swift index 5137729da..fcd3742a4 100644 --- a/Telegram-Mac/WalletBalanceItem.swift +++ b/Telegram-Mac/WalletBalanceItem.swift @@ -8,8 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import WalletCore public enum RelativeTimestampFormatDay { case today diff --git a/Telegram-Mac/WalletConfiguration.swift b/Telegram-Mac/WalletConfiguration.swift index 913bee0f2..457ba5a51 100644 --- a/Telegram-Mac/WalletConfiguration.swift +++ b/Telegram-Mac/WalletConfiguration.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit public struct WalletConfiguration { diff --git a/Telegram-Mac/WalletCreateInvoiceController.swift b/Telegram-Mac/WalletCreateInvoiceController.swift index 478105470..c1e244718 100644 --- a/Telegram-Mac/WalletCreateInvoiceController.swift +++ b/Telegram-Mac/WalletCreateInvoiceController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac - +import SwiftSignalKit +import TelegramCore +import SyncCore +import WalletCore private final class WalletInvoiceArguments { let context: AccountContext let copy:()->Void diff --git a/Telegram-Mac/WalletInfoController.swift b/Telegram-Mac/WalletInfoController.swift index ce243a58b..38e0112eb 100644 --- a/Telegram-Mac/WalletInfoController.swift +++ b/Telegram-Mac/WalletInfoController.swift @@ -7,9 +7,11 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit +import WalletCore enum WalletInfoTransaction: Equatable { case completed(WalletTransaction) @@ -247,7 +249,10 @@ func WalletInfoController(context: AccountContext, tonContext: TonContext, walle let updateBalanceDisposable = MetaDisposable() let updateBalance:()->Void = { - let signal = combineLatest(queue: .mainQueue(), getCombinedWalletState(postbox: context.account.postbox, subject: .wallet(walletInfo), tonInstance: tonContext.instance), walletAddress(publicKey: walletInfo.publicKey, tonInstance: tonContext.instance) |> mapError { _ in return .generic }, TONKeychain.hasKeys(for: context.account) |> castError(GetCombinedWalletStateError.self)) + + + + let signal = combineLatest(queue: .mainQueue(), getCombinedWalletState(storage: tonContext.storage, subject: .wallet(walletInfo), tonInstance: tonContext.instance), walletAddress(publicKey: walletInfo.publicKey, tonInstance: tonContext.instance) |> mapError { _ in return .generic }, TONKeychain.hasKeys(for: context.account) |> castError(GetCombinedWalletStateError.self)) let short = signal |> then(signal |> delay(3.3, queue: .mainQueue()) |> restart) diff --git a/Telegram-Mac/WalletInfoCreatedItem.swift b/Telegram-Mac/WalletInfoCreatedItem.swift index 1a132008b..fffe352e5 100644 --- a/Telegram-Mac/WalletInfoCreatedItem.swift +++ b/Telegram-Mac/WalletInfoCreatedItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore class WalletInfoCreatedItem: GeneralRowItem { diff --git a/Telegram-Mac/WalletInfoTransactionItem.swift b/Telegram-Mac/WalletInfoTransactionItem.swift index 836cc9580..e540c3a0c 100644 --- a/Telegram-Mac/WalletInfoTransactionItem.swift +++ b/Telegram-Mac/WalletInfoTransactionItem.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit diff --git a/Telegram-Mac/WalletPasscodeTimeout.swift b/Telegram-Mac/WalletPasscodeTimeout.swift index 9fab3cfb3..306f5672e 100644 --- a/Telegram-Mac/WalletPasscodeTimeout.swift +++ b/Telegram-Mac/WalletPasscodeTimeout.swift @@ -7,9 +7,10 @@ // import Cocoa -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox enum WalletPasscodeTimeoutLevel : Int32, Equatable { case none = 0 diff --git a/Telegram-Mac/WalletProcessTransactionController.swift b/Telegram-Mac/WalletProcessTransactionController.swift index 47401391f..a9322f83f 100644 --- a/Telegram-Mac/WalletProcessTransactionController.swift +++ b/Telegram-Mac/WalletProcessTransactionController.swift @@ -8,8 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import WalletCore private final class WalletTransactionArguments { let context: AccountContext @@ -242,7 +244,7 @@ func WalletProcessTransactionController(context: AccountContext, tonContext: Ton let signal = getServerWalletSalt(network: context.account.network) |> mapError { _ in return SendGramsFromWalletError.generic } |> mapToSignal { salt in - sendGramsFromWallet(postbox: context.account.postbox, network: context.account.network, tonInstance: tonContext.instance, walletInfo: walletInfo, decryptedSecret: decryptedSecret, localPassword: salt, toAddress: address, amount: state.amount, textMessage: comment.data(using: .utf8)!, forceIfDestinationNotInitialized: force, timeout: 0, randomId: state.randomId) + sendGramsFromWallet(storage: tonContext.storage, tonInstance: tonContext.instance, walletInfo: walletInfo, decryptedSecret: decryptedSecret, localPassword: salt, toAddress: address, amount: state.amount, textMessage: comment.data(using: .utf8)!, forceIfDestinationNotInitialized: force, timeout: 0, randomId: state.randomId) } |> timeout(15.0, queue: .mainQueue(), alternate: .fail(.network)) |> deliverOnMainQueue sendDisposable.set(signal.start(error: { error in diff --git a/Telegram-Mac/WalletReceiveController.swift b/Telegram-Mac/WalletReceiveController.swift index f3acbe91c..f10bce8c3 100644 --- a/Telegram-Mac/WalletReceiveController.swift +++ b/Telegram-Mac/WalletReceiveController.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit - +import WalletCore private final class WalletReceiveArguments { let context: AccountContext diff --git a/Telegram-Mac/WalletSendController.swift b/Telegram-Mac/WalletSendController.swift index 5998009f1..1414b0d94 100644 --- a/Telegram-Mac/WalletSendController.swift +++ b/Telegram-Mac/WalletSendController.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit - +import WalletCore private final class WalletSendArguments { @@ -185,7 +186,7 @@ func WalletSendController(context: AccountContext, tonContext: TonContext, walle let transferDisposable = MetaDisposable() let updateBalance:()->Void = { - let signal = getCombinedWalletState(postbox: context.account.postbox, subject: .wallet(walletInfo), tonInstance: tonContext.instance) + let signal = getCombinedWalletState(storage: tonContext.storage, subject: .wallet(walletInfo), tonInstance: tonContext.instance) let address = walletAddress(publicKey: walletInfo.publicKey, tonInstance: tonContext.instance) |> mapError { _ in diff --git a/Telegram-Mac/WalletSendProccessingView.swift b/Telegram-Mac/WalletSendProccessingView.swift index 64f43f3a1..06146c110 100644 --- a/Telegram-Mac/WalletSendProccessingView.swift +++ b/Telegram-Mac/WalletSendProccessingView.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore final class WalletSendProccessingView : Control { private let titleView: TextView = TextView() diff --git a/Telegram-Mac/WalletSettingsController.swift b/Telegram-Mac/WalletSettingsController.swift index 3ce3b35e5..df3f907ed 100644 --- a/Telegram-Mac/WalletSettingsController.swift +++ b/Telegram-Mac/WalletSettingsController.swift @@ -7,11 +7,12 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit - +import WalletCore private final class WalletSettingsArguments { let context: AccountContext let deleteWallet:()->Void @@ -52,7 +53,11 @@ func WalletSettingsController(context: AccountContext, tonContext: TonContext, w let arguments = WalletSettingsArguments(context: context, deleteWallet: { confirm(for: context.window, header: L10n.walletSettingsDeleteConfirmHeader, information: L10n.walletSettingsDeleteConfirmText, okTitle: L10n.walletSettingsDeleteConfirmOK, successHandler: { _ in - let signals = combineLatest(TONKeychain.delete(account: context.account) |> castError(DeleteAllLocalWalletsDataError.self) |> ignoreValues, deleteAllLocalWalletsData(postbox: context.account.postbox, network: context.account.network, tonInstance: tonContext.instance)) + + + + + let signals = combineLatest(TONKeychain.delete(account: context.account) |> castError(DeleteAllLocalWalletsDataError.self) |> ignoreValues, deleteAllLocalWalletsData(storage: tonContext.storage, tonInstance: tonContext.instance)) let _ = showModalProgress(signal: signals |> deliverOnMainQueue, for: context.window).start(error: { error in diff --git a/Telegram-Mac/WalletSplashButtonRowItem.swift b/Telegram-Mac/WalletSplashButtonRowItem.swift index 487bd41f0..dd890c77e 100644 --- a/Telegram-Mac/WalletSplashButtonRowItem.swift +++ b/Telegram-Mac/WalletSplashButtonRowItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore diff --git a/Telegram-Mac/WalletSplashController.swift b/Telegram-Mac/WalletSplashController.swift index a071e5a4f..03e45e66f 100644 --- a/Telegram-Mac/WalletSplashController.swift +++ b/Telegram-Mac/WalletSplashController.swift @@ -7,10 +7,12 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import TGUIKit +import WalletCore @available (OSX 10.12, *) enum WalletSplashMode : Equatable { @@ -259,7 +261,7 @@ func WalletSplashController(context: AccountContext, tonContext: TonContext, mod return CreateWalletError.generic } |> mapToSignal { salt in - return createWallet(postbox: context.account.postbox, tonInstance: tonContext.instance, keychain: tonContext.keychain, localPassword: salt) + return createWallet(storage: tonContext.storage, tonInstance: tonContext.instance, keychain: tonContext.keychain, localPassword: salt) } |> map { data in return (key, data) @@ -386,7 +388,7 @@ func WalletSplashController(context: AccountContext, tonContext: TonContext, mod return ImportWalletError.generic } |> mapToSignal { salt in - return importWallet(postbox: context.account.postbox, tonInstance: tonContext.instance, keychain: tonContext.keychain, wordList: wordList, localPassword: salt) + return importWallet(storage: tonContext.storage, tonInstance: tonContext.instance, keychain: tonContext.keychain, wordList: wordList, localPassword: salt) } |> map { data in return (key, data) @@ -406,7 +408,7 @@ func WalletSplashController(context: AccountContext, tonContext: TonContext, mod })) case let .success(info): - let signal = getCombinedWalletState(postbox: context.account.postbox, subject: .wallet(info), tonInstance: tonContext.instance) + let signal = getCombinedWalletState(storage: tonContext.storage, subject: .wallet(info), tonInstance: tonContext.instance) |> filter { state in switch state { case let .cached(state): diff --git a/Telegram-Mac/WalletSplashHelps.swift b/Telegram-Mac/WalletSplashHelps.swift index 63610ee65..f545c1b6b 100644 --- a/Telegram-Mac/WalletSplashHelps.swift +++ b/Telegram-Mac/WalletSplashHelps.swift @@ -7,8 +7,9 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox @available (OSX 10.12, *) extension WalletSplashMode { diff --git a/Telegram-Mac/WalletSplashRowItem.swift b/Telegram-Mac/WalletSplashRowItem.swift index 7c970354f..b31bac59b 100644 --- a/Telegram-Mac/WalletSplashRowItem.swift +++ b/Telegram-Mac/WalletSplashRowItem.swift @@ -8,7 +8,8 @@ import Cocoa import TGUIKit -import TelegramCoreMac +import TelegramCore +import SyncCore @available (OSX 10.12, *) diff --git a/Telegram-Mac/WalletTransactionPreviewController.swift b/Telegram-Mac/WalletTransactionPreviewController.swift index f9f4d12d9..6e4821906 100644 --- a/Telegram-Mac/WalletTransactionPreviewController.swift +++ b/Telegram-Mac/WalletTransactionPreviewController.swift @@ -7,10 +7,11 @@ // import Cocoa -import TelegramCoreMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import SwiftSignalKit import TGUIKit - +import WalletCore private final class WalletTransactionPreviewArguments { let context: AccountContext diff --git a/Telegram-Mac/WallpaperPatternPreview.swift b/Telegram-Mac/WallpaperPatternPreview.swift index 8902ee3df..d6383d218 100644 --- a/Telegram-Mac/WallpaperPatternPreview.swift +++ b/Telegram-Mac/WallpaperPatternPreview.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit private class WallpaperPatternView : Control { let imageView = TransformImageView() diff --git a/Telegram-Mac/WallpaperPreviewController.swift b/Telegram-Mac/WallpaperPreviewController.swift index f1b282047..47bdfd93d 100644 --- a/Telegram-Mac/WallpaperPreviewController.swift +++ b/Telegram-Mac/WallpaperPreviewController.swift @@ -8,9 +8,11 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox +import SyncCore enum WallpaperPreviewMode : Equatable { case plain @@ -62,14 +64,14 @@ extension Wallpaper { switch self { case let .file(_, file, _, _): if let dimensions = file.dimensions { - return dimensions + return dimensions.size } return NSMakeSize(300, 300) case let .image(representations, _): let largest = largestImageRepresentation(representations) - return largest!.dimensions + return largest!.dimensions.size case let .custom(representation, _): - return representation.dimensions + return representation.dimensions.size case .color: return NSMakeSize(300, 300) default: @@ -90,7 +92,7 @@ private final class blurCheckbox : View { } private(set) var isSelected: Bool = false - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? func set(isSelected: Bool, animated: Bool) { self.isSelected = isSelected if animated { @@ -100,7 +102,7 @@ private final class blurCheckbox : View { let tick = isSelected ? ((1 - animationProgress) / (fps * 0.2)) : -(animationProgress / (fps * 0.2)) - timer = SwiftSignalKitMac.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in guard let `self` = self else {return} self.animationProgress += tick @@ -707,7 +709,7 @@ private final class WallpaperPreviewView: View { blurCheckbox.isHidden = false colorCheckbox.isHidden = true patternCheckbox.isHidden = true - let dimensions = largestImageRepresentation(representations)!.dimensions + let dimensions = largestImageRepresentation(representations)!.dimensions.size let boundingSize = dimensions.fitted(maximumSize) self.imageSize = dimensions @@ -743,7 +745,7 @@ private final class WallpaperPreviewView: View { representations.append(TelegramMediaImageRepresentation(dimensions: dimensions, resource: file.resource)) } - let dimensions = largestImageRepresentation(representations)!.dimensions + let dimensions = largestImageRepresentation(representations)!.dimensions.size let boundingSize = dimensions.fitted(maximumSize) self.imageSize = dimensions @@ -864,7 +866,7 @@ private func cropWallpaperIfNeeded(_ wallpaper: Wallpaper, account: Account, rec if let representation = largestImageRepresentation(representations), let resource = representation.resource as? LocalFileReferenceMediaResource { if let image = NSImage(contentsOfFile: resource.localFilePath)?.cgImage(forProposedRect: nil, context: nil, hints: nil) { - let fittedImage = cropWallpaperImage(image, dimensions: representation.dimensions, rect: rect, magnify: magnify, settings: nil) + let fittedImage = cropWallpaperImage(image, dimensions: representation.dimensions.size, rect: rect, magnify: magnify, settings: nil) let options = NSMutableDictionary() options.setValue(90 as NSNumber, forKey: kCGImageDestinationImageMaxPixelSize as String) @@ -878,16 +880,16 @@ private func cropWallpaperIfNeeded(_ wallpaper: Wallpaper, account: Account, rec if CGImageDestinationFinalize(colorDestination) { let thumdResource = LocalFileMediaResource(fileId: arc4random64()) account.postbox.mediaBox.storeResourceData(thumdResource.id, data: mutableData as Data) - result.append(TelegramMediaImageRepresentation(dimensions: fittedImage.backingSize.aspectFitted(NSMakeSize(90, 90)), resource: thumdResource)) + result.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(fittedImage.backingSize.aspectFitted(NSMakeSize(90, 90))), resource: thumdResource)) } } - let fittedDimensions = WallpaperDimensions.aspectFitted(representation.dimensions) + let fittedDimensions = WallpaperDimensions.aspectFitted(representation.dimensions.size) disposable.set(putToTemp(image: NSImage(cgImage: fittedImage, size: fittedDimensions), compress: false).start(next: { path in copyToClipboard(path) let resource = LocalFileReferenceMediaResource(localFilePath: path, randomId: arc4random64()) - result.append(TelegramMediaImageRepresentation(dimensions: fittedDimensions, resource: resource)) + result.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(fittedDimensions), resource: resource)) let wallpaper: Wallpaper = .image(result, settings: wallpaper.settings) subscriber.putNext(wallpaper) @@ -902,7 +904,7 @@ private func cropWallpaperIfNeeded(_ wallpaper: Wallpaper, account: Account, rec subscriber.putNext(wallpaper.withUpdatedSettings(settings)) subscriber.putCompletion() } else { - let fittedImage = cropWallpaperImage(image, dimensions: dimensions, rect: rect, magnify: magnify, settings: isPattern ? settings : nil) + let fittedImage = cropWallpaperImage(image, dimensions: dimensions.size, rect: rect, magnify: magnify, settings: isPattern ? settings : nil) let options = NSMutableDictionary() options.setValue(90 as NSNumber, forKey: kCGImageDestinationImageMaxPixelSize as String) @@ -916,11 +918,11 @@ private func cropWallpaperIfNeeded(_ wallpaper: Wallpaper, account: Account, rec if CGImageDestinationFinalize(colorDestination) { let thumdResource = LocalFileMediaResource(fileId: arc4random64()) account.postbox.mediaBox.storeResourceData(thumdResource.id, data: mutableData as Data) - result.append(TelegramMediaImageRepresentation(dimensions: fittedImage.backingSize.aspectFitted(NSMakeSize(90, 90)), resource: thumdResource)) + result.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(fittedImage.backingSize.aspectFitted(NSMakeSize(90, 90))), resource: thumdResource)) } } - let fittedDimensions = WallpaperDimensions.aspectFitted(dimensions) + let fittedDimensions = WallpaperDimensions.aspectFitted(dimensions.size) disposable.set(putToTemp(image: NSImage(cgImage: fittedImage, size: fittedDimensions), compress: false).start(next: { path in let resource = LocalFileReferenceMediaResource(localFilePath: path, randomId: arc4random64()) @@ -929,7 +931,7 @@ private func cropWallpaperIfNeeded(_ wallpaper: Wallpaper, account: Account, rec loop: for (i, attr) in attributes.enumerated() { switch attr { case .ImageSize: - attributes[i] = .ImageSize(size: fittedDimensions) + attributes[i] = .ImageSize(size: PixelDimensions(fittedDimensions)) break loop default: break diff --git a/Telegram-Mac/Wallpapers.swift b/Telegram-Mac/Wallpapers.swift index c518c1a4f..6fc8fdb51 100644 --- a/Telegram-Mac/Wallpapers.swift +++ b/Telegram-Mac/Wallpapers.swift @@ -7,9 +7,10 @@ // import Cocoa -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit // //public enum TelegramWallpaper: OrderedItemListEntryContents, Equatable { // case none diff --git a/Telegram-Mac/WebAuthorizationRowItem.swift b/Telegram-Mac/WebAuthorizationRowItem.swift index 1e969d10d..27772096b 100644 --- a/Telegram-Mac/WebAuthorizationRowItem.swift +++ b/Telegram-Mac/WebAuthorizationRowItem.swift @@ -8,8 +8,9 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac +import TelegramCore +import SyncCore +import Postbox class WebAuthorizationRowItem: GeneralRowItem { diff --git a/Telegram-Mac/WebGameViewController.swift b/Telegram-Mac/WebGameViewController.swift index 66ce97017..3e22c40dc 100644 --- a/Telegram-Mac/WebGameViewController.swift +++ b/Telegram-Mac/WebGameViewController.swift @@ -9,9 +9,10 @@ import Cocoa import WebKit import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox private class WeakGameScriptMessageHandler: NSObject, WKScriptMessageHandler { private let f: (WKScriptMessage) -> () diff --git a/Telegram-Mac/WebSessionsController.swift b/Telegram-Mac/WebSessionsController.swift index 25d191c97..0039afade 100644 --- a/Telegram-Mac/WebSessionsController.swift +++ b/Telegram-Mac/WebSessionsController.swift @@ -7,9 +7,10 @@ // import Cocoa -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit import TGUIKit diff --git a/Telegram-Mac/WebpageModalController.swift b/Telegram-Mac/WebpageModalController.swift index 2fc7f8c00..9d72af546 100644 --- a/Telegram-Mac/WebpageModalController.swift +++ b/Telegram-Mac/WebpageModalController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import SwiftSignalKitMac -import PostboxMac +import TelegramCore +import SyncCore +import SwiftSignalKit +import Postbox import WebKit @@ -59,7 +60,7 @@ class WebpageModalController: ModalViewController, WKNavigationDelegate { override func measure(size: NSSize) { - if let embedSize = content.embedSize { + if let embedSize = content.embedSize?.size { let size = embedSize.aspectFitted(NSMakeSize(min(size.width - 100, 800), min(size.height - 100, 800))) webview.setFrameSize(size) diff --git a/Telegram-Mac/animoji/celeb.tgs b/Telegram-Mac/animoji/celeb.tgs deleted file mode 100644 index 98e16ae51234648af845b40f4f779118eca3ad41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21630 zcmYJa18^m67p|R&&51d&ZQGjI-mz_S$F^0`O?>LC^}GIo zj42cc!`xq$R+s=C2rUsDwln(W`}fnY*XOSkNABmvqC&3sh4w@F+vAD=|Hn_2hqIer zzrPWm@8W*W1xR1-kBN&Kb6grSO7y39{5}sZ1bQAE`D_gTt!y@xMIsT>mC{UlESOFf zhJ8zq_g&~xQ$xmeSB7arhM$gB=WG1=hdJaI;!X+f7qbXb^@zFP z3sg_;!3vN@B{61ND%LP&B6t=RV!-rcjKCm`WRCX)MS3 z>3)N;CV4SJC&_-% z6V;LAcm^X!*YLrQ8yFOG*)eFeoMMk&Fl_QLT{;4LHvajo`WvQt3MI3IUhvu0udJ=- ztCR7$Tzxg7&tLQEt*~vPe%+>B&iQhIbIz?#Sj>Gg?=vUMoZ`Z0+ICp^HW#Qn01@0O z6qRP?!*EhDUYd0F&^p}bk==rOD(nlPW%AS#5dh!;$-hUx1_&`A>S>`yD3j6r*Kpy| zAQZP)^SwyAG4aXyFD>O}OV+i>cmoA)1*3Mz8ub)`SQ=p2u3-^p--=hJ*4x^dfv}Bw zTFv6we!=>Dekt(WbK}A^BZ7v6-Cjf8!j*nH!&s_uL_j)Y*k%i!L%Q)*D%o_jMROy) z!!8-H7?uENc2Z5LZm>=UR2sGb8&s33L)YAX0LQB;@zw{0vY!v@6UfH&lLi->6fpxc^een&Me8>Vs3 zy%}ECvq(1u4sG-IB#}y|b@QZJr!~51<^R2YYKASajbUh}#t6)1LXa=ejk@6XXV2l9 z|LUU}RkN!1t>aS8Cv{jqJ~S^E?$^Mnvs%l>z{XthO5 zD`~X>YdFkaAX3khF%4E8Ld56@pS_Rw-Li{pKxj3)Pg8Jrg_j-%SYwtWsiD_C|}5BtIbGU3;KZ* zx*-#nkgBJ7jt~{jFw}nN)SZ|r_4<{Rid;T0753=Vt+*=ff=4z1)Ovx`dLa`xkgAt? z6QJmM+M(3CA=H(J6Lqfkw+u4%JVv2ovr1BqF;vmC(Aqd6fVoF_CA7#}~@V-g`` zhgwaTF4*g>t2d#7flKUN2N|15qAo*p%uDWzGC4<~>_|5yfcYaxVWw#$&4qE%L^G%zzNFSEl6P3S|(RB zji>NF0du#8!Z~=aNcWaio zq-Nk3rV$yUp1slX#WKjB?FQ_+ZC3iD3ASKf=xiIK$wJ@^_+_&ta{0f8f}S?}DkWb; z2}+we-_-UZ6CLP&TcP6amWe#gEQ>SZp%2mL(rs*r*wvRZ6&t3UNQJsZ`4YS>G&g0J zFWF;eTfoa=>LUs(^(qfG>?*oQ1*|nmE)L;&^j@TjL zQ4Hz&G&f9n$5G;&4mydMrtb=g>7;NJFwYFOtj65PD9KF0lzWcjeinvPml6KCbLJSx zT=rUQTdu=Qh#PfV7107JwG(07=$h+3BiH~;t(zakK<-V2+*U%zuyGxNck!h&2}&o^ zcg+%>b6qSY8|o1ilDXu!NS&wJ=b9egv*o?DtnH1HJ|N&jR7`-Nt+}~sK~pd`?`y| z6zyjTn>R9%h_dk&1bR^7z(y_M7c6|RsuuLVg9Z-+^}Y@*h#4pqtn&IXBhbmbFl#{h z8k4_7E0I%CBYRmXKS=UVCOaHzt(^9rnz*VtMUST^@bJ9~H^b(SiKT=-^Url0V^@w* zO=O9ai|nWhf{}h78<8%fpn1IU1|lR*ln9I+F0&7L7zVx5cA!EbNukJ!)-Q)Qqh0&hIlaD(&l} zo!V=yMZks`RMkVS>@3pQZy9@jROgme*o7(X$Q#$cvL;0;u=KmrVk!*nla;&E{!{?$ zmrHtQj185>D|%}s0Rt3Ct`I0Wl(xZX!a6cb2Dy~B0`V)P?`)_yh+0i@4(fkfbRJ=MyyiOWZ$DtZ$}~}JlzCy1@CY&ufKf-Ub&Y2a(p)N zYg{xVCH))~ltdYc3>`G~yp&`|onz|qHM9?ey6-}wLvNq=_+K;0Jm_CFUWa4Rq-f?V zB7v3r!AkHz`b0DW1cH5W0hW(VOX%7tE4~icMA{_&8pla~#PHxTretsO^J$yN6 z_MQpR7JI7v5k%apXDfxbXQsPsHk}=Yi?w{b=)$2z-A#^JmU@K=sn)`U7lvaZ>9MXz z>J}eS^mPoXH(WIN3=xF)yIkYPh%5iX=TOmMQ9 z0hv1?$>1p7N+xr1g_%&dv~ML~R`H&dNtZ&2XR>+l1N%h3raSdQr6%#fYNZ-^!Q+&B z!_nrJ9~pbHS=sxl(~38?#)*EVAAU#R_TOH|KYr>S#EQ!e-hH@@ypREj zX)&G&4v`Az>cQPgP4=8UpX6{5R3Sz)g7`rPa1iD9Kl6UR5F^7s0^mVee9ggeGKxz% zz>m_0er@zdv!EKE=^#i(sRf_bXHlx9NfyFv#k2Fq$!J-Ez7GaahMm7BLZhKU>Wm{6 z{rIJlqA_JaBr?jd!XJAU<08V%QY;d1Cf)wk!#+-q{8(JMG{2<8lgxRR^u}PK9-8+L=wW?@A>LlN%?IS=Hoq5? z+8@P(kRu-B>8VRunMqB;oAVxoCmq3agZY4_o<%*rYD{8omU7Unx(thn6G{^yI6VIX zYtv7JZ&{&QYgZ>9fVYsGeOB)>_|YaL3e*v~>N#8gs z?;eIkjtB)G@2gz}A5}AwpfRHsGBw(7;<>zas$cvjvhWPOPTfrnV>JYRH&J5k(HO-g>R7*v#-+Ak>L5v-XFgYS zgVo3-0F#Qf#bwXNTwuXlH!=-pK6;nMwsFV*={lM_mVlZu<1vC0ua0)We=KsM5T%>9 z-?3Zv(Cdf5P1IAzpNZ(0$oO-msHC5`wg|t4S%oD(M``w)x8k#oV-7hTNN>^uM>0HxiN;XnPxb@H>6J|@cE&?FNvd( zW7%k!6sphOW4nAIc^jjVkEL)iqDqRowP^;vfuTS5~OCy0*0$k`ScgNm@T4uZIT%?AyAf`gGQ>tSaXWqs@IGAe3*| z6w03uu5(Bpk)cA}pL9DsO}2P*f&-gurdyz|G`C(~^9|UxN60jN97o|whb{x2Nj_O> zEBH(})|wfakYnr9gCd=6yX&|5;x=^p47#6^qS}o>{0?#;?OWuDM5o}Dmg~y@5?3vY z*Gv~k)wnqBWcS73`pE{Hl2M_C(j_Yk_AlLG!cCN-jNF~ByyqGs2qCKq?*}(z{NXFl#U*L9tAc|1}|T*o6vm4LzoCi&Q`?l@^xnZt>Y$ zz=3q}n7#ul-B?RFgtVOuW5-1L4OVcfyJ@({|CD31X)`etHLrP{1>@#!>Hp2hFKd&^PCV z{AyqP?}(zM0E%m{|3!HNRD#y9qohmaMjj{#F>MGR5$Sdtj*aNPW2tI;*Yh|OsRlWe ze}QMz@ zS3@Q0qg!$TmygOV_BwA|+1)8~=`>pLK}t<%anh0?0@S`~i>}7KzCHxrc*+;+xH*x` z*%x|Vh>^?QJ{QRk9^1M6{OAnQ_WXQcd9cjpf-GPfXNOQy{Nff?LMc4(ihHUF3soVS0?3!zb{~E_N6aak5$#Mjta-lc_%1GZ8P{xV*p|^j&%MSxq zO%V3V|J!+C{rGoU0RTuGHB7AkPJ?}?`&Uh>e)0bAG>F(WMcmH=s;ut~teKaPb3CbO zGQFuYyPDyZ`I3@V)zsc3)jaH`>tmgmMJ~X4BOkN={f;d;U|;Ma*N!QfJ$(xnH~E;C z9gHV@F+U$e@17KDg3(R!5Uu<)KW|WRy)xhaZBm;v;Yoc_?%h|eLrJY^HMfN0+zh$( z!FJkXeZvmqw;l0J%x+0>pg#|XESiV1)6efOQ;wx3sE`|CBE1}(*EOeO`S^sQqwL6A zkOcyBSj(tjq-8-ZmUKX}BRq;N>wftfMoj&c#F|Lr=0PUo=3P4^V>fyO*}PM=cb&L3QO?+7?D z^ZDG&h|2)ShHyp$IWh-Py!IlepB6xL;RBcsA#VwzdfJ#fg6>UBY7-i`HUylMl(LE@ z7P`@}#LCI+GKT(pdBua}A*N3>e_5E=c1t{TfnAm?D$>FR^nwZl;m zDRR4PGQ!^2J0Ju)up@W##9&z)&#>HxML170rgeq-tWyiK&n{#D^u)Xj;N4=>mum#$ zo&!NTYfP59!)-;)NZ=rv_}8oY;@kp%p+t`(reVpM=Ex(rO%-kHg6<+t&K6x>e1Jen z3}lA{4-lhr=Z`|aMlW(?mXQN*i(pHRV|pm$RG2pq#W8e)^n>OWE#~AP*#;`f{&usU zX5~bCu!QfSFEbJP;!}ha#jGnOU zp})#<^5;g>_L=S9y~%n*@F&L1nk~@WrblF^2~O16_90z$gur9RBRk-W?~pG8j4s@v zB-dW7>t*T6HS8dq_BnWH(>y5{^D8@lq-pkVH{hn35;7W_S2K$+Do+wr`{ZTS+aeH2 zMYdc+5}h&f&{&<(U2Ng7gVc|w;qAbeY(U5g0#={5=}KB!*e(qO)p?xM+m?SWGrjz> z#59~@v7tp=jjlsA!J*G#snSE&7Pri1mI?jSmC84X5{j>E3oYIgKGL*AXW zy;PL`;I-zs*W|9w!k*=$yd&iAgf^2h#V^?g|A9U<`aZM_v!@cy%U7KZ6HSqGeXokP zEw_z0P-5mqK<_?7cxB$+-zX^>^o6Et5ZlGR9`;ifp1-c{q@my;pYE>`!Orw62-4QW zyB%zUE7&G<=mBw7Rw>(kzEsLIsS|erTZjWzT<6Fjn_Ua%E|IvGtW1|2G?Xxgcjh4V zQVC0D#HSXqdN~{l)VM==;mZb|eL6HI@o%l)k?qd~r?tQ! zFl^HOU!;8?5v`uvB@fzK@wEFgI>lTWk zvbSu*bcVfORkJv^V%mVpsT(NjO!&U&rHHLyHTy$*u4AfEVfw@N-q)xxv$_L!?J}JF zZV{s=^mnhDWCXdLMF&o)&feF|ZVh4zIGVQ2hl~d3y5klaPU;B@HFQ);6>@sK*yYVd zWB`rd2cP^cBEscvfy^x!H9G{-1K1Lh9cW3%ut|L^?Aq8?Y6ohD)Z=ryYhwOQNa(A^ zHZJRHgP~Q8;%*cmEgm*|b>gtE)NxJyFy*v8%?&B+EhGQPp-3&RE)6n;Va$>ZSNxbS zOrfiM5AC&!ho8fd4Y2Ef3yk!e>Lh9>+JPn8u%{ms2bm>cE8`Zd#wR`FzFR49XvlS0 z%{DK~@mVRfsK|dWn-^xXtQ6RP&w5++F>x0(g?UdI+)-4OlGRtr1BCBHe~t&ZJv>Ts zI!6~4US9?ISjD)clJZAK_%TQQvJkbtJ37Utd8Ga|+QSbuP_;`kLnhMg^+h!bA=r>(wtj>%I0V|fcBwl_y2+_X zj~RVS%O3_aPp-bbHczvVOL@5fkaP%_f!?-#se#}Yz)p&6gHV>QqOEPh)6)<>Ow8n(Yz7z-5{-DLs^|Psxm^^#T78vn z6RJu&Mn~o5SWS{<{%g6N9R}`~6swX6mkh=99X=KezqNw32u_c21k+Iszfd?{Lh|w~ z|0^L>1Qs4+W#qi89be`5~Cx06a9zM<-Z8|B9QdKZCmaQtv{EA za&DJ$oMeZq>^)1B*QJu-(1QUfMH;J#2119-e7^(+B-|RZx`xl#_DkXDt|%AkvhoZaGEkDMM{JUHPyeZ7JJif3GJZbSqp-$dogbvg8150erH^gcuC;r9)lvk zZD-4hk9bWDw@12Cv(O-IAdDN5Mn%-V?B`HIi$m(7f|_amEn_XFCI!57B#N|E)q1(J zn(2}nN=}rOqYalt8Z$@C{BVZ8fl1&bkiK_~YJtiA_g2tIY)=N4v^I8mKp_vRD>6FG z&s_i}nK=5!#_V*DQ3SUg>#}eZVHLXCc}`LwBnY!kmwGoFbgf0o$ znb2~5DqkBObtK%u#`HrgA??zY0iVUjnpXfqk9;>*c@L-pkm7fO4vh+d?Kq4Ft5Vku zHY8^zl3QQEFgIO?=}Lt@_tc0q9FPE?x0eEsVY<%&llk6!+)o8-cb5w@e(piCQ5gb!>UMYTko3uwT6}J9n=yeP`nl;F(lCBa zCy`IwBHq)1V$he7GZFe3Sykc=5M-E-@YDN#zA3I$tX>2y(C}r6F=guiQ65=&Aw zBoUtSMYO?E;_|yPzBfNPafl{7b(p~`;HG$ZQ%rmW?AK>||iA!^~g~`5{MSdrJHujC%YuIi;%3#Pcoum@P zCUNiLj7x?_KRcVLz)T@Qg?L1WEOyMyBZm7vo%0o5%gYx1sRx)ZYXm6-II518NXr$#9gd5|! z(SW_vAb{ZNBb@)|_^Ar4$%X_NeYToc)=t`V(vY?$z^QtT-4hlWLP>aIU*6NU@;K~4 zzXDR&=A!9+4r~L>U-b;+Yc&Qk&W!Hkjp3n$9YSJt zGN418f8T1Q&J;V-rv=o|^8&-XEEK3bWY!9%Tnf1$yuFt3%mdk!pyDnLL`Z|MexUpX z2IZV0G6>Sz2qQQqVUstDk50>4i62>tCcZ9=FBOmjXZ~uTTqRiOAJQmzVHbh7>C;VN znbIJG*##V^739To$e7!uRNxfv&oG3KXe&+=m^Qb$e zM?kqZb*gpLVhH1!fkJs}R@*FI@VT1%*CJzR;!&i_86tUJf|5CJ)`DSZH>M=d9JIt;shF1smQ;TP_(R!6l zHc(y$Ha6~9?v|#fx^DaPi%c~*Sio$OS5-u)^>X{zC5W{R8P>U9s`$1kKgsQ{9`r&XM zB8tHh8}L@A0i|5hz3NG>@{=svIIxu z(2+3$H9ZzCYjc2+P2dJ8Nj;qmzVxlj2Uf(uF%S)&csRKTSTdXEq6<>m? zGZ%zpH%pV}uL@g6;LWmyBqssZAF;k>)K)SOoz$~vj8t*tscs4U)JZ8J?E_n;@mn?o*=YqF!FCm&`X(_vI*`mD#g z(=1&6>`lHd;GO^Ud{^2g_ptN%(x#&*<-d)di#B+d&iMI5z?*Dv^t`(EC;uk-5mKwv zjCYfq6zf(wpzZ@ONTw5C(DY;Cuf6^zK{lzWF~rBZCN=PT5UeEt}3i zIV&F9&Mx1nl^`vteFQby-c0?ZWHj#kAt-jF%1HOmisPhnpbGjSZ=#sgQ7M37O>#<1 z<80XMXfxsPg_1Os)q(gBSe z=zM52R%YTyX{%T^PCEWa*?LSXkPunW znnVcm{U!oV#S$iW1GY0x3PR0NV?~FdWUMwvtl3FJS{Kk%s5sF7>a;xF*7p(1J6X&B z^raq>=)S|S0)@9NmhWjKI}J?s8L;)5Q>fvUyz!3Mq63=wQ`ieM>{Yf@Mrwt)5#pY8 z4jbX%psUA0mZUFX7B&pPa?y>UtDn>TFy8}Fc%=*@SIPFdg_rTP7%nLvHU{erx-^4a z)}J=Co&loTj>urdF6Jk1ATrnHH?$^dO!w3d@@pH1Nu1$nMIrgLZ~MMtJXQ(?uuHo^g5lMoL=5Wn3vow#<%h|ouY zzZSS+VQ;(!Y?JikEXj2u1oHm|$1XHvR66E02NFd zDVY}$=^w~SW5Nd|g?CL;_Bz(DF(87H4X_|upfaVG&gwu|FJKL5&;MNxs3@1gJD2(k zTpY14#xu$mbr4i5&<;fxS}prR&BAR)@1vA~!Fvm}eF}|~J_M(>gfFTHE>Kvkfa&~4 zAtflPi%hpvJTC|ip+!6C%*uB~*9xm4j^pW~;wC5r>*Omy3cdJT;EBMK5G`e(_dbxL zzsfnLmxW-{xI?pSr`4A(hOd&zBv#Ro(Y>+XPcDvuhle@ z$#6Fi7-9c@=H&LkfXI6X5y<~f@4or&oBz`@GO=)NpL&U%3a{?^hnK)w7<9$K%+^Uq zw)KA3`970QPq&qr?bV>(1-|W7k)8!%^;wuS^T;zC6&Os$HK`LVHyG*1m4;JrZh>DI z%|L8vIV-^Kult%HW*#Wx)F+EZh7?44FI{2kw-(4^^GJL?M^N0s4-l z)j}E4GSrhB6!VO7Q6!N-pV6#kU~(O36~(yqa-C|}VLZTp-kA)`P3F^Ez>TE4fZM4Ez3(&`os4*j8C~L$}`iH#`L}(z>j~ zcs*~y%?L@VNFuNvf~@KS>(3)cGQ!?K54lZh67MQ~|iucRrk#w{{&u z`H0Z@c!R{*em1u4f=GcG_BKi{AK_KYTVKeXwV?H8m$n8sw31eb(<@VE5wYVdwzNu1 zTYjI{B#=L(UlPpK{J4YgbtTp3^^e?S=GdLlQ5Rc-7g92yGMQi73! zQwHAy>x_rz1qQw#0Psyb5&cK2VAb=#vzs-iw+a>cDWsEX4A70!RX(Y}%4W!h1C+|b zU2ey6;Fe@(mLi!0R~#7}kR3Y^xzLQY&%;$>vwnaB*{jFAUpbSZ6+UJQ^UU*I!>L95 z@gh^}(Fa3ChvsV@#5}5w>4go6UIecjl-3!Nng1ethl2gs^A)ick0e+1J@BFOnQcXW zhUJ#{8N9-adL)~75wW=+=qLL3Ri=jf55Nhqq|02WD)Fa5Q`d!67uK}vTq?7Baf2pD z0C6_8@rEWw0B_W3`0ixCjRk!)H}YU{9~OO-Fy^3q|JBK1^8$D7xK1p=oRr~(~72GGEoW4#=#lRE0zK70A zVO1T%eb3{h$Nmb5=H>9qluvk<{u{m95XOOyD2|0woWs{}Jwa%yN1ew=WQ%;aiN}8; zVoP1hY0=dAV|b<3?c^(uKcilY=Q>-r5n!XIcL|Uvo1DZO{~Sjo z=EEqQWhw6f2}pbYPC}Lq<@u_N&CW(iV43r2!5P&v7Zd6Y{+Yz}lV-#;|D0k0r5+Wn zTpjH}x%EZPuihlRj!*SpA(ED2%Ta2e^zL=lFz>+UNDSnB2O*LTG2-|=E&46qc~1EHw9S6HgUj!UvG~- ze7I+RkfhNQH_3FVgOcEM<`1Mb<@#V2@w+^I&M7D|jlBK#${?Fs9;?|6bQT{b=*I5f z{71z3oav4xQU)>pHc`eh+dPxFDfc?s{c#I!#nLJ?KT<%CA1m5)dl*0V(#4*m9l6~U zae*M#>}HrlW1_u$<5JIS??I#5!Q73QuwflXUD9m`PvjwjOWME0sl7`FLpV(SIDche~Rq*P^ zHEjynFnqkBQ{l6%3#*Ply|^GTlNGpDAA{8KJce-hz#U#|Cw@ntL|4?u%i$azl;6&Rt#)FD)(xd!g+iNYVU8St%XL}H26{kac z{sT>iBtk#opM(}fKubbAY_bqe$06}&J6Tv%9=l0F)>JWoc8(mNjo3!JvVZsa?6c<{ zl#DxRwyw2qRUn%Y>-^ZiF-h?^x3GQ=2j^c1f$iz6-)-(>+UrFr75QF-K0|Wj+Z4_h zCI;-}NkHFgI@!qe2E#!EdteqOK`}+_JS7dAr>wf{p&ZiL6iQ=Q@aHlD(l{nTpl@sB zY#M_!LHD$x@E#!JhSl{*eLK#L%>UY@f`;z&G!a&24pOmls_|WvBDKh3#YG^yNfn=+ z9P;6*{wDLB=slh>K~67$Z@TD5HzH|f{Gpi?YZI*qnU%R->*~}CuN^7uAx;606tot( z1^prt$%}5!s>X8K_#>ofOqpeAeEwa7_~3RMzaO~=Wxl5K?o1B|r39FNgO&w`%}9L^ zMZ$6$$**o-)cN(f!|`((2D=EhqCbuj4j_s1N*sTaQ#wqoy^0{*+;0?}2`F9Z*@v91 zwbF5m2)o;yN{lzVIe!D1UfKC;Wd+o@%(ZUbx)C@C$srnOtA%5tLOr`O(;-$ z*l_XUj3Zy+Q0sIqsLs$gi`=!dZnjF4A{7XSL4zA$jE&k~h0HEE@L&s|qCX=e`Sq48 zb6!vp_{X@ea6gZAT4JECVkYz8BsFs16XY&VcW6U^3K{p4v+Yl1NrO5BkR48+#&Q>< zzzh{_&?5twd2Je^bx~Xq+~XCZqCz;YAHTt)8`Bga5}VnMHZy<0kLnM3KZ<4jtmND$ zmZwI*b3j?#!*obE@#+)HBDExNL^+tpWWvj>4<2MmvG*Q9MV!^xzr&W{H=li&cp}U)%iSoKUV3pxxI|U9AQt@A ztD@UKTB#8=o|j~_0=Wd-{BmC0_go@(o6*Ru+3<4oHcM2Ozp=cZeCxK(X58zoOvjYt zENOZ2pTl*hW8t}(+Zb$R($CCIBmR|Tq@4M?$(5XS``}iu*?DV-3_3H%CcPIq=H6UF z)W))*aPZvYlS<2WwH*d65PX4?OTp?;B#|*qO3g{sin&q2PVgGXZdJLvUkH${u-J6j z0=_qw&-KP0rdokNZ$-(LGNuYFWLIH;)A1C0TBZ~NEI5;xh_W8O(N91Ct zu`jqLx&s@Lc(u!TZ4QU%ngxa$@eTI4o9L&QRs)sIv%>t;ym+Xfk?d)i#2~1)b0w;= zNjW3|^9|Nhcd-Z&vvZ3@qn~99ILaQY_s@azwL&=-slU!^Q>%6n+wD^X%x0H^yec3| zP>^dp%7Vw{A}1@ZbR@Kt(u7PAvx6u=RK4WHtu2|OMsVg3Ebs|`b5c+vRdnJ|c_j)9 zQSrc-Q??-Tw`6c9fZMY&zAM$kU8>`LHTSvF46mAm&cq|C4A+A;zC9I1PURpyfcH}= zbj5&Y4`Nl`9iatH&;M%Z8}Gi+8=)m}JN0VwV#PD;$UD<6k}kC)sOiu`vk{V->P#z( zeSExNK$Frp=~ZxL8BI|4-g=A4##%L|&_YTs+S6g(rFZ!%QH0CYm9w2G_|kUp@cAkc zH^g^qa81hWMZ5}f5#!GVKV94Ls!&!o78NHUQx(orbKwI8JsHX9*g-K%>|ry=a)iRg z8+*e0jCetW#6>$sLpjIA_;UaEvOHxzUF2fibT3^1j#J!h?57=b)n#a7_|^G*WCZdS zJ7Th(yQfjd2wRL~ZY$EW8Q*rCA656?`IyM_IZvrD43xSgEC}?}WWxYtu%;6SbS`KZ zS|(a`*{>tH*{oZY@b7Tw{Grguu*u)e@(?*XpROMqNOX= z&*p%XmI%jo4NLtyF48gGuKSr7z4%X2Jv#6}EYwAkx@FrJ^Z$8va8(3JioOoqrZn2OLm zcS(9fz?=$e&`YrTF5e!TyMjB!w_g|ZGW3mi-{@(!{Qz0I+_>^UCr<}D z!|jUSrjsz)B^FI(qi*vu61Pm9A8gbw>R{lCk-x6z8K-}tIX9!L?KUgx>3YYQT%IjH zoG@IzvZ?(7Y7pI0g~Cp#qhLl|GL@nR+vw&pCcG4c%)WB?sf1WYFrGVU zi#}pRX-xl~Bs%(}bWU9K+lRa8hZ$;;dM55c zm!(yii-$f5x3A@18;~^-bgVs+el+-Y;xL&6Dv5*s=fr6s0)>-eUhpyu?e3gVI_2>& z61$RyDFPaWKlwebos*VD0$HiU8Yd)V zN=8nmo4hTRg6=rW6skO zK$!cxUe{ZCQC9hV7qgx8)CAQW)4E;6Ri^8iu$i4{OXy6u_kL%wzq8+soB6k}I+R_o zn6R~dA>WOg`LEyD1B)qrGZnJE`{wxx?3sQcJ2NZNfL!@On@r~%uD;A}b!Xu&|7wsM z8sDN^M9)9<@x#Zd(=9BqB(t#nR?Rx(hdl9Wm7m$lhmhu;Hnd4Ce<#1F?`!;xvd>IEw- zm!Ft2nEcyozdsCW&!9-i;{-dQ$#e`2>r@MW)wK@{63^@G8_u69fhO-tnuBzVBZ)ue zJS5G}WuV+2 z29RrzgxGc8P>%~G|Gr4}u zIApq@n8-k#h?Ak>QyO9K9I69ly2T*k&|`ioR`b_Yz&gf?s_|hA9rGnj_@rP!EAWj|D~#9`u}Z|{B=olc4@7#{jF_rUY$ z>9YOPabIsEJeu+&FnMF!4z2;5#c9+#?j%;+C{s<<5}YpnR<2b3;RduESyVtUj(%kR zY8Q*;G!Ndq*oZ}K(y7<9RSyPh2{S@GnD`Clk^G!|GzRMC6io!9M{#+q1+ouI@z2(3 z8zS+3KJ#BH_aF0SKlN{!uC9=I4ylg|Yxn=4xDKg0f8JK6#qu3H#H7ZJ{HR1kmHHY;uHp1x#>0cuPlK+kcrVD0wiD9c+{|ufPMbf zG@A`{y>{yKGA%j@_XuQK+0$y6ivw$3+Ht*kTz;AE&$eMI*Y`xlkN@m2=S2xpAGX zcM&{;TwFuqZqVT}8C6_m51_s$^7bMQ>z%T^CN)=L z7$f=Vrp%bnBu%8qO95oMTMx|kD>KtQih0ZI20PNR%`1mWaFp);+HV;+Bd^gF8D4*X zRQUT{Zg>5J2Zf$%DQB0fT)vrudntuz8PR4#2~Db`03sJmpm#6lC5`Kxp9Sb=m_?rp z_4=tsh<~P{UlITXf0eq$v`=n!F3NZI0x=I}9u~fe zNbK|dEwLIRh|jy1AI5cwM>g1i=k@j2Pgou6T#u28WqhY#g8e>ZJ0;!@j{?^9O=cu1 zYxSq~DqHXOxGIJJe7FI|b^woI-5!+#SSvW{*kGqoA77?r8x{Rsc;6*-P}KP3Xjrm8tqt$ z0Ejh@iYDlv-oM3dD(p)LvTO_p0pc;qy{rRw6l;nxks-cBy^u0#69%-@hB)XWWnc zVQaxf`{~yG=+Ar1z3r)C7YufJp09tie%>EYu5jVh+?jPxknl0Ko$*h9@-pWR{4*@u37Zs`sajl=-fD)@4 zv4WWEW}0;zc6I^R5lK&Az+Ok+=rkB zE6;-)x%K5YXmY3Iv*E^(V$VT<27m~zH!&$*YIAl`8=9R|a+64v2=X)n2dT&@N%nH9 z=yV`+Hb|=wbeWR@@oILzh$NnJK~5xx(Eys<+u?u-tsBRu-{53%ItLY#i`iseEx1*T zvYv3DrYfzYCPE$r*F9lsWa+rgIFj2#v*0moQqIA>IOm; z7nK#soGXXfe!$9rlWWZmQ`=_EHw0QBv3lk>8VKn7S_Zr>1A6!j6upfSSYo^!BWo*) zKOe=TV+%OjsDUDy)lx#8z-jSW3)O@Rwlz{ef+(DqO6uoi7letyv)oD_Uiz|RnM>j* zvURzRgQR>1zLSxv4Jg7c4VXH_R5_uLsUQ_%p6H(F3Q;@>jt7EGb#%6LoeabKVOgyR z^?ZbKl8Kdi7AuKSAr$h&bWEkf|Ags!D_;uENqB=o_#oOl#*%vML`;z9SQHIlN6LuX zD~`7*;-jDn%s(o1R8(`paVfuz37c*@WQG&%irnK`zQiwMX*8L+T(TL711YQk81YENMKShH4DIeh|Mdo2 zKBKyjM?gf8SIb0{qk3A2+eIf>Cfyz71%WR@MaZZv?aqNwV*z_C`0}ykD6pn%7^7QVUrm4Y; zkaimT<2Dnnr_%R8bhc7B0zyjSD*iFWg)@d2LE;7mGcrc)ux0;mKZEg*VGLJRPGo~1vo zPC9ktP?g{Y$9+lqBE4KJhVV&?{GSboPN@hlfe@xknLrMH93Oo-$yPw(yzc&^u|)%S z@={r<%Kuj>DulpEkLL4?$E2?kqm2X&i;Q##L*ZY(oDIf$n*`|{!J&x<#!hjL$P@SI zS5OWfR0N02^&}_L;Bn|o!o;OqD`e$+xd92{s9biZ2#AxD5Q^x$Cas87Do?X3dM^|b z`0xkkR#%@@3{qr#8$P^C#Dc7%|?=8!yJ~2 zNc^7O&>;UxVG<=ml9KvQaXusF0;M+t0fVc45g95OFsBS^iX4oh2BRV#_cLm(ybu>L z!}mh|yYFKw?4kS~2Hq;6Kb@7s^cFx#g!dUG_0NC+o_RTnM4b?=R~VLN{x`62XjWnw zx7bKbLK@d$6XO`f0!@dH_`0C9CbE{%Ua1t96Rct+01o)j<49l}VZH8TNe&?7C!~|s zZwVqW3BQ>Hw<-@F0EswT!k6R;mu1ehs#6yW_ieGMvRQcW{Yc3Zm8nWM-Ycb($G*C8c8N2QRp<1g-%Pt&}k$MoyOwO zX(SJwMgq}j*10&8J$kqF!cbOR@T!xA9Or@cq7YFXA51R^b>9|2sQk9dLGNLy9E(9y zDd;p2gHB6w&}k|NoyL;TL=ak(gECtvdO3(O#Gb_5Cj^CKvN0m zG!=nP%QDbuDg>RzQqWikT9kp15>JDj2;_iK<}3jLg@^|i0SFjG_*Mm=CkjC3x&X9$ z-l^X)v(xUIb=ntK9tavJvC#pH+olFGI0EQQfINp~1KISBony14;i(g64hx;I26tnp zZt$E}H~XqtddS(xq7w&*$P0*wf*0~gd@2R{ExS>scW`U-d)dL{AS+`f>B<;k2aZp6 z$X36?!FKQF>j%fSS;C{}Z`tl{?9>gO(PQ>iv-FSwdKm6EJVTGr6(r|E9khuv^ni!e zR`hsh^bm32Y#Nab??+Gl@EJuGzHF8sH89meJDK4?u%!j&Nh5P$PD6}sqYD*D-Wy3Q zT7qzuAMOoOkfa+u^}_=snSa?VKWcy^ii@btumqhb1mD1Q%p6U?qjF_6?~W$Ov6ntn z_|TzAH+t%a2WT??vRQuA*|O@n8qX95B562cLO~@m^kbPK328i5S0s6FB;o!_qBEk= zQbCe#^wbXzkYxU4v;3$tk|0gr&XFXwUSbJ#;1KND9jPn)Sdru%k;LdWOEfxvC>!37 zp8DZ4k}Q1LEI+D8l7up9VU7ZpxQV!Sg6BR0Guf46XDgDtGm^O0Tec+ehYm@)(NjM> zK$7{F&GMtpNTRuN%?wFm*Iz^)4;?miqo;m&fEDvEo8?EHvBb1<6_>+F zi_7=b z=>74H-iT@+S+omkbS7`)(vEE61vRR{`-d@jYnw;rY{7uu+|BLnrr%au_m5-iMyAZj zkX;a@vvg-SwuH;q)y)0ln7Pqbdt}8H6zHtnDUXfd1wpEb`-d@cqwV|1fL#!zvv4Oj zwt&mm)x7<~n76ghW8-zffX=!d^Vs@bq||EK{!vWZI=Hdnx*$kr*^Yi}`IfJ%S^J}y zwKa*GBcru!aBtO)YHal``(I7kKa5FR&)G+B&kmuTsj$_Y{Z8g=H#cY7i8=d^)kL(- z?H1I{Z69Wj(4}alr2M8^o-}=w?TbdY#^<*@sq5c;vTe-fEln-rJxes}Y7usLh}H#^ z6Il8idTeN0ninA5NB0hbq*i0&NzmjDu&LEOk{bLg}yGpS%PxcS5z3ujVv8xrSdzY7Ka(Z}q=;9FLnasoMH0x)+TX$}s^KRKZ z^WC(z*N}3*gKg8|al==^zac~UjUBg8kr6q6#1vy%?c$0uXRtyV()4oC5fzUhI#OTn zdbQLri5GKgC#3L^8zH@63pK63)FW1d0w<)wCq_pR|W6Vqlek!}v{W zQ4Dk89?RtF?j&JRCAD@6m#%1*-np01Ec5%NmU9_EBw#25Zjp@?>_o!3&@6nvNl{fazqSqfhh?cpjBeL9#|CACT~`?~7yNlc zj=9vfAWEE2+rmhWIdRQem*8sXg=?*rs+jz#55DNePvEH>eH?S9^=e zoXH0|Wd|>XoHCcipWQ;3g9_)@4Oz?WB6AQ+mPs&N5q4^g7LmX`pbNLmj^3h^$2QKI z3TM^AS?SNOzu?Z59lC_PL7)lVWG=H&jBFMKdn*23#oxsC51<==>hZT5Kb^lA;_t%O z&7}vPJGvY0VQc&tISs5OC22OJ+*Fv|!YK*n-dHmzIIn>VPc^annTge0sus4;^7KM$ z&0%NF&Q_-_YD=S56YaDKNm^?D*6W_<{+e4GcrLY6rKh{rpjVGpnN)?a?=+oZ_M{!r zSgw6;P)X6>FiqF?bZs7I-o9#=<{3@o`xmmLU2~atOVl*%Jx@?idZCb?^FrxaFOi+ zUgRzk${5-7oX%^m-g?pq6fEt;&cfG7x)4OE#;m(ghn?J#BrWB0|L8Str~vdR`tXp@t&*_arS)rD|aHk)M= zLnS~P@Mc6p1be0|Xh?vDglUndjj7KP1zDmrOI&M_yXlUT$yi09!wAI-V#-(~?nIqs zOvz~GXhitUdRa!fAj`0jjNgioT(P1$)9=D#%dH;sxe+QCAW*Ie?I1RXd!RS5zaPUA1j(;g`v@87Q10=~-n6ftR>Vp;cqS^i*i4$*tCRXQPXrXJbM_ z0i6?3?Tqwp4N|N<6P%USZPVgVf8CWX;2poz=(_CfP>airZ9^DRM{Wg>=O~h-=q@ui zQ$(dq5)z{glGAOWa;8Y$9+`pVKD0Y6yfnCqBgfF`NWK9p^k&*mzVBbp!7Rfr5U^*H z$fXy5K|kQ|vNXjVqg&trUF%;+G{nVSNO?HLKp3uEPZT9@CV zPg1Bjb`V~LZE{0nzzD}^&mgPkH0(_r&?wk0{($ahoK04z$i*n`l12oOM=+2I+A=yN>2u?(QmLZT26Q6%R+_B4vmkUr$8R)cAK(zt z5D3&~=I7g>AyAvNBv4CttUy%eMrnzdq);BBT1izZ^KNJ%y@dw00ODlPG++#8tO!uY z>=1W69dTxQX_G5t300;ju$L>Ol8$|Ggmw&G&)AxwyNskB?$2%qVvQ!O@My$t+yGG! z#$>GYP#a^41A?#x+xG>=H)`bGwVAao?};>3`te>;3L+*Y|G*996kbhj=T>W0xAefH z8b#W*MbO#qIa@-WDONnvb5_aBBTUy@{yiaN0t+5SLy&Hbo!Yd2o6m3>NWmALuSISi zXms3DR1GQHVz?Kg=g|_B@Xz;F@&sv^qe~WqBy*GCbc?#@vgsmNZZtEXZ7YwFbnll< z4}9DR1b3#@_njgow*I8N>|jYViZ+Nff-jAQHd2q#J;!K9b(c@Y5;ogBtT$gyA{fqw(1{O*1Q9j0MlM+>cd&8SJwKEJK%{~NbT!pO#Yn#X$UXH0pxSt3 zYNpt&IqX$$Lb=5p(Ohh9tYQ8EU#w}=M7U_?ws894cp)ixUM zvx>U*PM@cP1|bG&P;rld{QB2_p)WuE`)|Mg{;%rOBt3NU%2;;eC#_NbiA+O7kd?mx z3PrsDl}`c`t}j3puR^8wf{IuJL&b%%zRUFmsM1xa%x+Mn0#ztbrHfGIt5Dg!pmJKE zie;^wz66z3SD|vdK@|&Bxj+>!LZz=l<@bULW!@O7C{W@00#xQIRAD!$@&u}jXVBW` zok5&ErdO)at6(mI<(`M`A$4Hc0@lS-X#G{N;$C3Iatc$Sqw(@7yiVQIrwhsd1u7yy z%bafe@$6R7yK+7+uVTC%-n+R`IiK1TvSBVC(DXdA0fx+A*+OG6Z~?6RJi1}K6KV_6 z*^4LCsoRgj?nq}kcugm4T!vRa@8}|HUd}=xbQrh*mN~%LwYuB(!Y}MaTI1~V&aUs| zTVKQ@e^J17?sfrp_hk$ntqFzJgp0Js`R57bzN0mr?CUSm8W(PteRp3*-Ek6AIElW< zNnCuMtR9L6p}G3)cNw?ikqeOcuu>CM|We*WKIxcEt{RB6@kpTBLMtu?3OW2!>M&T7lO`6QZFD(W1)_>CV$dib$Cpw06N z_^;(k@K>rx%Pv@-Dw4L7kt)-jxuCkE{n4Q_My^rKNxd?17``@8U2g3T+0Z#HudLyu zzBrX@aSc_payPuYuJDt3;6oSt$#2aTvmu4-oDWx4G4G5lZzR9rs?2p{dAuXa-GJz2 zk6fx^i%uAOW$~x=!o&f*8}!1G}%0OuSH?gr6}BHC6Z#>rRc=+*IkRu zd@TystVQyarKliVtTbz7((($S`_EK&IaBtms=V%~>E=D%!d6FqWd-IqX2{g`zRv6=e)X%X3sVT3Y8tt5K^>nM!G| zXJX?KvEj18K23!1L*Ze4l5j)m=M0P1CloH-Wldj1%6K~EAj?Y?P9o+oA&JY$+0Dq= z+>D&pCgwsGYHeCBCAVi4eF`m`VeVHZWhbs#n~xK65n47N<95ND+&6EOj`!r1|hjdu)8H z)Cb!%ElFiF&?;_{Yrc=`8Iw5#-1zvIc{`T_Sx3B;F zf*JpTX7lf#e}4PIFv6Vv{pT0XQKNZm%wERRB8;q?rQ7AzLlZ;U~booLGKsv3> zyqYi7^bN3@_|6ler)U+6zI3W2dD5G*@(;56QhVNhnq_E09l6(_`c=!rRU+ z5J?otNyagEpdI+a+iPK%-9oc}-#= zHP}!c&IBjqUjd-6XDWZ;#>yYDEQ0*i${&hxR;{7^K>(uV`#!Y41pVukzXRiQiT2lG zVVO(AX&%?p{(>Ujr#IIA`bwPJQu_-!cV$cMuZ-8W+F$Ie*;Mcdz$R zbvndd?fWPxx*dzrZ7oN)GeLSRM^D7)B`JC=L{DYtsR-RpWaxGzM7N7lGy}-gY9E8l z)mmRdqNwJ#7V{47i5c?5+SNL|Qt^`%rg~aPTb|H?SstZ)H1=G~(9-wMe zrR+JZ52n`k2&q=eUD>;>vKQY~_9opXbivdr38YHP#W9#?xmx16bX#-QBr^5Ek=i*K zl9fDxTSd#J7Z{5LUZkI01YC*p=_J#z9fB6=^hmhU$)JXefLY21DNMUkP9e)WKg&ka z$x>JK5h`>Bxw(<;q?H1H1`)>%97=+y9F z>|52@1>hm2R|#NBN^>DfB%Vco`B0UD6l-l&(eM>IUKLFAZxU}xHRtDw)-T)YIh|%h zLU0mTHM305(wymRJ;^dV4JeP}yjJquFvr521(V$qfx1h)RQ4=;afVB7P5e>OVy%ZM zE+3(Mh0HQLRO0VIwcO zktByiZc6m7I|yTxAY!6OLw}K|A=q|<1X7ZymZ1!!Bq+E-*y*E4zq}iY4S~=-R2w2! za^)oVTl0rWw%tIQpJ1vgBe75!SB=T_F#JIGs$^C~OaMW+vvE`AJ@o14Xi8*JSo z|1Q}E;_|*CTbc-`M`TOAO^(~?(?4kJi1yq~!_R9OKyP-Iv)%a++5za@dO=`%JDq*U0{JvQrS zkddlBm?W%ggaHe-qdr4+sFv<|hPKWz8R2(wHwWu0IyAVfO1wI4;Osg4kOJm2XHcU<0~ z`eyJY$z>!NRw)In5I)RuN-ccE3cmewL2LiTBw>Avz|JT(VH68``HtyLFukNI@1Q;x z)R!o%JD^Vk^nwn#i@!(3-`9O}%&yB_24?K-0jiQ4E_6bL{)r@EWfC(?=Dw1kvau}Z z$2J+3adT7^pRN`qU|gcU2`O=;SEH@@Dq(5iwHF z+h23B<=GH58#R1To>P(Q>TWm_Bjr6QZ=_F=0!M>n()k-gpK&&)r0uz(^8jp$Jy)lQ z*c)`yM^SbmS?eUNNea)AsfgXuIWzvwMLoCr*5j9SRx50c-yx+(t2AXBLXTe}|5$%T z{J=3k=mFe67r^#k^a;7p=U3mJf>S(z^7bT%egx(1-XZ-As@uK7`QBBxdysZt&)Odz zf>YjD>1@D;0cS-dK}9NTj@!3~Pw!8b(`wS31-PcdZ`YvNtar(&DQ)g&iD>n8no>! zs~zc&%x+3*TapJ3w(zo9E~>;UP&nx*d*tz<7s8@%tbiE6Ov&PeVw`7bJ-k)Nc2=Eo zzIEDfG3~K9&{;9-r#QWb8XG8Ztms%5v7wl_`%x>cI{9GrgZA*0D2Vg@=+6q?LubIB zs^_OnIpi}h?E^x)KJNbL)3z+>kp#13mUk@ZdFLYJJe!R2^nc{#(?lVolP*B`J|y@3 zdz9uV<>$Zgiud#X@$FE%!Ty@nK5YQRT#vMfL0uCRSjYs<-MM|OV&pIY>dkM zhQ83l7jU6z-ET&$s;H`FxK7c^VFLig?&QpNr{1^SMUEfC zJ7W%+?ot*#S zMocUm0q|+7UKFNx^!KT4Nv=+B&tEpnMHNbSflqoTxiJg>kR*LR72M(|f?deaYJ<3S zM^wziU0=94bs?6JWCcZu&iek;v+i^XKf2KQ;a%*?hDt;~7QAm}x$Cs-C|u&pJ2gpe zB#x-~SKoC*olr$FLYPtx-QNXsuBl?7({6syKX^Vo@3RLUeNZ{N!&0Y*cdm1xA0~tl zWIc1a)57wHqbV*XM`G7|-B}zf(tvS@; z@=jM24xE|8(4~5PA58>|NQVZWSI{MS+;=vZoWmg?7g4m3t99MasaA08Ptc&TWk*&p z>JXnU?+`uK4SVBE3Z1b`wFaBxTqasvd`b18UxjETWiTe@o(D^hTApjVU+QsqCgyyZ zQU2jq;|tB_Pb`I;sqIWL>(9}%qQoM|LoJSu5j2yiPLecU(A&J6Er zW_V|T^u1lP{{2m}qbzr`byG!V8607p{^+%dKD8~$l{zth*(?`Ts6ji9f|`OdsbQy( z<|z2-=oyhPZjYE|X}#&RjTsg`uzP$AWJ-^OIe&@(u7Catv*3J<TQ^1!(s4kU!w!>q7Pi8zyr9cY@W?j03<7LS|Zu&>}kn zwcgZD@RY;w5F*2kh~Vx7hV}b>skrb&*uM*TVU?NvD+Tz9x816s&yDXDEUu_Ox>I2( z%O2fpkM6a(nNwQguhvvH%nZe1<|MwPqMc`W41dyM|DwUAJ6We(>K|u#1aH!Y-MeF7 z(#=78C!VA&`+Yxtq}4I~fnKDQXKWAVwFmRsENICXtGrd*L^kJ^fFwOOOUx2JgIr}` zG}lFp(ENyDycR|UDSannCRrDm{dn)wC}^LwPA%nuVJQsj5d(OA?5I3V=&m~?xrYqe z^|9l4-{HDGf>a+SP}j|Yvxn%q*8FB><~Mz!`R!nYuFCqh2k6=Zblp{eE-7#;n61M7 z;I^6Q-8}{9;wIr(Ea{uvLhN6VO`rytdx+0@32NlA01PV1$0@3YhCX=EEjhTmw*#Ud*#)J zA?68pEj9?&6vnTEdW4uNucb#YJ#)UF|D;G<56g+~I1JZ@%kDi#;rbA1<0FD_ZN#syiNN(>Wc-2Q zx7J1J9)0UpHg!9XzNI(V)B4wnz9n_cYCs?FC67o634=dy-^(<^W5nKq?+oq|9M@A` zjogSSfDiF6?q3PtGi12`$XgqB?~dbc-5j)c5_N0Ke&0{bt<^F8ff2V>p0Nw!Z3&vN zD!|s_<9^n5KOOO4rz0}CAKq%6Gd$?&h;_QRpN`m1N8Hcph-)zY?58942wRU3F2jh$ zbJa#1IafV=vryE4F+it^vC>P4eHa$$yNDoe(+pdL*TQjkkH*+8NTp6MXSE-0H!hCwed4H>)OO%+!sxHL@bhst=mF}OZX#?zqx zyf7J$*zJp>WIPG%-w%=TAhWv1)7k}u5vsK zIKgPaZ66`PT=^2qo+LM-PTm zXs4GVOFv6flp2@A3+B*AWSicJCgIqVjUx#)nB_asW?8P@m61x$)USxh5R zf0OS~jKtA1z%6I02zI%z_T zYS^=$Z_C6kWYri_xTD#j^pQ{^;Q=86Ani!r!HLb@*dVSFEYkb(y3Oy~l%as>c(&$v zH3d!)7sqR`A(!ktQtQrX)dXT|`GQ$PY{=QhgihvL!>BAv>`W668{hH1qv_UY@+|7N zBv^Xhh|89iJFs|VTsj!Qp{%PGxu%qzZ|Wv28IQHkWJX8=lOkRRXc?Ee7&THONpqYb zBn7zViLpgObxI*&Oi|-WrdKMZQ1(c9;L$LC2j_=^lhiZIx4!UQ@>+GIViOB;;7A$> zBFy+HIEkx}F4m@ZfCS}-Svx-M_X{@-X!xo1wEy0$WnNQgSgZNw6z#212 z2;#)lc~W%Mj^mHTG3JKPDe<&x1{@)jHyVS-60bQG(O7^fQ#RdF!I}XbCxF%r=!EBF z1mVNyXP_Irnwhds_E3-Q(!SG7d$jC3oQ*Y=U}@1kLU-&`Mkx`4wpdPx$;#CM9|(Ya zVM7*MBTgiz3#P;_qkb&lU5DU$G$CNAS|XZ`O#BsR18^EqUWt8#8%v+U%&&lA&NZR} zQ&9oORB)?N1i_3$4tA^|kti$E?gEGJjAHsADydX>gL9g`i3nPlAk2pgAZj4^!$**e zBw}^+73q6E(GZQHU?ZsuI}Lp-4H5M~DwavUAR=OiU$SHqpCh2EP3Q>$J{#RjLpUSN zv}Kk^D^rkU;!^qslm>Z=%j8i}ng@y0RHh6As~Nf)E4tH3Ss-YujCxWruu@2a(?0h~ ziV_zRSzgava&AT_vHz}tzRu$?#~ z$6m%|SLCrg%{w&=Fd~u+X7EH}MRT;;7DuGyB{B|vNQoUhBungW$UA`1)Ir!z9FY?T z`;Pns;jGK@^Co5O3)nkZ@#&7zY0%?&*%v4DQFY4(`s!d%)1dE!a-ok7Kvu0q5h< zOwD_h^f>Y`e(J&Z$d2p~2G=7^cBf(-Jda69i@W3T9*~rFFq>phrgg`$EkGv=1a={_ zjGZ<)hwK-u{fU)du<5;x*=tw~6*!DUI(8NQq*I}hS>_%)JKIH9XxqP*#L^n*?}J2S@k9(~`}yyDn3;3KWo>n>z)3Bn3dY^Xv-b5SG2A)?7;un%S-HOr{Mcjbu?CdmH;h zEZ)I(ZL7ecr_%*&$S_W4B9RWUg!3-Sv9C7W69o^etmuN4EyAZ_3-N?5HYF6vtCLPf zX)c&_b}SCX>lzWCO7C9Kdmt5f1^Xk#=|obd4QydykH%&cq*Kjlt4t1;TNWH%3?@Fx zdVvwikCb-wtw?BSwCX~YRT9=9kEJzl>@~L7?ZaMOT~VIJy=Vxao2Y1b_UZY4C{q%r zR6!@7k|`;^PBFMePY*s}D8b-2yZ`kLs27vXYN$$^6f3{u2a~d9DKvXrLDy-uOcxuD zeW3knnS8otpuL+BIlPtdR?AHBMzJ3|Z9bnkxh;LCu0KeV@YUy z@JI6^u9Hq!T-Jy|(VJ&?&+i9#e#6Z3YbTE1uNyml&nct#{K7GGO*uL@2Hqia#a&o7 zhsAI0Ijxyps1?p08Y2&SqKOylS#xxVrw_8}M;X`I7O%FC#}C=!;@5_El1Ovtlx@mW z<+z^CyGGL2PsV z>`11~5}8l(6t)6}h3mnGDA~k;V1N&}@hK)(jn|xl<2>X0DA&G>GNrlwe#6BnB!vQ} zq-co~uDV;)k|YlB*~wID!=98Na8Q8c%g9^xN&M!GANxFh#5}ehM8r|`uoX6B`YWkz zNghaa;bpU2R3TzgTQtJpT5O>8`S2d(3+%~AIvX~zO0$qf@-=7iB87v4-6W+#lDLCM zlXVP>^TvDRyQ90m)81dw00q06BKCa4RA!XzuNLM#&4OJyZGPXT48uYXNsLsT3^<$1`{I z9A_?4n0(1t{;R*WtE9KXi|XF4rPs}&0tXX~$30nmy_d?7OqhefuF~HF7UB60^E|B* z;-qbcON$T|v}D&%0cH%7Vr>$q5eYCR3K_lCQJ=b0g}hYBv{ccrUw%&E77xzR9{F<< z1jFwqvw@8MDhTe=+u=ox;Dy)Cp#lqnBldPE9Dxa{!fzx2DX~16&lgT|P&!V-TxgVo Xa_|^P*wWng`se=xD$C*@6h{F7a|p-) diff --git a/Telegram-Mac/animoji/heart.tgs b/Telegram-Mac/animoji/heart.tgs deleted file mode 100644 index d58348b5210ae6d1d0c78f0ff923c1acf6e4fba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56352 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 diff --git a/Telegram-Mac/animoji/meh.tgs b/Telegram-Mac/animoji/meh.tgs deleted file mode 100644 index 300f07f7cc293444ee15971ba3a299691f1262b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5598 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 diff --git a/Telegram-Mac/animoji/thumbs_up_1.tgs b/Telegram-Mac/animoji/thumbs_up_1.tgs deleted file mode 100644 index a4ac5afca8091b890b6660e587748ab42d5d32a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17926 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 BV?Y1^ diff --git a/Telegram-Mac/animoji/thumbs_up_2.tgs b/Telegram-Mac/animoji/thumbs_up_2.tgs deleted file mode 100644 index c251cb8632ae10eb69c792213e4d6b8aa7ccf325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17993 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 diff --git a/Telegram-Mac/instantPageWebEmbedView.swift b/Telegram-Mac/instantPageWebEmbedView.swift index fa7405880..328f36449 100644 --- a/Telegram-Mac/instantPageWebEmbedView.swift +++ b/Telegram-Mac/instantPageWebEmbedView.swift @@ -7,7 +7,8 @@ // import Cocoa -import TelegramCoreMac +import TelegramCore +import SyncCore import TGUIKit import WebKit diff --git a/Telegram.xcodeproj/project.pbxproj b/Telegram.xcodeproj/project.pbxproj index df99b6bf1..1b6a78a77 100644 --- a/Telegram.xcodeproj/project.pbxproj +++ b/Telegram.xcodeproj/project.pbxproj @@ -33,7 +33,6 @@ 9F0AE6BE2199BEBE00A8B53A /* SVideoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0AE6BD2199BEBE00A8B53A /* SVideoController.swift */; }; 9F0AE6C02199CDB500A8B53A /* SVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0AE6BF2199CDB500A8B53A /* SVideoView.swift */; }; 9F0B8F171FFB7F1A00073D3F /* AccentColorRowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0B8F161FFB7F1A00073D3F /* AccentColorRowItem.swift */; }; - 9F0E6F76203EC7090086699C /* DFRPrivateHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F0E6F74203EC7090086699C /* DFRPrivateHeader.m */; }; 9F0E6F78203ED1380086699C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F0E6F77203ED1380086699C /* AppKit.framework */; }; 9F0E6F7A203EFE870086699C /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0E6F79203EFE870086699C /* Preferences.swift */; }; 9F0F8E82226DCD1C00A97F6A /* OpmizeDatabaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F0F8E81226DCD1C00A97F6A /* OpmizeDatabaseView.swift */; }; @@ -201,8 +200,36 @@ 9FFAE50D205AA1FB000C028E /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F8FDF3A205A7AE7001A7A77 /* libswresample.a */; }; 9FFAE50F205AB4A3000C028E /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFAE50E205AB4A3000C028E /* libiconv.tbd */; }; 9FFAE514205AB50C000C028E /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FFAE513205AB50C000C028E /* libz.tbd */; }; + A7664939236C816400163DF4 /* HockeySDK.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = 9F388C8B213550C500830715 /* HockeySDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A766493A236C817200163DF4 /* HockeySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F388C8B213550C500830715 /* HockeySDK.framework */; }; A7C41DB4235862BB00CF9402 /* PeerMediaPhotosController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C41DB3235862BB00CF9402 /* PeerMediaPhotosController.swift */; }; A7C41DB623586DC100CF9402 /* PeerPhotosMonthItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C41DB523586DC100CF9402 /* PeerPhotosMonthItem.swift */; }; + A7D08F48236AC9B6002DC240 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F0BCD9E2087BABC001D8D8A /* Sparkle.framework */; }; + A7D08F4A236AC9BB002DC240 /* Sparkle.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = 9F0BCD9E2087BABC001D8D8A /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D28205236C3C0B0000A9BF /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28204236C3C0B0000A9BF /* Postbox.framework */; }; + A7D28207236C3C0F0000A9BF /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28206236C3C0F0000A9BF /* SwiftSignalKit.framework */; }; + A7D28209236C3C150000A9BF /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28208236C3C150000A9BF /* TelegramCore.framework */; }; + A7D2820B236C3C1B0000A9BF /* MtProtoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D2820A236C3C1B0000A9BF /* MtProtoKit.framework */; }; + A7D2820C236C3C2A0000A9BF /* MtProtoKit.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D2820A236C3C1B0000A9BF /* MtProtoKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D2820D236C3C2F0000A9BF /* TelegramCore.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D28208236C3C150000A9BF /* TelegramCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D2820E236C3C330000A9BF /* SwiftSignalKit.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D28206236C3C0F0000A9BF /* SwiftSignalKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D2820F236C3C3B0000A9BF /* Postbox.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D28204236C3C0B0000A9BF /* Postbox.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D28211236C3D390000A9BF /* SyncCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28210236C3D390000A9BF /* SyncCore.framework */; }; + A7D28212236C3D3E0000A9BF /* SyncCore.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D28210236C3D390000A9BF /* SyncCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D28214236C3DAE0000A9BF /* WalletCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28213236C3DAE0000A9BF /* WalletCore.framework */; }; + A7D28226236C50EE0000A9BF /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28204236C3C0B0000A9BF /* Postbox.framework */; }; + A7D28227236C50F20000A9BF /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28206236C3C0F0000A9BF /* SwiftSignalKit.framework */; }; + A7D28228236C50F60000A9BF /* SyncCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28210236C3D390000A9BF /* SyncCore.framework */; }; + A7D28229236C50FC0000A9BF /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28208236C3C150000A9BF /* TelegramCore.framework */; }; + A7D2822B236C51A50000A9BF /* OpenSSLEncryption.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D2822A236C51A50000A9BF /* OpenSSLEncryption.framework */; }; + A7D2822D236C51F10000A9BF /* OpenSSLEncryption.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D2822C236C51F10000A9BF /* OpenSSLEncryption.framework */; }; + A7D2822F236C549B0000A9BF /* SyncCoreExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D2822E236C549B0000A9BF /* SyncCoreExtension.swift */; }; + A7D28230236C549B0000A9BF /* SyncCoreExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D2822E236C549B0000A9BF /* SyncCoreExtension.swift */; }; + A7D28232236C57DD0000A9BF /* libphonenumber.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28231236C57DD0000A9BF /* libphonenumber.framework */; }; + A7D28237236C5B2C0000A9BF /* PhoneNumberUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D28236236C5B2C0000A9BF /* PhoneNumberUtils.swift */; }; + A7D28258236C6FA20000A9BF /* WalletCore.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A7D28213236C3DAE0000A9BF /* WalletCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A7D28259236C70A50000A9BF /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D2823B236C69070000A9BF /* SSignalKit.framework */; }; + A7ED5DAF236C7CE100040372 /* RLottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DAE236C7CE100040372 /* RLottie.framework */; }; C2016F3B1EAA4538003AF981 /* RecentPeerRowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2016F3A1EAA4538003AF981 /* RecentPeerRowItem.swift */; }; C2016F681EAE0A68003AF981 /* PhoneCallWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2016F671EAE0A68003AF981 /* PhoneCallWindowController.swift */; }; C201C2321E3B2D1C0026C21E /* FastSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = C201C2311E3B2D1C0026C21E /* FastSettings.swift */; }; @@ -271,11 +298,7 @@ C224675B1FA8546200F03E27 /* GroupedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = C224675A1FA8546200F03E27 /* GroupedLayout.swift */; }; C224675D1FA884E300F03E27 /* ChatGroupedItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C224675C1FA884E300F03E27 /* ChatGroupedItem.swift */; }; C224A72D1EB75A3100F43F3F /* ExMajorNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C224A72C1EB75A3100F43F3F /* ExMajorNavigationController.swift */; }; - C224F2921E43CD93002FF0B2 /* TelegramCoreMac.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = C2FBC1D61DC61AFF0063A23B /* TelegramCoreMac.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - C224F2931E43CDBE002FF0B2 /* SwiftSignalKitMac.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = C2FBC1D81DC61B050063A23B /* SwiftSignalKitMac.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C224F2941E43CDC4002FF0B2 /* TGUIKit.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = C22E06251D7F16C000A11C88 /* TGUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - C224F2951E43CDD8002FF0B2 /* MtProtoKitMac.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = C2FBC1DE1DC61B580063A23B /* MtProtoKitMac.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - C224F2961E43CDDD002FF0B2 /* PostboxMac.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = C234CA901D97E117003023F7 /* PostboxMac.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C225524B1F7BE7000007944D /* VideoRecorderModalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C225524A1F7BE7000007944D /* VideoRecorderModalController.swift */; }; C225524D1F7BE8E40007944D /* VideoRecorderModalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C225524C1F7BE8E40007944D /* VideoRecorderModalView.swift */; }; C225524F1F7C03B50007944D /* VideoRecorderPipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = C225524E1F7C03B50007944D /* VideoRecorderPipeline.swift */; }; @@ -353,10 +376,6 @@ C232EA951E1D07E700C4D38C /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = C232EA941E1D07E700C4D38C /* icon.icns */; }; C232EA981E1D07E700C4D38C /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C232EA971E1D07E700C4D38C /* ShareViewController.swift */; }; C232EA9B1E1D07E700C4D38C /* ShareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C232EA991E1D07E700C4D38C /* ShareViewController.xib */; }; - C232EAA41E1D07FE00C4D38C /* MtProtoKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1DE1DC61B580063A23B /* MtProtoKitMac.framework */; }; - C232EAA51E1D07FE00C4D38C /* PostboxMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C234CA901D97E117003023F7 /* PostboxMac.framework */; }; - C232EAA61E1D07FE00C4D38C /* SwiftSignalKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1D81DC61B050063A23B /* SwiftSignalKitMac.framework */; }; - C232EAA71E1D07FE00C4D38C /* TelegramCoreMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1D61DC61AFF0063A23B /* TelegramCoreMac.framework */; }; C232EAA81E1D07FE00C4D38C /* TGUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C22E06251D7F16C000A11C88 /* TGUIKit.framework */; }; C232EAB01E1D110500C4D38C /* SESelectController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C232EAAF1E1D110500C4D38C /* SESelectController.swift */; }; C232EAB61E1D11CA00C4D38C /* InterfaceObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2167E5E1DC25C6900F98E03 /* InterfaceObserver.swift */; }; @@ -373,7 +392,6 @@ C234A7FB1ED7112400EBBECE /* LocalizableExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C234A7FA1ED7112400EBBECE /* LocalizableExtension.swift */; }; C234A7FE1ED725C300EBBECE /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C234A7FD1ED725C300EBBECE /* LanguageViewController.swift */; }; C234A8001ED73A3300EBBECE /* LanguageRowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C234A7FF1ED73A3300EBBECE /* LanguageRowItem.swift */; }; - C234CA911D97E117003023F7 /* PostboxMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C234CA901D97E117003023F7 /* PostboxMac.framework */; }; C234D4121EEDE6990017DC25 /* LoadingTableItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C234D4111EEDE6990017DC25 /* LoadingTableItem.swift */; }; C236ADDE1F7D318700E8C71A /* TGVideoCameraMovieRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = C236ADDC1F7D318600E8C71A /* TGVideoCameraMovieRecorder.m */; }; C2379D2A1DDCCBF10063AD30 /* ReplyMarkupNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2379D291DDCCBF10063AD30 /* ReplyMarkupNode.swift */; }; @@ -685,9 +703,6 @@ C2F9C4481F9500B4002B2CBF /* TwoStepVerificationUnlockController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F9C4471F9500B4002B2CBF /* TwoStepVerificationUnlockController.swift */; }; C2F9C44C1F95FE58002B2CBF /* Markdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F9C44B1F95FE58002B2CBF /* Markdown.swift */; }; C2FB2FAB1EBF73D00093C8BA /* RecentCallsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FB2FAA1EBF73CF0093C8BA /* RecentCallsViewController.swift */; }; - C2FBC1D71DC61AFF0063A23B /* TelegramCoreMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1D61DC61AFF0063A23B /* TelegramCoreMac.framework */; }; - C2FBC1D91DC61B050063A23B /* SwiftSignalKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1D81DC61B050063A23B /* SwiftSignalKitMac.framework */; }; - C2FBC1DF1DC61B580063A23B /* MtProtoKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2FBC1DE1DC61B580063A23B /* MtProtoKitMac.framework */; }; C2FBC1E71DC631980063A23B /* SPPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FBC1E61DC631980063A23B /* SPPreviewController.swift */; }; C2FD33E91E696A86008D13D4 /* GroupsInCommonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E81E696A86008D13D4 /* GroupsInCommonViewController.swift */; }; C2FD33EE1E697B31008D13D4 /* TransformOutgoingMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33ED1E697B31008D13D4 /* TransformOutgoingMessageMedia.swift */; }; @@ -704,8 +719,6 @@ D004167522D37AD00000566B /* StickerPackPanelRowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D004167422D37AD00000566B /* StickerPackPanelRowItem.swift */; }; D004167722D4AD3B0000566B /* StickerPackItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = D004167622D4AD3B0000566B /* StickerPackItems.swift */; }; D004BD2B23153415009A54B1 /* ThemePreviewModalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D004BD2A23153415009A54B1 /* ThemePreviewModalController.swift */; }; - D004D6FE22B7B92C00926F46 /* RLottieMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D004D6FD22B7B92C00926F46 /* RLottieMac.framework */; }; - D004D70B22B7BCD400926F46 /* RLottieMac.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = D004D6FD22B7B92C00926F46 /* RLottieMac.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D007AB9D2347F06F0022C27F /* TelegramShare.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C232EA911E1D07E700C4D38C /* TelegramShare.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; D007AB9F234C8DCB0022C27F /* WalletPasscodeTimeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007AB9E234C8DCB0022C27F /* WalletPasscodeTimeout.swift */; }; D007ABA1234CACE40022C27F /* WalletCreateInvoiceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007ABA0234CACE40022C27F /* WalletCreateInvoiceController.swift */; }; @@ -838,14 +851,17 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - D004D70B22B7BCD400926F46 /* RLottieMac.framework in Copy Files */, + A7664939236C816400163DF4 /* HockeySDK.framework in Copy Files */, + A7D28258236C6FA20000A9BF /* WalletCore.framework in Copy Files */, + A7D28212236C3D3E0000A9BF /* SyncCore.framework in Copy Files */, + A7D2820F236C3C3B0000A9BF /* Postbox.framework in Copy Files */, + A7D2820E236C3C330000A9BF /* SwiftSignalKit.framework in Copy Files */, + A7D2820D236C3C2F0000A9BF /* TelegramCore.framework in Copy Files */, + A7D2820C236C3C2A0000A9BF /* MtProtoKit.framework in Copy Files */, + A7D08F4A236AC9BB002DC240 /* Sparkle.framework in Copy Files */, 9F0367E522707A4D00456348 /* Lottie.framework in Copy Files */, D0675D6C217E20CE004900A7 /* Zip.framework in Copy Files */, - C224F2961E43CDDD002FF0B2 /* PostboxMac.framework in Copy Files */, - C224F2951E43CDD8002FF0B2 /* MtProtoKitMac.framework in Copy Files */, C224F2941E43CDC4002FF0B2 /* TGUIKit.framework in Copy Files */, - C224F2931E43CDBE002FF0B2 /* SwiftSignalKitMac.framework in Copy Files */, - C224F2921E43CD93002FF0B2 /* TelegramCoreMac.framework in Copy Files */, ); name = "Copy Files"; runOnlyForDeploymentPostprocessing = 0; @@ -979,7 +995,7 @@ 9F354E9F227076A6006F1D42 /* libLottie.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libLottie.a; sourceTree = BUILT_PRODUCTS_DIR; }; 9F354EA1227076EF006F1D42 /* Lottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Lottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9F354EA3227077BD006F1D42 /* Lottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Lottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F388C8B213550C500830715 /* HockeySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = HockeySDK.framework; sourceTree = ""; }; + 9F388C8B213550C500830715 /* HockeySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HockeySDK.framework; path = submodules/HockeySDK.framework; sourceTree = ""; }; 9F3D5F6222044D8700CB0CAA /* AppUpdateViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateViewController.swift; sourceTree = ""; }; 9F3D5F8522085B2000CB0CAA /* UpdaterNotifySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdaterNotifySettings.swift; sourceTree = ""; }; 9F3EAB3A20A5A1EC003FE7E3 /* NetworkUsageStatsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkUsageStatsController.swift; sourceTree = ""; }; @@ -1209,6 +1225,19 @@ 9FFAE513205AB50C000C028E /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; A7C41DB3235862BB00CF9402 /* PeerMediaPhotosController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerMediaPhotosController.swift; sourceTree = ""; }; A7C41DB523586DC100CF9402 /* PeerPhotosMonthItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerPhotosMonthItem.swift; sourceTree = ""; }; + A7D28204236C3C0B0000A9BF /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28206236C3C0F0000A9BF /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28208236C3C150000A9BF /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2820A236C3C1B0000A9BF /* MtProtoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28210236C3D390000A9BF /* SyncCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SyncCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28213236C3DAE0000A9BF /* WalletCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WalletCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2822A236C51A50000A9BF /* OpenSSLEncryption.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenSSLEncryption.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2822C236C51F10000A9BF /* OpenSSLEncryption.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenSSLEncryption.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2822E236C549B0000A9BF /* SyncCoreExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncCoreExtension.swift; sourceTree = ""; }; + A7D28231236C57DD0000A9BF /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28236236C5B2C0000A9BF /* PhoneNumberUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneNumberUtils.swift; sourceTree = ""; }; + A7D2823B236C69070000A9BF /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7ED5DAE236C7CE100040372 /* RLottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RLottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C2016F3A1EAA4538003AF981 /* RecentPeerRowItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeerRowItem.swift; sourceTree = ""; }; C2016F431EAA4967003AF981 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/ShareViewController.strings"; sourceTree = ""; }; C2016F451EAA4967003AF981 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; @@ -1389,7 +1418,6 @@ C234A7FA1ED7112400EBBECE /* LocalizableExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizableExtension.swift; sourceTree = ""; }; C234A7FD1ED725C300EBBECE /* LanguageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; C234A7FF1ED73A3300EBBECE /* LanguageRowItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageRowItem.swift; sourceTree = ""; }; - C234CA901D97E117003023F7 /* PostboxMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = PostboxMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C234D4111EEDE6990017DC25 /* LoadingTableItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingTableItem.swift; sourceTree = ""; }; C236ADDC1F7D318600E8C71A /* TGVideoCameraMovieRecorder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TGVideoCameraMovieRecorder.m; sourceTree = ""; }; C236ADDD1F7D318700E8C71A /* TGVideoCameraMovieRecorder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TGVideoCameraMovieRecorder.h; sourceTree = ""; }; @@ -1764,9 +1792,6 @@ C2F9C4471F9500B4002B2CBF /* TwoStepVerificationUnlockController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwoStepVerificationUnlockController.swift; sourceTree = ""; }; C2F9C44B1F95FE58002B2CBF /* Markdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Markdown.swift; sourceTree = ""; }; C2FB2FAA1EBF73CF0093C8BA /* RecentCallsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentCallsViewController.swift; sourceTree = ""; }; - C2FBC1D61DC61AFF0063A23B /* TelegramCoreMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TelegramCoreMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C2FBC1D81DC61B050063A23B /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C2FBC1DE1DC61B580063A23B /* MtProtoKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C2FBC1E61DC631980063A23B /* SPPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SPPreviewController.swift; sourceTree = ""; }; C2FD33E81E696A86008D13D4 /* GroupsInCommonViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommonViewController.swift; sourceTree = ""; }; C2FD33ED1E697B31008D13D4 /* TransformOutgoingMessageMedia.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransformOutgoingMessageMedia.swift; sourceTree = ""; }; @@ -1785,7 +1810,6 @@ D004167422D37AD00000566B /* StickerPackPanelRowItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPackPanelRowItem.swift; sourceTree = ""; }; D004167622D4AD3B0000566B /* StickerPackItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPackItems.swift; sourceTree = ""; }; D004BD2A23153415009A54B1 /* ThemePreviewModalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewModalController.swift; sourceTree = ""; }; - D004D6FD22B7B92C00926F46 /* RLottieMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RLottieMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D007AB9E234C8DCB0022C27F /* WalletPasscodeTimeout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletPasscodeTimeout.swift; sourceTree = ""; }; D007ABA0234CACE40022C27F /* WalletCreateInvoiceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletCreateInvoiceController.swift; sourceTree = ""; }; D00C73B52302C196004B1E2B /* ChatScheduleController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleController.swift; sourceTree = ""; }; @@ -1811,14 +1835,6 @@ D01E1EFF22B261A800AD6DAE /* Alpha.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Alpha.xcconfig; sourceTree = ""; }; D01E1F0322B39A4800AD6DAE /* LottiePlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottiePlayer.swift; sourceTree = ""; }; D0276B7C22BD6511003155D8 /* DisplayLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayLink.swift; sourceTree = ""; }; - D027B71422F05EEA009BB54B /* celeb.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = celeb.tgs; sourceTree = ""; }; - D027B71522F05EEB009BB54B /* thumbs_up_2.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_2.tgs; sourceTree = ""; }; - D027B71622F05EEB009BB54B /* confused.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = confused.tgs; sourceTree = ""; }; - D027B71722F05EEC009BB54B /* thumbs_up_4.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_4.tgs; sourceTree = ""; }; - D027B71822F05EEC009BB54B /* thumbs_up_1.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_1.tgs; sourceTree = ""; }; - D027B71922F05EED009BB54B /* thumbs_up_3.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_3.tgs; sourceTree = ""; }; - D027B71A22F05EEE009BB54B /* thumbs_up_5.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_5.tgs; sourceTree = ""; }; - D027B71B22F05EEE009BB54B /* thumbs_up_6.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbs_up_6.tgs; sourceTree = ""; }; D02BD7BF232D0FB800D1814A /* AppAppearanceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearanceViewController.swift; sourceTree = ""; }; D02BD7C2232D14E800D1814A /* ThemePreviewRowItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreviewRowItem.swift; sourceTree = ""; }; D02BD7C4232D204F00D1814A /* ThemeListRowItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeListRowItem.swift; sourceTree = ""; }; @@ -1826,9 +1842,6 @@ D02F09FF22E8875800553411 /* SoftwareVideoSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoftwareVideoSource.swift; sourceTree = ""; }; D02F0A0122E88C6E00553411 /* MediaPlayerFramePreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPlayerFramePreview.swift; sourceTree = ""; }; D02F0A0322E88C9900553411 /* UniversalSoftwareVideoSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniversalSoftwareVideoSource.swift; sourceTree = ""; }; - D02F0A0622EF1CA300553411 /* lol.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = lol.tgs; sourceTree = ""; }; - D02F0A0822EF1CA300553411 /* meh.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = meh.tgs; sourceTree = ""; }; - D02F0A0922EF1CA300553411 /* heart.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = heart.tgs; sourceTree = ""; }; D0439A1F23410D5400C1E6F9 /* WalletUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletUtils.swift; sourceTree = ""; }; D04D213E230D68B800609388 /* CustomAccentColorModalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAccentColorModalController.swift; sourceTree = ""; }; D04D2143230DB55B00609388 /* TelegramIconsTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramIconsTheme.swift; sourceTree = ""; }; @@ -1915,10 +1928,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C232EAA41E1D07FE00C4D38C /* MtProtoKitMac.framework in Frameworks */, - C232EAA51E1D07FE00C4D38C /* PostboxMac.framework in Frameworks */, - C232EAA61E1D07FE00C4D38C /* SwiftSignalKitMac.framework in Frameworks */, - C232EAA71E1D07FE00C4D38C /* TelegramCoreMac.framework in Frameworks */, + A7D2822D236C51F10000A9BF /* OpenSSLEncryption.framework in Frameworks */, + A7D28229236C50FC0000A9BF /* TelegramCore.framework in Frameworks */, + A7D28228236C50F60000A9BF /* SyncCore.framework in Frameworks */, + A7D28227236C50F20000A9BF /* SwiftSignalKit.framework in Frameworks */, + A7D28226236C50EE0000A9BF /* Postbox.framework in Frameworks */, C232EAA81E1D07FE00C4D38C /* TGUIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1927,8 +1941,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A766493A236C817200163DF4 /* HockeySDK.framework in Frameworks */, + A7ED5DAF236C7CE100040372 /* RLottie.framework in Frameworks */, + A7D28259236C70A50000A9BF /* SSignalKit.framework in Frameworks */, + A7D28232236C57DD0000A9BF /* libphonenumber.framework in Frameworks */, + A7D2822B236C51A50000A9BF /* OpenSSLEncryption.framework in Frameworks */, + A7D28214236C3DAE0000A9BF /* WalletCore.framework in Frameworks */, + A7D28211236C3D390000A9BF /* SyncCore.framework in Frameworks */, + A7D2820B236C3C1B0000A9BF /* MtProtoKit.framework in Frameworks */, + A7D28209236C3C150000A9BF /* TelegramCore.framework in Frameworks */, + A7D28207236C3C0F0000A9BF /* SwiftSignalKit.framework in Frameworks */, + A7D28205236C3C0B0000A9BF /* Postbox.framework in Frameworks */, + A7D08F48236AC9B6002DC240 /* Sparkle.framework in Frameworks */, D0DDECEA2322FA0200E1B359 /* Contacts.framework in Frameworks */, - D004D6FE22B7B92C00926F46 /* RLottieMac.framework in Frameworks */, 9F354EA4227077BD006F1D42 /* Lottie.framework in Frameworks */, C259ED1E1DB956C1008E6712 /* QuartzCore.framework in Frameworks */, C2FD33FB1E6C169C008D13D4 /* Security.framework in Frameworks */, @@ -1953,13 +1978,9 @@ C2FD33F01E697EC2008D13D4 /* QuickLook.framework in Frameworks */, 9FC4DAA621DD1D6C003E2A62 /* libturbojpeg.a in Frameworks */, C24DAB931E0828B6005EE404 /* JavaScriptCore.framework in Frameworks */, - C2FBC1DF1DC61B580063A23B /* MtProtoKitMac.framework in Frameworks */, - C2FBC1D91DC61B050063A23B /* SwiftSignalKitMac.framework in Frameworks */, - C2FBC1D71DC61AFF0063A23B /* TelegramCoreMac.framework in Frameworks */, 9F21F65D20B5A9C900332C85 /* MapKit.framework in Frameworks */, C250B0351DB78A0A004E9FBE /* Quartz.framework in Frameworks */, C250B0331DB788B3004E9FBE /* Foundation.framework in Frameworks */, - C234CA911D97E117003023F7 /* PostboxMac.framework in Frameworks */, C253A9671D92E3AF00CDC850 /* AVFoundation.framework in Frameworks */, C2DF47BC1DE79574003AA6C0 /* libopus.a in Frameworks */, C22E06261D7F16C000A11C88 /* TGUIKit.framework in Frameworks */, @@ -3317,7 +3338,6 @@ isa = PBXGroup; children = ( D07450DB233D617B00769D7F /* wallet */, - D02F0A0522EF1CA300553411 /* animoji */, 9F0367E622707B6400456348 /* lottie */, 9F0AE6B42199904400A8B53A /* sound_a.caf */, 9F3EAB3F20A5ED2F003FE7E3 /* ocr_nn.bin */, @@ -3946,6 +3966,8 @@ D09D9DF0229C27A700378796 /* AnimatedStickerUtils.swift */, D0276B7C22BD6511003155D8 /* DisplayLink.swift */, D0E52B3122FD66C4000C0306 /* MessageTimecode.swift */, + A7D2822E236C549B0000A9BF /* SyncCoreExtension.swift */, + A7D28236236C5B2C0000A9BF /* PhoneNumberUtils.swift */, ); name = utils; sourceTree = ""; @@ -4251,24 +4273,6 @@ name = items; sourceTree = ""; }; - D02F0A0522EF1CA300553411 /* animoji */ = { - isa = PBXGroup; - children = ( - D027B71422F05EEA009BB54B /* celeb.tgs */, - D027B71622F05EEB009BB54B /* confused.tgs */, - D027B71822F05EEC009BB54B /* thumbs_up_1.tgs */, - D027B71522F05EEB009BB54B /* thumbs_up_2.tgs */, - D027B71922F05EED009BB54B /* thumbs_up_3.tgs */, - D027B71722F05EEC009BB54B /* thumbs_up_4.tgs */, - D027B71A22F05EEE009BB54B /* thumbs_up_5.tgs */, - D027B71B22F05EEE009BB54B /* thumbs_up_6.tgs */, - D02F0A0622EF1CA300553411 /* lol.tgs */, - D02F0A0822EF1CA300553411 /* meh.tgs */, - D02F0A0922EF1CA300553411 /* heart.tgs */, - ); - path = animoji; - sourceTree = ""; - }; D0558D782151411F006B403D /* chat */ = { isa = PBXGroup; children = ( @@ -4485,7 +4489,17 @@ D098C7311D7E18CB007784E4 /* Frameworks */ = { isa = PBXGroup; children = ( - D004D6FD22B7B92C00926F46 /* RLottieMac.framework */, + A7ED5DAE236C7CE100040372 /* RLottie.framework */, + A7D2823B236C69070000A9BF /* SSignalKit.framework */, + A7D28231236C57DD0000A9BF /* libphonenumber.framework */, + A7D2822C236C51F10000A9BF /* OpenSSLEncryption.framework */, + A7D2822A236C51A50000A9BF /* OpenSSLEncryption.framework */, + A7D28213236C3DAE0000A9BF /* WalletCore.framework */, + A7D28210236C3D390000A9BF /* SyncCore.framework */, + A7D2820A236C3C1B0000A9BF /* MtProtoKit.framework */, + A7D28208236C3C150000A9BF /* TelegramCore.framework */, + A7D28206236C3C0F0000A9BF /* SwiftSignalKit.framework */, + A7D28204236C3C0B0000A9BF /* Postbox.framework */, 9F354EA3227077BD006F1D42 /* Lottie.framework */, 9F354EA1227076EF006F1D42 /* Lottie.framework */, 9F354E9F227076A6006F1D42 /* libLottie.a */, @@ -4526,13 +4540,9 @@ C231992D1EE006330011BEBE /* Sparkle.framework */, C2C738F01DD898DA00CE9D8A /* AVKit.framework */, C2C030CC1DD5097400617711 /* CoreMedia.framework */, - C2FBC1DE1DC61B580063A23B /* MtProtoKitMac.framework */, - C2FBC1D81DC61B050063A23B /* SwiftSignalKitMac.framework */, - C2FBC1D61DC61AFF0063A23B /* TelegramCoreMac.framework */, C259ED1D1DB956C1008E6712 /* QuartzCore.framework */, C250B0341DB78A0A004E9FBE /* Quartz.framework */, C250B0321DB788B3004E9FBE /* Foundation.framework */, - C234CA901D97E117003023F7 /* PostboxMac.framework */, C253A9661D92E3AE00CDC850 /* AVFoundation.framework */, C22E06251D7F16C000A11C88 /* TGUIKit.framework */, ); @@ -4823,6 +4833,7 @@ C299B1FC1F1E0A3500922882 /* ObjcUtils.m in Sources */, C299B1FB1F1E097C00922882 /* ControllerExtension.swift in Sources */, C299B1F91F1E095800922882 /* Localizable.swift in Sources */, + A7D28230236C549B0000A9BF /* SyncCoreExtension.swift in Sources */, C299B1FA1F1E095800922882 /* LocalizableExtension.swift in Sources */, C299B1F81F1E08C900922882 /* ThumbUtils.swift in Sources */, C299B1F61F1E080300922882 /* ThemeSettings.swift in Sources */, @@ -5224,6 +5235,7 @@ C295C65F1F75808600BA309D /* ChatAdditionController.swift in Sources */, C2271F571D9D46BC00424F7B /* ShortPeerRowItem.swift in Sources */, C291942F1DCC6E2200359491 /* DeclareEncodables.swift in Sources */, + A7D2822F236C549B0000A9BF /* SyncCoreExtension.swift in Sources */, C2A315BB1E2E697200D89000 /* TwoStepVerification.swift in Sources */, C296AF881D8DB2A7001DBB59 /* ChatMediaContentView.swift in Sources */, C2DE5D401F3CB0380081EC1E /* InstantPageTileView.swift in Sources */, @@ -5240,6 +5252,7 @@ C2B1A0F11D9D94E400ACB1DD /* SeparatorRowView.swift in Sources */, C232E9F61E1437B100C4D38C /* SearchResultModalController.swift in Sources */, 9F21A7D521C16CB90037784F /* InstantPagePeerReferenceItem.swift in Sources */, + A7D28237236C5B2C0000A9BF /* PhoneNumberUtils.swift in Sources */, C2A16E551E117BD000585A85 /* CreateChannelViewController.swift in Sources */, 9F7D422C222415C9007B68BB /* SharedAccountContext.swift in Sources */, 9F1AE5E420B6D7AA002A9D8D /* LocationPlaceSuggestionRowItem.swift in Sources */, @@ -5394,7 +5407,6 @@ D0439A2023410D5400C1E6F9 /* WalletUtils.swift in Sources */, 9F10CE8A20611536002DD61A /* PassportHeaderItem.swift in Sources */, C29C3E731E4397F300193A7E /* StickerPreviewHandler.swift in Sources */, - 9F0E6F76203EC7090086699C /* DFRPrivateHeader.m in Sources */, D04D213F230D68B800609388 /* CustomAccentColorModalController.swift in Sources */, C29A65071E098B610071BCEF /* ShareModalController.swift in Sources */, D07B55872333903C00F076A8 /* WalletSplashRowItem.swift in Sources */, @@ -5577,573 +5589,6 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 9FDD788C21C8EBF600F1B4EF /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = DebugFork; - }; - 9FDD788D21C8EBF600F1B4EF /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C21074251E77F79A006EE5EF /* Beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = NO; - CLANG_WARN_SUSPICIOUS_MOVE = NO; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Telegram-Mac/Telegram-Mac.entitlements"; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_BITCODE = NO; - ENABLE_HARDENED_RUNTIME = YES; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", - "$(PROJECT_DIR)/HockeySDK-Mac", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = "BETA=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - HEADERMAP_USES_VFS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/thrid-party/ogg", - "$(PROJECT_DIR)/submodules/libtgvoip", - "$(PROJECT_DIR)/thrid-party", - "$(PROJECT_DIR)/thrid-party/ffmpeg/include/", - "$(PROJECT_DIR)/thrid-party/rlottie/**", - ); - INFOPLIST_FILE = "Telegram-Mac/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thrid-party/libwebp/lib", - "$(SDKROOT)/usr/lib/system", - "$(PROJECT_DIR)/thrid-party/opus/lib", - "$(PROJECT_DIR)/thrid-party/ffmpeg/lib", - "$(PROJECT_DIR)/thrid-party/libjpeg-turbo", - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D BETA"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; - SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - 9FDD788E21C8EBF600F1B4EF /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = TelegramShare/TelegramShare.entitlements; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/submodules/libtgvoip/build/Debug-iphoneos", - "$(PROJECT_DIR)", - ); - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "SHARE=1", - ); - INFOPLIST_FILE = TelegramShare/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-D BETA"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram.TelegramShare; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = NO; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_VERSION = 4.2; - VALID_ARCHS = x86_64; - }; - name = DebugFork; - }; - 9FDD788F21C8EC0000F1B4EF /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = DebugAppStoreLLC; - }; - 9FDD789021C8EC0000F1B4EF /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C21074251E77F79A006EE5EF /* Beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = NO; - CLANG_WARN_SUSPICIOUS_MOVE = NO; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Telegram-Mac/Telegram-Mac.entitlements"; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_BITCODE = NO; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", - "$(PROJECT_DIR)/HockeySDK-Mac", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - HEADERMAP_USES_VFS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/thrid-party/ogg", - "$(PROJECT_DIR)/submodules/libtgvoip", - "$(PROJECT_DIR)/thrid-party", - "$(PROJECT_DIR)/thrid-party/ffmpeg/include/", - "$(PROJECT_DIR)/thrid-party/rlottie/**", - ); - INFOPLIST_FILE = "Telegram-Mac/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thrid-party/libwebp/lib", - "$(SDKROOT)/usr/lib/system", - "$(PROJECT_DIR)/thrid-party/opus/lib", - "$(PROJECT_DIR)/thrid-party/ffmpeg/lib", - "$(PROJECT_DIR)/thrid-party/libjpeg-turbo", - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - 9FDD789121C8EC0000F1B4EF /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = TelegramShare/TelegramShare.entitlements; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/submodules/libtgvoip/build/Debug-iphoneos", - "$(PROJECT_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = "SHARE=1"; - INFOPLIST_FILE = TelegramShare/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-D DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram.TelegramShare; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = SHARE; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_VERSION = 4.2; - VALID_ARCHS = x86_64; - }; - name = DebugAppStoreLLC; - }; - 9FDD789221C8EC0800F1B4EF /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = ReleaseHockeyappInternal; - }; - 9FDD789321C8EC0800F1B4EF /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C21074261E77F7A3006EE5EF /* Release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = NO; - CLANG_WARN_SUSPICIOUS_MOVE = NO; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Telegram-Mac/Telegram-Mac.entitlements"; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_BITCODE = NO; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", - "$(PROJECT_DIR)/HockeySDK-Mac", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = "STABLE=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - HEADERMAP_USES_VFS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/thrid-party/ogg", - "$(PROJECT_DIR)/submodules/libtgvoip", - "$(PROJECT_DIR)/thrid-party", - "$(PROJECT_DIR)/thrid-party/ffmpeg/include/", - "$(PROJECT_DIR)/thrid-party/rlottie/**", - ); - INFOPLIST_FILE = "Telegram-Mac/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thrid-party/libwebp/lib", - "$(SDKROOT)/usr/lib/system", - "$(PROJECT_DIR)/thrid-party/opus/lib", - "$(PROJECT_DIR)/thrid-party/ffmpeg/lib", - "$(PROJECT_DIR)/thrid-party/libjpeg-turbo", - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D STABLE"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - 9FDD789421C8EC0800F1B4EF /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = TelegramShare/TelegramShare.entitlements; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/submodules/libtgvoip/build/Debug-iphoneos", - "$(PROJECT_DIR)", - ); - GCC_PREPROCESSOR_DEFINITIONS = "SHARE=1"; - INFOPLIST_FILE = TelegramShare/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-D STABLE"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram.TelegramShare; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = SHARE; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_VERSION = 4.2; - VALID_ARCHS = x86_64; - }; - name = ReleaseHockeyappInternal; - }; - 9FDD789521C8EC1300F1B4EF /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - }; - name = ReleaseAppStoreLLC; - }; - 9FDD789621C8EC1300F1B4EF /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C21074261E77F7A3006EE5EF /* Release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_USE_OPTIMIZATION_PROFILE = NO; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = NO; - CLANG_WARN_SUSPICIOUS_MOVE = NO; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Telegram-Mac/Telegram-Mac.entitlements"; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_BITCODE = NO; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", - "$(PROJECT_DIR)/HockeySDK-Mac", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = "APP_STORE=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO; - HEADERMAP_USES_VFS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/thrid-party/ogg", - "$(PROJECT_DIR)/submodules/libtgvoip", - "$(PROJECT_DIR)/thrid-party", - "$(PROJECT_DIR)/thrid-party/ffmpeg/include/", - "$(PROJECT_DIR)/thrid-party/rlottie/**", - ); - INFOPLIST_FILE = "Telegram-Mac/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thrid-party/libwebp/lib", - "$(SDKROOT)/usr/lib/system", - "$(PROJECT_DIR)/thrid-party/opus/lib", - "$(PROJECT_DIR)/thrid-party/ffmpeg/lib", - "$(PROJECT_DIR)/thrid-party/libjpeg-turbo", - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D APP_STORE"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; - 9FDD789721C8EC1300F1B4EF /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = TelegramShare/TelegramShare.entitlements; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/submodules/libtgvoip/build/Debug-iphoneos", - "$(PROJECT_DIR)", - ); - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = "SHARE=1"; - INFOPLIST_FILE = TelegramShare/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CODE_SIGN_FLAGS = ""; - OTHER_SWIFT_FLAGS = "-D APP_STORE"; - PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram.TelegramShare; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = SHARE; - SWIFT_OBJC_BRIDGING_HEADER = "Telegram-Mac/Telegram-Mac-Bridging-Header.h"; - SWIFT_VERSION = 4.2; - VALID_ARCHS = x86_64; - }; - name = ReleaseAppStoreLLC; - }; C232EA251E1BC1A100C4D38C /* ReleaseAppStore */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6180,7 +5625,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -6212,6 +5657,7 @@ "$(PROJECT_DIR)", "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(PROJECT_DIR)/HockeySDK-Mac", + "$(PROJECT_DIR)/submodules", ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = s; @@ -6240,6 +5686,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 10.11; OTHER_CODE_SIGN_FLAGS = ""; + OTHER_LDFLAGS = ""; OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D APP_STORE"; PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6385,7 +5832,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -6416,6 +5863,7 @@ "$(PROJECT_DIR)", "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(PROJECT_DIR)/HockeySDK-Mac", + "$(PROJECT_DIR)/submodules", ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = s; @@ -6444,6 +5892,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 10.11; OTHER_CODE_SIGN_FLAGS = ""; + OTHER_LDFLAGS = ""; OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D STABLE"; PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6527,7 +5976,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -6562,6 +6011,7 @@ "$(PROJECT_DIR)", "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(PROJECT_DIR)/HockeySDK-Mac", + "$(PROJECT_DIR)/submodules", ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = s; @@ -6591,6 +6041,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CODE_SIGN_FLAGS = ""; + OTHER_LDFLAGS = ""; OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D ALPHA"; PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6681,7 +6132,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -6726,7 +6177,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.12; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -6760,6 +6211,7 @@ "$(PROJECT_DIR)", "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(PROJECT_DIR)/HockeySDK-Mac", + "$(PROJECT_DIR)/submodules", ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = s; @@ -6789,6 +6241,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CODE_SIGN_FLAGS = ""; + OTHER_LDFLAGS = ""; OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D BETA"; PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6827,6 +6280,7 @@ "$(PROJECT_DIR)", "$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks", "$(PROJECT_DIR)/HockeySDK-Mac", + "$(PROJECT_DIR)/submodules", ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; @@ -6856,6 +6310,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.11; ONLY_ACTIVE_ARCH = YES; OTHER_CODE_SIGN_FLAGS = ""; + OTHER_LDFLAGS = ""; OTHER_SWIFT_FLAGS = "-Xfrontend -debug-time-function-bodies -D DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = ru.keepcoder.Telegram; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -6878,13 +6333,9 @@ buildConfigurations = ( C232EAA11E1D07E700C4D38C /* DebugHockeyapp */, D01E1ECB22B2608F00AD6DAE /* HockeyappMacAlpha */, - 9FDD788E21C8EBF600F1B4EF /* DebugFork */, C232EAA21E1D07E700C4D38C /* DebugAppStore */, - 9FDD789121C8EC0000F1B4EF /* DebugAppStoreLLC */, C248BD1F1E6ECB24004B9106 /* ReleaseHockeyapp */, - 9FDD789421C8EC0800F1B4EF /* ReleaseHockeyappInternal */, C232EAA31E1D07E700C4D38C /* ReleaseAppStore */, - 9FDD789721C8EC1300F1B4EF /* ReleaseAppStoreLLC */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = DebugAppStore; @@ -6894,13 +6345,9 @@ buildConfigurations = ( D098C7201D7E175A007784E4 /* DebugHockeyapp */, D01E1EC922B2608F00AD6DAE /* HockeyappMacAlpha */, - 9FDD788C21C8EBF600F1B4EF /* DebugFork */, D098C7211D7E175A007784E4 /* DebugAppStore */, - 9FDD788F21C8EC0000F1B4EF /* DebugAppStoreLLC */, C248BD1D1E6ECB24004B9106 /* ReleaseHockeyapp */, - 9FDD789221C8EC0800F1B4EF /* ReleaseHockeyappInternal */, C232EA251E1BC1A100C4D38C /* ReleaseAppStore */, - 9FDD789521C8EC1300F1B4EF /* ReleaseAppStoreLLC */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = DebugAppStore; @@ -6910,13 +6357,9 @@ buildConfigurations = ( D098C7231D7E175A007784E4 /* DebugHockeyapp */, D01E1ECA22B2608F00AD6DAE /* HockeyappMacAlpha */, - 9FDD788D21C8EBF600F1B4EF /* DebugFork */, D098C7241D7E175A007784E4 /* DebugAppStore */, - 9FDD789021C8EC0000F1B4EF /* DebugAppStoreLLC */, C248BD1E1E6ECB24004B9106 /* ReleaseHockeyapp */, - 9FDD789321C8EC0800F1B4EF /* ReleaseHockeyappInternal */, C232EA261E1BC1A100C4D38C /* ReleaseAppStore */, - 9FDD789621C8EC1300F1B4EF /* ReleaseAppStoreLLC */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = DebugAppStore; diff --git a/Telegram.xcodeproj/xcshareddata/xcschemes/Hockeyapp.xcscheme b/Telegram.xcodeproj/xcshareddata/xcschemes/Hockeyapp.xcscheme index e282d3ed3..7370c7ed5 100644 --- a/Telegram.xcodeproj/xcshareddata/xcschemes/Hockeyapp.xcscheme +++ b/Telegram.xcodeproj/xcshareddata/xcschemes/Hockeyapp.xcscheme @@ -27,6 +27,8 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + - - + + + + + version = "1.8"> @@ -27,6 +27,8 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + - - + + + + AppStore.xcscheme_^#shared#^_ orderHint - 0 + 3 Hockeyapp.xcscheme_^#shared#^_ orderHint - 3 + 1 HockeyappAlpha.xcscheme_^#shared#^_ orderHint - 17 + 2 Release.xcscheme_^#shared#^_ orderHint - 7 + 4 Telegram.xcscheme_^#shared#^_ orderHint - 8 + 0 TelegramShare.xcscheme_^#shared#^_ orderHint - 10 + 5 diff --git a/TelegramShare/Info.plist b/TelegramShare/Info.plist index da1e688aa..b72f78f65 100644 --- a/TelegramShare/Info.plist +++ b/TelegramShare/Info.plist @@ -21,7 +21,7 @@ CFBundleShortVersionString 5.8.1 CFBundleVersion - 185481 + 185511 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSExtension diff --git a/TelegramShare/SEPasslockController.swift b/TelegramShare/SEPasslockController.swift index 1cce90a32..1c2e6097b 100644 --- a/TelegramShare/SEPasslockController.swift +++ b/TelegramShare/SEPasslockController.swift @@ -19,9 +19,10 @@ import TGUIKit import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit @@ -173,7 +174,7 @@ class SEPasslockController: ModalViewController { switch transaction.getAccessChallengeData() { case .none: return (value, nil) - case let .plaintextPassword(passcode, _, _), let .numericalPassword(passcode, _, _): + case let .plaintextPassword(passcode), let .numericalPassword(passcode): return (value, passcode) } } diff --git a/TelegramShare/SESelectController.swift b/TelegramShare/SESelectController.swift index 397038596..4d4e20886 100644 --- a/TelegramShare/SESelectController.swift +++ b/TelegramShare/SESelectController.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import SwiftSignalKitMac -import TelegramCoreMac -import PostboxMac +import SwiftSignalKit +import TelegramCore +import SyncCore +import Postbox class SelectAccountView: Control { diff --git a/TelegramShare/ShareApplicationContext.swift b/TelegramShare/ShareApplicationContext.swift index 9fe153110..4294e2a28 100644 --- a/TelegramShare/ShareApplicationContext.swift +++ b/TelegramShare/ShareApplicationContext.swift @@ -8,9 +8,10 @@ import Cocoa import TGUIKit -import TelegramCoreMac -import PostboxMac -import SwiftSignalKitMac +import TelegramCore +import SyncCore +import Postbox +import SwiftSignalKit diff --git a/TelegramShare/ShareViewController.swift b/TelegramShare/ShareViewController.swift index d21c9dac8..20174ae47 100644 --- a/TelegramShare/ShareViewController.swift +++ b/TelegramShare/ShareViewController.swift @@ -8,10 +8,12 @@ import Cocoa import TGUIKit -import PostboxMac -import TelegramCoreMac -import SwiftSignalKitMac - +import Postbox +import TelegramCore +import SyncCore +import SwiftSignalKit +import SyncCore +import OpenSSLEncryption class ShareViewController: NSViewController { @@ -47,8 +49,10 @@ class ShareViewController: NSViewController { let encryptionParameters = ValueBoxEncryptionParameters(forceEncryptionIfNoSet: true, key: ValueBoxEncryptionParameters.Key(data: deviceSpecificEncryptionParameters.key)!, salt: ValueBoxEncryptionParameters.Salt(data: deviceSpecificEncryptionParameters.salt)!) + + let accountManager = AccountManager(basePath: containerUrl.path + "/accounts-metadata") - let networkArguments = NetworkInitializationArguments(apiId: 2834, languagesCategory: "macos", appVersion: "", voipMaxLayer: 90, appData: .single(nil)) + let networkArguments = NetworkInitializationArguments(apiId: 2834, languagesCategory: "macos", appVersion: "", voipMaxLayer: 90, appData: .single(nil), autolockDeadine: .single(nil), encryptionProvider: OpenSSLEncryptionProvider()) let sharedContext = SharedAccountContext(accountManager: accountManager, networkArguments: networkArguments, rootPath: rootPath, encryptionParameters: encryptionParameters, displayUpgradeProgress: { _ in }) diff --git a/core-xprojects/EncryptionProviderMac/EncryptionProviderHeader.h b/core-xprojects/EncryptionProviderMac/EncryptionProviderHeader.h new file mode 100644 index 000000000..9401626d5 --- /dev/null +++ b/core-xprojects/EncryptionProviderMac/EncryptionProviderHeader.h @@ -0,0 +1,19 @@ +// +// EncryptionProvider.h +// EncryptionProvider +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for EncryptionProvider. +FOUNDATION_EXPORT double EncryptionProviderVersionNumber; + +//! Project version string for EncryptionProvider. +FOUNDATION_EXPORT const unsigned char EncryptionProviderVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import diff --git a/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.pbxproj b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..5227c81ca --- /dev/null +++ b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,871 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A790A2C1236AFB7D000451B5 /* EncryptionProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = A72D452A236AF6770052FA81 /* EncryptionProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A30C236B072F000451B5 /* EncryptionProviderHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = A790A2A0236AFA72000451B5 /* EncryptionProviderHeader.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A72D452A236AF6770052FA81 /* EncryptionProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EncryptionProvider.h; sourceTree = ""; }; + A72D4534236AF6F40052FA81 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A790A29E236AFA72000451B5 /* EncryptionProvider.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = EncryptionProvider.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A790A2A0236AFA72000451B5 /* EncryptionProviderHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EncryptionProviderHeader.h; sourceTree = ""; }; + A790A2A1236AFA72000451B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A790A29B236AFA72000451B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A72D451E236AF6770052FA81 = { + isa = PBXGroup; + children = ( + A72D4529236AF6770052FA81 /* Sources */, + A790A29F236AFA72000451B5 /* EncryptionProvider */, + A72D4528236AF6770052FA81 /* Products */, + A72D4533236AF6F40052FA81 /* Frameworks */, + ); + sourceTree = ""; + }; + A72D4528236AF6770052FA81 /* Products */ = { + isa = PBXGroup; + children = ( + A790A29E236AFA72000451B5 /* EncryptionProvider.framework */, + ); + name = Products; + sourceTree = ""; + }; + A72D4529236AF6770052FA81 /* Sources */ = { + isa = PBXGroup; + children = ( + A72D452A236AF6770052FA81 /* EncryptionProvider.h */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/EncryptionProvider/Sources"; + sourceTree = ""; + }; + A72D4533236AF6F40052FA81 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A72D4534236AF6F40052FA81 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A790A29F236AFA72000451B5 /* EncryptionProvider */ = { + isa = PBXGroup; + children = ( + A790A2A0236AFA72000451B5 /* EncryptionProviderHeader.h */, + A790A2A1236AFA72000451B5 /* Info.plist */, + ); + name = EncryptionProvider; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A790A299236AFA72000451B5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A2C1236AFB7D000451B5 /* EncryptionProvider.h in Headers */, + A790A30C236B072F000451B5 /* EncryptionProviderHeader.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A790A29D236AFA72000451B5 /* EncryptionProvider */ = { + isa = PBXNativeTarget; + buildConfigurationList = A790A2AF236AFA72000451B5 /* Build configuration list for PBXNativeTarget "EncryptionProvider" */; + buildPhases = ( + A790A299236AFA72000451B5 /* Headers */, + A790A29A236AFA72000451B5 /* Sources */, + A790A29B236AFA72000451B5 /* Frameworks */, + A790A29C236AFA72000451B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = EncryptionProvider; + productName = EncryptionProvider; + productReference = A790A29E236AFA72000451B5 /* EncryptionProvider.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A72D451F236AF6770052FA81 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A790A29D236AFA72000451B5 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A72D4522236AF6770052FA81 /* Build configuration list for PBXProject "EncryptionProvider_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A72D451E236AF6770052FA81; + productRefGroup = A72D4528236AF6770052FA81 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A790A29D236AFA72000451B5 /* EncryptionProvider */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A790A29C236AFA72000451B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A790A29A236AFA72000451B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A72D4536236AF7540052FA81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = DebugHockeyapp; + }; + A72D4538236AF75E0052FA81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = HockeyappMacAlpha; + }; + A72D453A236AF7670052FA81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = DebugAppStore; + }; + A72D453E236AF7780052FA81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = ReleaseAppStore; + }; + A72D4540236AF77E0052FA81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = ReleaseHockeyapp; + }; + A790A2B1236AFA72000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionProvider; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A790A2B2236AFA72000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionProvider; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A790A2B3236AFA72000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionProvider; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A790A2B5236AFA72000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionProvider; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A790A2B6236AFA72000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.EncryptionProvider; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A72D4522236AF6770052FA81 /* Build configuration list for PBXProject "EncryptionProvider_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A72D4536236AF7540052FA81 /* DebugHockeyapp */, + A72D4538236AF75E0052FA81 /* HockeyappMacAlpha */, + A72D453A236AF7670052FA81 /* DebugAppStore */, + A72D453E236AF7780052FA81 /* ReleaseAppStore */, + A72D4540236AF77E0052FA81 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + A790A2AF236AFA72000451B5 /* Build configuration list for PBXNativeTarget "EncryptionProvider" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A2B1236AFA72000451B5 /* DebugHockeyapp */, + A790A2B2236AFA72000451B5 /* HockeyappMacAlpha */, + A790A2B3236AFA72000451B5 /* DebugAppStore */, + A790A2B5236AFA72000451B5 /* ReleaseAppStore */, + A790A2B6236AFA72000451B5 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = A72D451F236AF6770052FA81 /* Project object */; +} diff --git a/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..61bd5ca3d --- /dev/null +++ b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/EncryptionProviderMac/EncryptionProvider_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9550516b362e93bfeea2e9ca2a36c5568d63b357 GIT binary patch literal 50859 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 S!Q8q3dlB#de~U1@ + + + + SchemeUserState + + EncryptionProvider.xcscheme_^#shared#^_ + + orderHint + 29 + + EncryptionProviderTests.xcscheme_^#shared#^_ + + orderHint + 1 + + + + diff --git a/RLottieMac/RLottieMac/Info.plist b/core-xprojects/EncryptionProviderMac/Info.plist similarity index 90% rename from RLottieMac/RLottieMac/Info.plist rename to core-xprojects/EncryptionProviderMac/Info.plist index 16fb8007e..0c4389ac7 100644 --- a/RLottieMac/RLottieMac/Info.plist +++ b/core-xprojects/EncryptionProviderMac/Info.plist @@ -19,6 +19,6 @@ CFBundleVersion $(CURRENT_PROJECT_VERSION) NSHumanReadableCopyright - Copyright © 2019 Mikhail Filimonov. All rights reserved. + Copyright © 2019 Telegram. All rights reserved. diff --git a/core-xprojects/MtProtoKit/MtProtoKit/Info.plist b/core-xprojects/MtProtoKit/MtProtoKit/Info.plist new file mode 100644 index 000000000..fb8e65096 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2015 Telegram. All rights reserved. + NSPrincipalClass + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit/MtProtoKit.h b/core-xprojects/MtProtoKit/MtProtoKit/MtProtoKit.h new file mode 100644 index 000000000..2e53cf3f6 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit/MtProtoKit.h @@ -0,0 +1,77 @@ +// +// MtProtoKit.h +// MtProtoKit +// +// Created by Peter on 01/05/15. +// Copyright (c) 2015 Telegram. All rights reserved. +// + +#import + +//! Project version number for MtProtoKit. +FOUNDATION_EXPORT double MtProtoKitVersionNumber; + +//! Project version string for MtProtoKit. +FOUNDATION_EXPORT const unsigned char MtProtoKitVersionString[]; + +#ifndef MtProtoKitFramework +# define MtProtoKitFramework 1 +#endif + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..74050ac19 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1548 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A790A319236B0F6C000451B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A318236B0F6C000451B5 /* Foundation.framework */; }; + A790A31B236B1199000451B5 /* EncryptionProvider.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A31A236B1199000451B5 /* EncryptionProvider.framework */; }; + D0119CC220CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; }; + D0119CC520CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; }; + D0119CCA20CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; }; + D0119CCD20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; }; + D015E019225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D015E01C225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; }; + D0185E732089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0185E762089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; }; + D020FAFB1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D020FAFE1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; }; + D038789E2332500A00DB441C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789D2332500A00DB441C /* libc++.tbd */; }; + D03878A02332503300DB441C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789F2332503300DB441C /* Security.framework */; }; + D03878A22332503E00DB441C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A12332503E00DB441C /* SystemConfiguration.framework */; }; + D03878A42332504600DB441C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A32332504600DB441C /* CFNetwork.framework */; }; + D0529D2C21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; }; + D0529D2F21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; }; + D073D2D81FB5E493009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; }; + D079AB9C1AF39B8000076F59 /* MtProtoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D079AB9B1AF39B8000076F59 /* MtProtoKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B0DF5E1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; }; + D0B0DF621DD7E7A3003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B4187B1D7E04CF004562A4 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187A1D7E04CF004562A4 /* libz.tbd */; }; + D0BFAE6220AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0BFAE6420AB505700793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; }; + D0C932241E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0C932271E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; }; + D0C9322C1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0C9322F1E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; }; + D0CAF2CD1D75E2570011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CAF2CF1D75E25B0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; }; + D0CAF2D91D75E3160011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CAF2DB1D75E31A0011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CAF2DD1D75E31E0011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; }; + D0CAF2DE1D75E31E0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; }; + D0CAF2E51D75EA790011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CAF2E81D75EA7E0011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; }; + D0CD97D21D74B91400F41187 /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97D51D74B91C00F41187 /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; }; + D0CD97D61D74B91E00F41187 /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97E01D74B93300F41187 /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; }; + D0CD97E11D74B93300F41187 /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; }; + D0CD97E21D74B93300F41187 /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; }; + D0CD97E31D74B93300F41187 /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; }; + D0CD97E41D74B93300F41187 /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; }; + D0CD97E51D74B93300F41187 /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; }; + D0CD97E61D74B93300F41187 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; }; + D0CD97E71D74B93300F41187 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; }; + D0CD97E81D74B94300F41187 /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97E91D74B94300F41187 /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97EA1D74B94300F41187 /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97EB1D74B94300F41187 /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97EC1D74B94300F41187 /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97ED1D74B94300F41187 /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97F81D74B94B00F41187 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; }; + D0CD97F91D74B94B00F41187 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; }; + D0CD97FA1D74B95000F41187 /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD97FC1D74B96300F41187 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; }; + D0CD97FD1D74B96300F41187 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; }; + D0CD97FE1D74B96300F41187 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; }; + D0CD97FF1D74B96300F41187 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; }; + D0CD98001D74B96300F41187 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; }; + D0CD98061D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; }; + D0CD98071D74B96C00F41187 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; }; + D0CD98081D74B96C00F41187 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; }; + D0CD98091D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; }; + D0CD980A1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; }; + D0CD98101D74B96F00F41187 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98121D74B99400F41187 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; }; + D0CD98131D74B99400F41187 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; }; + D0CD98141D74B99400F41187 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; }; + D0CD98151D74B99400F41187 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; }; + D0CD98161D74B99400F41187 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; }; + D0CD98171D74B99400F41187 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; }; + D0CD98181D74B99400F41187 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; }; + D0CD98191D74B99400F41187 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; }; + D0CD981A1D74B99400F41187 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; }; + D0CD981B1D74B99400F41187 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; }; + D0CD981C1D74B99400F41187 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; }; + D0CD981D1D74B99400F41187 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; }; + D0CD981E1D74B99400F41187 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; }; + D0CD981F1D74B99400F41187 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; }; + D0CD982E1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; }; + D0CD982F1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; }; + D0CD98301D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; }; + D0CD98311D74B9AA00F41187 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; }; + D0CD98321D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; }; + D0CD98331D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; }; + D0CD98341D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; }; + D0CD98351D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; }; + D0CD98361D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; }; + D0CD98371D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; }; + D0CD98381D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; }; + D0CD98391D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; }; + D0CD983A1D74B9AA00F41187 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; }; + D0CD983B1D74B9AA00F41187 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; }; + D0CD983C1D74B9AA00F41187 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; }; + D0CD984D1D74B9AE00F41187 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD984E1D74B9B700F41187 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; }; + D0CD984F1D74B9B700F41187 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; }; + D0CD98501D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; }; + D0CD98511D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; }; + D0CD98521D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; }; + D0CD98581D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; }; + D0CD98591D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; }; + D0CD985A1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; }; + D0CD985B1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; }; + D0CD98601D74B9D000F41187 /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98621D74B9D500F41187 /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; }; + D0CD98641D74B9D700F41187 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98671D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; }; + D0CD98681D74B9E200F41187 /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD986A1D74B9E900F41187 /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; }; + D0CD986C1D74B9EF00F41187 /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD986E1D74B9F400F41187 /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; }; + D0CD98701D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; }; + D0CD98721D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; }; + D0CD98741D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; }; + D0CD98761D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; }; + D0CD98781D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98791D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD987A1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD987E1D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; }; + D0CD987F1D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; }; + D0CD98801D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; }; + D0CD98841D74BA5100F41187 /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98851D74BA5100F41187 /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98861D74BA5100F41187 /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98871D74BA5100F41187 /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98881D74BA5100F41187 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD988E1D74BA5900F41187 /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; }; + D0CD988F1D74BA5900F41187 /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; }; + D0CD98901D74BA5900F41187 /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; }; + D0CD98911D74BA5900F41187 /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; }; + D0CD98921D74BA5900F41187 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; }; + D0CD989F1D74BA6500F41187 /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A01D74BA6500F41187 /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A11D74BA6500F41187 /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A21D74BA6500F41187 /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A31D74BA6500F41187 /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A41D74BA6500F41187 /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A51D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98A61D74BA6E00F41187 /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; }; + D0CD98A71D74BA6E00F41187 /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; }; + D0CD98A81D74BA6E00F41187 /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; }; + D0CD98A91D74BA6F00F41187 /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; }; + D0CD98AA1D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; }; + D0CD98AB1D74BA6F00F41187 /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; }; + D0CD98AC1D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; }; + D0CD98B41D74BA7500F41187 /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98B51D74BA7500F41187 /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98B61D74BA7500F41187 /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98BA1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; }; + D0CD98BB1D74BA7C00F41187 /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; }; + D0CD98BC1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; }; + D0CD98C01D74BA8200F41187 /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98C41D74BA8A00F41187 /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; }; + D0CD98C51D74BA8D00F41187 /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; }; + D0CD98C71D74BA9000F41187 /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; }; + D0CD98CA1D74BA9400F41187 /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; }; + D0CD98CC1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; }; + D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; }; + D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; }; + D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; + D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98EA1D75C0C100F41187 /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98EC1D75C0C500F41187 /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; }; + D0CD98EE1D75C0C900F41187 /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98F01D75C0D200F41187 /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; }; + D0CD98F21D75C0D700F41187 /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98F41D75C0DD00F41187 /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; }; + D0CD98F61D75C0E400F41187 /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98F71D75C0E400F41187 /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98F81D75C0E400F41187 /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98F91D75C0E400F41187 /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD98FA1D75C0E400F41187 /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD99001D75C0ED00F41187 /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; }; + D0CD99011D75C0ED00F41187 /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; }; + D0CD99021D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; }; + D0CD99031D75C0ED00F41187 /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; }; + D0CD99041D75C0ED00F41187 /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; }; + D0CD990A1D75C0F300F41187 /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CD990C1D75C0F900F41187 /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; }; + D0CFBB881FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0CFBB8B1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0E2E17820866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; }; + D0E2E17B20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; }; + D0E9B9EE1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0E9B9F11F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestErrorContext.h; path = MtProtoKit/MTRequestErrorContext.h; sourceTree = ""; }; + 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestErrorContext.m; path = MtProtoKit/MTRequestErrorContext.m; sourceTree = ""; }; + 93DBD23318B2D9AA00631ADC /* MTTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MTTime.h; path = MtProtoKit/MTTime.h; sourceTree = ""; }; + 93DBD23418B2DA1E00631ADC /* MTTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTime.m; path = MtProtoKit/MTTime.m; sourceTree = ""; }; + A790A318236B0F6C000451B5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + A790A31A236B1199000451B5 /* EncryptionProvider.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionProvider.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281E5236C26400000A9BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D00354711C173CD0006610DA /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + D00354731C173CD9006610DA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + D010DB7B1D70ABEE0012AD96 /* MTRsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRsa.h; sourceTree = ""; }; + D010DB7C1D70ABEE0012AD96 /* MTRsa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRsa.m; sourceTree = ""; }; + D010DB7F1D70B3B90012AD96 /* MTAes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTAes.h; sourceTree = ""; }; + D010DB801D70B3B90012AD96 /* MTAes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTAes.m; sourceTree = ""; }; + D0119CBF20CAD34800895300 /* MTConnectionProbing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTConnectionProbing.h; sourceTree = ""; }; + D0119CC020CAD34800895300 /* MTConnectionProbing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTConnectionProbing.m; sourceTree = ""; }; + D0119CC720CAD65D00895300 /* PingFoundation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PingFoundation.h; sourceTree = ""; }; + D0119CC820CAD65D00895300 /* PingFoundation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PingFoundation.m; sourceTree = ""; }; + D015E016225CD19E00CB9E8A /* MTGzip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTGzip.h; sourceTree = ""; }; + D015E017225CD19E00CB9E8A /* MTGzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTGzip.m; sourceTree = ""; }; + D0185E702089D265005E1A6C /* MTProxyConnectivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTProxyConnectivity.h; sourceTree = ""; }; + D0185E712089D265005E1A6C /* MTProxyConnectivity.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTProxyConnectivity.m; sourceTree = ""; }; + D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTHttpRequestOperation.h; path = MtProtoKit/MTHttpRequestOperation.h; sourceTree = ""; }; + D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTHttpRequestOperation.m; path = MtProtoKit/MTHttpRequestOperation.m; sourceTree = ""; }; + D0254CC518B10404009452AA /* MTEncryption.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTEncryption.h; path = MtProtoKit/MTEncryption.h; sourceTree = ""; }; + D038789D2332500A00DB441C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; + D038789F2332503300DB441C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + D03878A12332503E00DB441C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + D03878A32332504600DB441C /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + D0503AD818B027F80074C3FE /* MTOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTOutputStream.h; path = MtProtoKit/MTOutputStream.h; sourceTree = ""; }; + D0503AD918B027F80074C3FE /* MTOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTOutputStream.m; path = MtProtoKit/MTOutputStream.m; sourceTree = ""; }; + D0503ADC18B029480074C3FE /* MTInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInputStream.h; path = MtProtoKit/MTInputStream.h; sourceTree = ""; }; + D0503ADD18B029480074C3FE /* MTInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTInputStream.m; path = MtProtoKit/MTInputStream.m; sourceTree = ""; }; + D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTTransportSchemeStats.h; sourceTree = ""; }; + D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTTransportSchemeStats.m; sourceTree = ""; }; + D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTDiscoverConnectionSignals.h; sourceTree = ""; }; + D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTDiscoverConnectionSignals.m; sourceTree = ""; }; + D05A831718AFB3F9007F1076 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D05A839C18AFB75B007F1076 /* MTContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTContext.m; path = MtProtoKit/MTContext.m; sourceTree = ""; }; + D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterTransferAuthAction.m; path = MtProtoKit/MTDatacenterTransferAuthAction.m; sourceTree = ""; }; + D05A839E18AFB75B007F1076 /* MTContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTContext.h; path = MtProtoKit/MTContext.h; sourceTree = ""; }; + D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterTransferAuthAction.h; path = MtProtoKit/MTDatacenterTransferAuthAction.h; sourceTree = ""; }; + D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthAction.h; path = MtProtoKit/MTDatacenterAuthAction.h; sourceTree = ""; }; + D05A83A318AFB75B007F1076 /* MTKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTKeychain.m; path = MtProtoKit/MTKeychain.m; sourceTree = ""; }; + D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthMessageService.m; path = MtProtoKit/MTDatacenterAuthMessageService.m; sourceTree = ""; }; + D05A83B518AFB75B007F1076 /* MTSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSerialization.h; path = MtProtoKit/MTSerialization.h; sourceTree = ""; }; + D05A83C018AFB75B007F1076 /* MTKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTKeychain.h; path = MtProtoKit/MTKeychain.h; sourceTree = ""; }; + D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterSaltInfo.m; path = MtProtoKit/MTDatacenterSaltInfo.m; sourceTree = ""; }; + D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterSaltInfo.h; path = MtProtoKit/MTDatacenterSaltInfo.h; sourceTree = ""; }; + D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthInfo.m; path = MtProtoKit/MTDatacenterAuthInfo.m; sourceTree = ""; }; + D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthInfo.h; path = MtProtoKit/MTDatacenterAuthInfo.h; sourceTree = ""; }; + D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddress.m; path = MtProtoKit/MTDatacenterAddress.m; sourceTree = ""; }; + D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddress.h; path = MtProtoKit/MTDatacenterAddress.h; sourceTree = ""; }; + D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddressSet.m; path = MtProtoKit/MTDatacenterAddressSet.m; sourceTree = ""; }; + D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddressSet.h; path = MtProtoKit/MTDatacenterAddressSet.h; sourceTree = ""; }; + D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthAction.m; path = MtProtoKit/MTDatacenterAuthAction.m; sourceTree = ""; }; + D05A83D118AFB75B007F1076 /* MTInternalId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInternalId.h; path = MtProtoKit/MTInternalId.h; sourceTree = ""; }; + D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDiscoverDatacenterAddressAction.m; path = MtProtoKit/MTDiscoverDatacenterAddressAction.m; sourceTree = ""; }; + D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDiscoverDatacenterAddressAction.h; path = MtProtoKit/MTDiscoverDatacenterAddressAction.h; sourceTree = ""; }; + D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthMessageService.h; path = MtProtoKit/MTDatacenterAuthMessageService.h; sourceTree = ""; }; + D05A849F18AFCF8E007F1076 /* MTQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTQueue.h; path = MtProtoKit/MTQueue.h; sourceTree = ""; }; + D05A84A018AFCF8E007F1076 /* MTQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTQueue.m; path = MtProtoKit/MTQueue.m; sourceTree = ""; }; + D05A84D818AFE81C007F1076 /* MTTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimer.m; path = MtProtoKit/MTTimer.m; sourceTree = ""; }; + D05A84D918AFE81D007F1076 /* MTTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimer.h; path = MtProtoKit/MTTimer.h; sourceTree = ""; }; + D05A84DA18AFE81D007F1076 /* MTLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTLogging.h; path = MtProtoKit/MTLogging.h; sourceTree = ""; }; + D05A84DB18AFE81D007F1076 /* MTLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTLogging.m; path = MtProtoKit/MTLogging.m; sourceTree = ""; }; + D05A84DC18AFE81D007F1076 /* MTEncryption.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTEncryption.m; path = MtProtoKit/MTEncryption.m; sourceTree = ""; }; + D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPRequestOperation.h; sourceTree = ""; }; + D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFHTTPRequestOperation.m; sourceTree = ""; }; + D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFURLConnectionOperation.h; sourceTree = ""; }; + D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFURLConnectionOperation.m; sourceTree = ""; }; + D05A84F718AFF259007F1076 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDAsyncSocket.h; sourceTree = ""; }; + D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDAsyncSocket.m; sourceTree = ""; }; + D063A2F918B14AB500C65116 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libcrypto.dylib; sourceTree = DEVELOPER_DIR; }; + D063A32018B1618D00C65116 /* MTOutgoingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTOutgoingMessage.h; path = MtProtoKit/MTOutgoingMessage.h; sourceTree = ""; }; + D063A32118B1618D00C65116 /* MTOutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTOutgoingMessage.m; path = MtProtoKit/MTOutgoingMessage.m; sourceTree = ""; }; + D063A32218B1618D00C65116 /* MTPreparedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPreparedMessage.h; path = MtProtoKit/MTPreparedMessage.h; sourceTree = ""; }; + D063A32318B1618D00C65116 /* MTPreparedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPreparedMessage.m; path = MtProtoKit/MTPreparedMessage.m; sourceTree = ""; }; + D063A32418B1618D00C65116 /* MTProto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTProto.h; path = MtProtoKit/MTProto.h; sourceTree = ""; }; + D063A32518B1618D00C65116 /* MTProto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTProto.m; path = MtProtoKit/MTProto.m; sourceTree = ""; }; + D063A32618B1618D00C65116 /* MTSessionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSessionInfo.h; path = MtProtoKit/MTSessionInfo.h; sourceTree = ""; }; + D063A32718B1618D00C65116 /* MTSessionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTSessionInfo.m; path = MtProtoKit/MTSessionInfo.m; sourceTree = ""; }; + D063A32818B1618D00C65116 /* MTTimeFixContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimeFixContext.h; path = MtProtoKit/MTTimeFixContext.h; sourceTree = ""; }; + D063A32918B1618D00C65116 /* MTTimeFixContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimeFixContext.m; path = MtProtoKit/MTTimeFixContext.m; sourceTree = ""; }; + D063A33418B161B600C65116 /* MTTransportScheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransportScheme.h; path = MtProtoKit/MTTransportScheme.h; sourceTree = ""; }; + D063A33518B161B600C65116 /* MTTransportScheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransportScheme.m; path = MtProtoKit/MTTransportScheme.m; sourceTree = ""; }; + D063A33618B161B600C65116 /* MTIncomingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTIncomingMessage.h; path = MtProtoKit/MTIncomingMessage.h; sourceTree = ""; }; + D063A33718B161B600C65116 /* MTIncomingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTIncomingMessage.m; path = MtProtoKit/MTIncomingMessage.m; sourceTree = ""; }; + D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageEncryptionKey.h; path = MtProtoKit/MTMessageEncryptionKey.h; sourceTree = ""; }; + D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessageEncryptionKey.m; path = MtProtoKit/MTMessageEncryptionKey.m; sourceTree = ""; }; + D063A35018B1631900C65116 /* MTMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageService.h; path = MtProtoKit/MTMessageService.h; sourceTree = ""; }; + D063A35118B1631900C65116 /* MTMessageTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageTransaction.h; path = MtProtoKit/MTMessageTransaction.h; sourceTree = ""; }; + D063A35218B1631900C65116 /* MTMessageTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessageTransaction.m; path = MtProtoKit/MTMessageTransaction.m; sourceTree = ""; }; + D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimeSyncMessageService.h; path = MtProtoKit/MTTimeSyncMessageService.h; sourceTree = ""; }; + D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimeSyncMessageService.m; path = MtProtoKit/MTTimeSyncMessageService.m; sourceTree = ""; }; + D063A35F18B164D600C65116 /* MTApiEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTApiEnvironment.h; path = MtProtoKit/MTApiEnvironment.h; sourceTree = ""; }; + D063A36018B164D600C65116 /* MTApiEnvironment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTApiEnvironment.m; path = MtProtoKit/MTApiEnvironment.m; sourceTree = ""; }; + D063A36118B164D600C65116 /* MTDropResponseContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDropResponseContext.h; path = MtProtoKit/MTDropResponseContext.h; sourceTree = ""; }; + D063A36218B164D600C65116 /* MTDropResponseContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDropResponseContext.m; path = MtProtoKit/MTDropResponseContext.m; sourceTree = ""; }; + D063A36318B164D600C65116 /* MTRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequest.h; path = MtProtoKit/MTRequest.h; sourceTree = ""; }; + D063A36418B164D600C65116 /* MTRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequest.m; path = MtProtoKit/MTRequest.m; sourceTree = ""; }; + D063A36518B164D600C65116 /* MTRequestContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestContext.h; path = MtProtoKit/MTRequestContext.h; sourceTree = ""; }; + D063A36618B164D600C65116 /* MTRequestContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestContext.m; path = MtProtoKit/MTRequestContext.m; sourceTree = ""; }; + D063A36718B164D600C65116 /* MTRequestMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestMessageService.h; path = MtProtoKit/MTRequestMessageService.h; sourceTree = ""; }; + D063A36818B164D600C65116 /* MTRequestMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestMessageService.m; path = MtProtoKit/MTRequestMessageService.m; sourceTree = ""; }; + D063A37D18B164E600C65116 /* MTResendMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTResendMessageService.h; path = MtProtoKit/MTResendMessageService.h; sourceTree = ""; }; + D063A37E18B164E600C65116 /* MTResendMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTResendMessageService.m; path = MtProtoKit/MTResendMessageService.m; sourceTree = ""; }; + D063A38318B164F800C65116 /* MTNetworkAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTNetworkAvailability.h; path = MtProtoKit/MTNetworkAvailability.h; sourceTree = ""; }; + D063A38418B164F800C65116 /* MTNetworkAvailability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTNetworkAvailability.m; path = MtProtoKit/MTNetworkAvailability.m; sourceTree = ""; }; + D063A38518B164F800C65116 /* MTTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransport.h; path = MtProtoKit/MTTransport.h; sourceTree = ""; }; + D063A38618B164F800C65116 /* MTTransport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransport.m; path = MtProtoKit/MTTransport.m; sourceTree = ""; }; + D063A38718B164F800C65116 /* MTTransportTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransportTransaction.h; path = MtProtoKit/MTTransportTransaction.h; sourceTree = ""; }; + D063A38818B164F800C65116 /* MTTransportTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransportTransaction.m; path = MtProtoKit/MTTransportTransaction.m; sourceTree = ""; }; + D063A39518B1650400C65116 /* MTTcpConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpConnection.h; path = MtProtoKit/MTTcpConnection.h; sourceTree = ""; }; + D063A39618B1650400C65116 /* MTTcpConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpConnection.m; path = MtProtoKit/MTTcpConnection.m; sourceTree = ""; }; + D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpConnectionBehaviour.h; path = MtProtoKit/MTTcpConnectionBehaviour.h; sourceTree = ""; }; + D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpConnectionBehaviour.m; path = MtProtoKit/MTTcpConnectionBehaviour.m; sourceTree = ""; }; + D063A39918B1650400C65116 /* MTTcpTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpTransport.h; path = MtProtoKit/MTTcpTransport.h; sourceTree = ""; }; + D063A39A18B1650400C65116 /* MTTcpTransport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpTransport.m; path = MtProtoKit/MTTcpTransport.m; sourceTree = ""; }; + D079AB971AF39B8000076F59 /* MtProtoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D079AB9B1AF39B8000076F59 /* MtProtoKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MtProtoKit.h; sourceTree = ""; }; + D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTFileBasedKeychain.h; path = MtProtoKit/MTFileBasedKeychain.h; sourceTree = ""; }; + D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTFileBasedKeychain.m; path = MtProtoKit/MTFileBasedKeychain.m; sourceTree = ""; }; + D0B0DF5C1DD7E75B003BA12D /* MTBag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTBag.m; sourceTree = ""; }; + D0B0DF601DD7E768003BA12D /* MTBag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTBag.h; sourceTree = ""; }; + D0B4187A1D7E04CF004562A4 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; }; + D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTDatacenterVerificationData.h; sourceTree = ""; }; + D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTDatacenterVerificationData.m; sourceTree = ""; }; + D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTBindingTempAuthKeyContext.h; sourceTree = ""; }; + D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTBindingTempAuthKeyContext.m; sourceTree = ""; }; + D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTNetworkUsageCalculationInfo.h; sourceTree = ""; }; + D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTNetworkUsageCalculationInfo.m; sourceTree = ""; }; + D0C932291E095E280074F044 /* MTNetworkUsageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTNetworkUsageManager.h; sourceTree = ""; }; + D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTNetworkUsageManager.m; sourceTree = ""; }; + D0CAF2C91D75E24C0011F558 /* MTSignal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTSignal.h; sourceTree = ""; }; + D0CAF2CA1D75E24C0011F558 /* MTSignal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTSignal.m; sourceTree = ""; }; + D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTSubscriber.h; sourceTree = ""; }; + D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTSubscriber.m; sourceTree = ""; }; + D0CAF2D51D75E2840011F558 /* MTDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTDisposable.h; sourceTree = ""; }; + D0CAF2D61D75E2840011F558 /* MTDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTDisposable.m; sourceTree = ""; }; + D0CAF2E11D75E7F30011F558 /* MTAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTAtomic.h; sourceTree = ""; }; + D0CAF2E21D75E7F30011F558 /* MTAtomic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTAtomic.m; sourceTree = ""; }; + D0CAF2EB1D75F4520011F558 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + D0CAF2EE1D75F4E20011F558 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + D0CD990F1D75C16100F41187 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = openssl/iOS/libcrypto.a; sourceTree = ""; }; + D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBadMsgNotificationMessage.h; path = MtProtoKit/MTBadMsgNotificationMessage.h; sourceTree = ""; }; + D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBadMsgNotificationMessage.m; path = MtProtoKit/MTBadMsgNotificationMessage.m; sourceTree = ""; }; + D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBuffer.h; path = MtProtoKit/MTBuffer.h; sourceTree = ""; }; + D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBuffer.m; path = MtProtoKit/MTBuffer.m; sourceTree = ""; }; + D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBufferReader.h; path = MtProtoKit/MTBufferReader.h; sourceTree = ""; }; + D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBufferReader.m; path = MtProtoKit/MTBufferReader.m; sourceTree = ""; }; + D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDestroySessionResponseMessage.h; path = MtProtoKit/MTDestroySessionResponseMessage.h; sourceTree = ""; }; + D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDestroySessionResponseMessage.m; path = MtProtoKit/MTDestroySessionResponseMessage.m; sourceTree = ""; }; + D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDropRpcResultMessage.h; path = MtProtoKit/MTDropRpcResultMessage.h; sourceTree = ""; }; + D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDropRpcResultMessage.m; path = MtProtoKit/MTDropRpcResultMessage.m; sourceTree = ""; }; + D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTExportedAuthorizationData.h; path = MtProtoKit/MTExportedAuthorizationData.h; sourceTree = ""; }; + D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTExportedAuthorizationData.m; path = MtProtoKit/MTExportedAuthorizationData.m; sourceTree = ""; }; + D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTFutureSaltsMessage.h; path = MtProtoKit/MTFutureSaltsMessage.h; sourceTree = ""; }; + D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTFutureSaltsMessage.m; path = MtProtoKit/MTFutureSaltsMessage.m; sourceTree = ""; }; + D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInternalMessageParser.h; path = MtProtoKit/MTInternalMessageParser.h; sourceTree = ""; }; + D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTInternalMessageParser.m; path = MtProtoKit/MTInternalMessageParser.m; sourceTree = ""; }; + D0D1A0141ADD983C007D9ED6 /* MTMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessage.h; path = MtProtoKit/MTMessage.h; sourceTree = ""; }; + D0D1A0151ADD983C007D9ED6 /* MTMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessage.m; path = MtProtoKit/MTMessage.m; sourceTree = ""; }; + D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgAllInfoMessage.h; path = MtProtoKit/MTMsgAllInfoMessage.h; sourceTree = ""; }; + D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgAllInfoMessage.m; path = MtProtoKit/MTMsgAllInfoMessage.m; sourceTree = ""; }; + D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgContainerMessage.h; path = MtProtoKit/MTMsgContainerMessage.h; sourceTree = ""; }; + D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgContainerMessage.m; path = MtProtoKit/MTMsgContainerMessage.m; sourceTree = ""; }; + D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgDetailedInfoMessage.h; path = MtProtoKit/MTMsgDetailedInfoMessage.h; sourceTree = ""; }; + D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgDetailedInfoMessage.m; path = MtProtoKit/MTMsgDetailedInfoMessage.m; sourceTree = ""; }; + D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgResendReqMessage.h; path = MtProtoKit/MTMsgResendReqMessage.h; sourceTree = ""; }; + D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgResendReqMessage.m; path = MtProtoKit/MTMsgResendReqMessage.m; sourceTree = ""; }; + D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsAckMessage.h; path = MtProtoKit/MTMsgsAckMessage.h; sourceTree = ""; }; + D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsAckMessage.m; path = MtProtoKit/MTMsgsAckMessage.m; sourceTree = ""; }; + D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsStateInfoMessage.h; path = MtProtoKit/MTMsgsStateInfoMessage.h; sourceTree = ""; }; + D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsStateInfoMessage.m; path = MtProtoKit/MTMsgsStateInfoMessage.m; sourceTree = ""; }; + D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsStateReqMessage.h; path = MtProtoKit/MTMsgsStateReqMessage.h; sourceTree = ""; }; + D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsStateReqMessage.m; path = MtProtoKit/MTMsgsStateReqMessage.m; sourceTree = ""; }; + D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTNewSessionCreatedMessage.h; path = MtProtoKit/MTNewSessionCreatedMessage.h; sourceTree = ""; }; + D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTNewSessionCreatedMessage.m; path = MtProtoKit/MTNewSessionCreatedMessage.m; sourceTree = ""; }; + D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPingMessage.h; path = MtProtoKit/MTPingMessage.h; sourceTree = ""; }; + D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPingMessage.m; path = MtProtoKit/MTPingMessage.m; sourceTree = ""; }; + D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPongMessage.h; path = MtProtoKit/MTPongMessage.h; sourceTree = ""; }; + D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPongMessage.m; path = MtProtoKit/MTPongMessage.m; sourceTree = ""; }; + D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTResPqMessage.h; path = MtProtoKit/MTResPqMessage.h; sourceTree = ""; }; + D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTResPqMessage.m; path = MtProtoKit/MTResPqMessage.m; sourceTree = ""; }; + D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRpcError.h; path = MtProtoKit/MTRpcError.h; sourceTree = ""; }; + D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRpcError.m; path = MtProtoKit/MTRpcError.m; sourceTree = ""; }; + D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRpcResultMessage.h; path = MtProtoKit/MTRpcResultMessage.h; sourceTree = ""; }; + D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRpcResultMessage.m; path = MtProtoKit/MTRpcResultMessage.m; sourceTree = ""; }; + D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTServerDhInnerDataMessage.h; path = MtProtoKit/MTServerDhInnerDataMessage.h; sourceTree = ""; }; + D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTServerDhInnerDataMessage.m; path = MtProtoKit/MTServerDhInnerDataMessage.m; sourceTree = ""; }; + D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTServerDhParamsMessage.h; path = MtProtoKit/MTServerDhParamsMessage.h; sourceTree = ""; }; + D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTServerDhParamsMessage.m; path = MtProtoKit/MTServerDhParamsMessage.m; sourceTree = ""; }; + D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSetClientDhParamsResponseMessage.h; path = MtProtoKit/MTSetClientDhParamsResponseMessage.h; sourceTree = ""; }; + D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTSetClientDhParamsResponseMessage.m; path = MtProtoKit/MTSetClientDhParamsResponseMessage.m; sourceTree = ""; }; + D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddressListData.h; path = MtProtoKit/MTDatacenterAddressListData.h; sourceTree = ""; }; + D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddressListData.m; path = MtProtoKit/MTDatacenterAddressListData.m; sourceTree = ""; }; + D0D1A0711ADDE2FC007D9ED6 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + D0E2E17520866780005737E8 /* MTDNS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTDNS.h; sourceTree = ""; }; + D0E2E17620866780005737E8 /* MTDNS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTDNS.m; sourceTree = ""; }; + D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTBackupAddressSignals.h; sourceTree = ""; }; + D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTBackupAddressSignals.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D079AB931AF39B8000076F59 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A31B236B1199000451B5 /* EncryptionProvider.framework in Frameworks */, + A790A319236B0F6C000451B5 /* Foundation.framework in Frameworks */, + D03878A42332504600DB441C /* CFNetwork.framework in Frameworks */, + D03878A22332503E00DB441C /* SystemConfiguration.framework in Frameworks */, + D03878A02332503300DB441C /* Security.framework in Frameworks */, + D038789E2332500A00DB441C /* libc++.tbd in Frameworks */, + D0B4187B1D7E04CF004562A4 /* libz.tbd in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9389BC4F18DA1EDB00F9C1A6 /* Transport Scheme */ = { + isa = PBXGroup; + children = ( + D063A33418B161B600C65116 /* MTTransportScheme.h */, + D063A33518B161B600C65116 /* MTTransportScheme.m */, + D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */, + D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */, + ); + name = "Transport Scheme"; + sourceTree = ""; + }; + D05A830918AFB3F9007F1076 = { + isa = PBXGroup; + children = ( + D05A84E718AFF0EE007F1076 /* Third Party */, + D05A849B18AFCA3D007F1076 /* MtProtoKit */, + D079AB981AF39B8000076F59 /* MtProtoKit */, + D05A831618AFB3F9007F1076 /* Frameworks */, + D05A831518AFB3F9007F1076 /* Products */, + ); + sourceTree = ""; + }; + D05A831518AFB3F9007F1076 /* Products */ = { + isa = PBXGroup; + children = ( + D079AB971AF39B8000076F59 /* MtProtoKit.framework */, + ); + name = Products; + sourceTree = ""; + }; + D05A831618AFB3F9007F1076 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A790A31A236B1199000451B5 /* EncryptionProvider.framework */, + A790A318236B0F6C000451B5 /* Foundation.framework */, + D03878A32332504600DB441C /* CFNetwork.framework */, + D03878A12332503E00DB441C /* SystemConfiguration.framework */, + D038789F2332503300DB441C /* Security.framework */, + D038789D2332500A00DB441C /* libc++.tbd */, + D0B4187A1D7E04CF004562A4 /* libz.tbd */, + D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */, + D0CAF2EE1D75F4E20011F558 /* UIKit.framework */, + D0CAF2EB1D75F4520011F558 /* Security.framework */, + D0CD990F1D75C16100F41187 /* libcrypto.a */, + D00354731C173CD9006610DA /* SystemConfiguration.framework */, + D00354711C173CD0006610DA /* libz.tbd */, + D0D1A0711ADDE2FC007D9ED6 /* libz.dylib */, + D063A2F918B14AB500C65116 /* libcrypto.dylib */, + D05A831718AFB3F9007F1076 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D05A842B18AFB770007F1076 /* Utils */ = { + isa = PBXGroup; + children = ( + D0CD99111D75C5D100F41187 /* Signals */, + 93DBD23318B2D9AA00631ADC /* MTTime.h */, + 93DBD23418B2DA1E00631ADC /* MTTime.m */, + D05A84D918AFE81D007F1076 /* MTTimer.h */, + D05A84D818AFE81C007F1076 /* MTTimer.m */, + D05A84DA18AFE81D007F1076 /* MTLogging.h */, + D05A84DB18AFE81D007F1076 /* MTLogging.m */, + D0254CC518B10404009452AA /* MTEncryption.h */, + D05A84DC18AFE81D007F1076 /* MTEncryption.m */, + D05A83D118AFB75B007F1076 /* MTInternalId.h */, + D05A849F18AFCF8E007F1076 /* MTQueue.h */, + D05A84A018AFCF8E007F1076 /* MTQueue.m */, + D0503AD818B027F80074C3FE /* MTOutputStream.h */, + D0503AD918B027F80074C3FE /* MTOutputStream.m */, + D0503ADC18B029480074C3FE /* MTInputStream.h */, + D0503ADD18B029480074C3FE /* MTInputStream.m */, + D010DB7B1D70ABEE0012AD96 /* MTRsa.h */, + D010DB7C1D70ABEE0012AD96 /* MTRsa.m */, + D010DB7F1D70B3B90012AD96 /* MTAes.h */, + D010DB801D70B3B90012AD96 /* MTAes.m */, + D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */, + D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */, + D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */, + D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */, + D0C932291E095E280074F044 /* MTNetworkUsageManager.h */, + D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */, + D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */, + D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */, + D0E2E17520866780005737E8 /* MTDNS.h */, + D0E2E17620866780005737E8 /* MTDNS.m */, + D0185E702089D265005E1A6C /* MTProxyConnectivity.h */, + D0185E712089D265005E1A6C /* MTProxyConnectivity.m */, + D0119CBF20CAD34800895300 /* MTConnectionProbing.h */, + D0119CC020CAD34800895300 /* MTConnectionProbing.m */, + D0119CC720CAD65D00895300 /* PingFoundation.h */, + D0119CC820CAD65D00895300 /* PingFoundation.m */, + D015E016225CD19E00CB9E8A /* MTGzip.h */, + D015E017225CD19E00CB9E8A /* MTGzip.m */, + ); + name = Utils; + sourceTree = ""; + }; + D05A842C18AFB783007F1076 /* Serialization */ = { + isa = PBXGroup; + children = ( + D05A83B518AFB75B007F1076 /* MTSerialization.h */, + D0D1A0681ADD9844007D9ED6 /* Messages */, + ); + name = Serialization; + sourceTree = ""; + }; + D05A842D18AFB79D007F1076 /* Keychain */ = { + isa = PBXGroup; + children = ( + D05A83C018AFB75B007F1076 /* MTKeychain.h */, + D05A83A318AFB75B007F1076 /* MTKeychain.m */, + D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */, + D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */, + ); + name = Keychain; + sourceTree = ""; + }; + D05A842E18AFB7B7007F1076 /* MTProto */ = { + isa = PBXGroup; + children = ( + D063A32418B1618D00C65116 /* MTProto.h */, + D063A32518B1618D00C65116 /* MTProto.m */, + D063A32618B1618D00C65116 /* MTSessionInfo.h */, + D063A32718B1618D00C65116 /* MTSessionInfo.m */, + D063A32818B1618D00C65116 /* MTTimeFixContext.h */, + D063A32918B1618D00C65116 /* MTTimeFixContext.m */, + D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */, + D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */, + D063A32218B1618D00C65116 /* MTPreparedMessage.h */, + D063A32318B1618D00C65116 /* MTPreparedMessage.m */, + D063A32018B1618D00C65116 /* MTOutgoingMessage.h */, + D063A32118B1618D00C65116 /* MTOutgoingMessage.m */, + D063A33618B161B600C65116 /* MTIncomingMessage.h */, + D063A33718B161B600C65116 /* MTIncomingMessage.m */, + D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */, + D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */, + D05A843018AFB875007F1076 /* Service */, + ); + name = MTProto; + sourceTree = ""; + }; + D05A843018AFB875007F1076 /* Service */ = { + isa = PBXGroup; + children = ( + D063A35018B1631900C65116 /* MTMessageService.h */, + D063A35118B1631900C65116 /* MTMessageTransaction.h */, + D063A35218B1631900C65116 /* MTMessageTransaction.m */, + D05A843118AFB897007F1076 /* Time Synchronization */, + D05A843218AFB8A9007F1076 /* RPC */, + D05A843318AFB8B3007F1076 /* Message Resending */, + ); + name = Service; + sourceTree = ""; + }; + D05A843118AFB897007F1076 /* Time Synchronization */ = { + isa = PBXGroup; + children = ( + D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */, + D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */, + ); + name = "Time Synchronization"; + sourceTree = ""; + }; + D05A843218AFB8A9007F1076 /* RPC */ = { + isa = PBXGroup; + children = ( + D063A36718B164D600C65116 /* MTRequestMessageService.h */, + D063A36818B164D600C65116 /* MTRequestMessageService.m */, + D063A36318B164D600C65116 /* MTRequest.h */, + D063A36418B164D600C65116 /* MTRequest.m */, + D063A36518B164D600C65116 /* MTRequestContext.h */, + D063A36618B164D600C65116 /* MTRequestContext.m */, + 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */, + 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */, + D063A36118B164D600C65116 /* MTDropResponseContext.h */, + D063A36218B164D600C65116 /* MTDropResponseContext.m */, + D063A35F18B164D600C65116 /* MTApiEnvironment.h */, + D063A36018B164D600C65116 /* MTApiEnvironment.m */, + ); + name = RPC; + sourceTree = ""; + }; + D05A843318AFB8B3007F1076 /* Message Resending */ = { + isa = PBXGroup; + children = ( + D063A37D18B164E600C65116 /* MTResendMessageService.h */, + D063A37E18B164E600C65116 /* MTResendMessageService.m */, + ); + name = "Message Resending"; + sourceTree = ""; + }; + D05A843418AFB925007F1076 /* Context */ = { + isa = PBXGroup; + children = ( + D05A839E18AFB75B007F1076 /* MTContext.h */, + D05A839C18AFB75B007F1076 /* MTContext.m */, + D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */, + D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */, + 9389BC4F18DA1EDB00F9C1A6 /* Transport Scheme */, + D05A843518AFB941007F1076 /* Discover Address */, + D05A843618AFB955007F1076 /* Authorization */, + ); + name = Context; + sourceTree = ""; + }; + D05A843518AFB941007F1076 /* Discover Address */ = { + isa = PBXGroup; + children = ( + D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */, + D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */, + ); + name = "Discover Address"; + sourceTree = ""; + }; + D05A843618AFB955007F1076 /* Authorization */ = { + isa = PBXGroup; + children = ( + D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */, + D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */, + D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */, + D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */, + D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */, + D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */, + ); + name = Authorization; + sourceTree = ""; + }; + D05A843718AFB985007F1076 /* Datacenter */ = { + isa = PBXGroup; + children = ( + D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */, + D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */, + D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */, + D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */, + D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */, + D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */, + D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */, + D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */, + D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */, + D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */, + ); + name = Datacenter; + sourceTree = ""; + }; + D05A843818AFB9C4007F1076 /* Transport */ = { + isa = PBXGroup; + children = ( + D063A38318B164F800C65116 /* MTNetworkAvailability.h */, + D063A38418B164F800C65116 /* MTNetworkAvailability.m */, + D063A38518B164F800C65116 /* MTTransport.h */, + D063A38618B164F800C65116 /* MTTransport.m */, + D063A38718B164F800C65116 /* MTTransportTransaction.h */, + D063A38818B164F800C65116 /* MTTransportTransaction.m */, + D05A843918AFB9DA007F1076 /* TCP */, + ); + name = Transport; + sourceTree = ""; + }; + D05A843918AFB9DA007F1076 /* TCP */ = { + isa = PBXGroup; + children = ( + D063A39918B1650400C65116 /* MTTcpTransport.h */, + D063A39A18B1650400C65116 /* MTTcpTransport.m */, + D063A39518B1650400C65116 /* MTTcpConnection.h */, + D063A39618B1650400C65116 /* MTTcpConnection.m */, + D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */, + D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */, + ); + name = TCP; + sourceTree = ""; + }; + D05A849B18AFCA3D007F1076 /* MtProtoKit */ = { + isa = PBXGroup; + children = ( + D05A842B18AFB770007F1076 /* Utils */, + D05A842C18AFB783007F1076 /* Serialization */, + D05A842D18AFB79D007F1076 /* Keychain */, + D05A843418AFB925007F1076 /* Context */, + D05A843718AFB985007F1076 /* Datacenter */, + D05A842E18AFB7B7007F1076 /* MTProto */, + D05A843818AFB9C4007F1076 /* Transport */, + ); + name = MtProtoKit; + path = "../../submodules/telegram-ios/submodules/MtProtoKit"; + sourceTree = ""; + }; + D05A84E718AFF0EE007F1076 /* Third Party */ = { + isa = PBXGroup; + children = ( + D05A84E818AFF259007F1076 /* AFNetworking */, + D05A84F618AFF259007F1076 /* AsyncSocket */, + ); + name = "Third Party"; + path = "../../submodules/telegram-ios/submodules/MtProtoKit/thirdparty"; + sourceTree = ""; + }; + D05A84E818AFF259007F1076 /* AFNetworking */ = { + isa = PBXGroup; + children = ( + D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */, + D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */, + D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */, + D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */, + ); + path = AFNetworking; + sourceTree = ""; + }; + D05A84F618AFF259007F1076 /* AsyncSocket */ = { + isa = PBXGroup; + children = ( + D05A84F718AFF259007F1076 /* GCDAsyncSocket.h */, + D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */, + ); + path = AsyncSocket; + sourceTree = ""; + }; + D079AB981AF39B8000076F59 /* MtProtoKit */ = { + isa = PBXGroup; + children = ( + A7D281E5236C26400000A9BF /* Info.plist */, + D079AB9B1AF39B8000076F59 /* MtProtoKit.h */, + ); + path = MtProtoKit; + sourceTree = ""; + }; + D0CD99111D75C5D100F41187 /* Signals */ = { + isa = PBXGroup; + children = ( + D0B0DF601DD7E768003BA12D /* MTBag.h */, + D0B0DF5C1DD7E75B003BA12D /* MTBag.m */, + D0CAF2E11D75E7F30011F558 /* MTAtomic.h */, + D0CAF2E21D75E7F30011F558 /* MTAtomic.m */, + D0CAF2D51D75E2840011F558 /* MTDisposable.h */, + D0CAF2D61D75E2840011F558 /* MTDisposable.m */, + D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */, + D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */, + D0CAF2C91D75E24C0011F558 /* MTSignal.h */, + D0CAF2CA1D75E24C0011F558 /* MTSignal.m */, + ); + name = Signals; + sourceTree = ""; + }; + D0D1A0681ADD9844007D9ED6 /* Messages */ = { + isa = PBXGroup; + children = ( + D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */, + D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */, + D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */, + D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */, + D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */, + D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */, + D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */, + D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */, + D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */, + D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */, + D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */, + D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */, + D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */, + D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */, + D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */, + D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */, + D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */, + D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */, + D0D1A0141ADD983C007D9ED6 /* MTMessage.h */, + D0D1A0151ADD983C007D9ED6 /* MTMessage.m */, + D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */, + D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */, + D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */, + D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */, + D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */, + D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */, + D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */, + D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */, + D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */, + D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */, + D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */, + D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */, + D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */, + D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */, + D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */, + D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */, + D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */, + D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */, + D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */, + D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */, + D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */, + D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */, + D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */, + D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */, + D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */, + D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */, + D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */, + D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */, + D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */, + D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */, + D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */, + D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */, + ); + name = Messages; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D079AB941AF39B8000076F59 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D0CD97FD1D74B96300F41187 /* MTBuffer.h in Headers */, + D0CD98131D74B99400F41187 /* MTInternalMessageParser.h in Headers */, + D0CD98EE1D75C0C900F41187 /* MTTimeSyncMessageService.h in Headers */, + D0CD989F1D74BA6500F41187 /* MTProto.h in Headers */, + D0CD98F21D75C0D700F41187 /* MTRequestMessageService.h in Headers */, + D0CFBB881FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */, + D0CD97D21D74B91400F41187 /* MTTime.h in Headers */, + D0CD98151D74B99400F41187 /* MTMsgAllInfoMessage.h in Headers */, + D0CD98A31D74BA6500F41187 /* MTOutgoingMessage.h in Headers */, + D0CD97F81D74B94B00F41187 /* MTRsa.h in Headers */, + D0CD98C01D74BA8200F41187 /* MTTcpTransport.h in Headers */, + D0CD98CA1D74BA9400F41187 /* MTTcpConnectionBehaviour.h in Headers */, + D0CD981F1D74B99400F41187 /* MTResPqMessage.h in Headers */, + D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */, + D0B0DF621DD7E7A3003BA12D /* MTBag.h in Headers */, + D015E019225CD19E00CB9E8A /* MTGzip.h in Headers */, + D0CD98681D74B9E200F41187 /* MTContext.h in Headers */, + D0CD985B1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */, + D0CD98741D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */, + D0185E732089D265005E1A6C /* MTProxyConnectivity.h in Headers */, + D0CD98EA1D75C0C100F41187 /* MTMessageTransaction.h in Headers */, + D0CD98B41D74BA7500F41187 /* MTNetworkAvailability.h in Headers */, + D0E9B9EE1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */, + D0CD98A21D74BA6500F41187 /* MTPreparedMessage.h in Headers */, + D0CD98F91D75C0E400F41187 /* MTDropResponseContext.h in Headers */, + D0CD986C1D74B9EF00F41187 /* MTTransportScheme.h in Headers */, + D0CD984D1D74B9AE00F41187 /* MTRpcError.h in Headers */, + D0CD98171D74B99400F41187 /* MTMsgDetailedInfoMessage.h in Headers */, + D0CD98A41D74BA6500F41187 /* MTIncomingMessage.h in Headers */, + D0CD97FC1D74B96300F41187 /* MTBadMsgNotificationMessage.h in Headers */, + D0CD98121D74B99400F41187 /* MTFutureSaltsMessage.h in Headers */, + D0CD985A1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */, + D0CAF2E51D75EA790011F558 /* MTAtomic.h in Headers */, + D0CD98A11D74BA6500F41187 /* MTTimeFixContext.h in Headers */, + D0CD97FE1D74B96300F41187 /* MTBufferReader.h in Headers */, + D0CD97FF1D74B96300F41187 /* MTDestroySessionResponseMessage.h in Headers */, + D0CD97FA1D74B95000F41187 /* MTSerialization.h in Headers */, + D0CD98641D74B9D700F41187 /* MTFileBasedKeychain.h in Headers */, + D0CD98A01D74BA6500F41187 /* MTSessionInfo.h in Headers */, + D0CD97D61D74B91E00F41187 /* MTTimer.h in Headers */, + D0529D2C21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */, + D0CD98F81D75C0E400F41187 /* MTRequestErrorContext.h in Headers */, + D0CD98A51D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */, + D0CD981D1D74B99400F41187 /* MTPingMessage.h in Headers */, + D0CD97F91D74B94B00F41187 /* MTAes.h in Headers */, + D0CD98581D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */, + D079AB9C1AF39B8000076F59 /* MtProtoKit.h in Headers */, + D0CD98161D74B99400F41187 /* MTMsgContainerMessage.h in Headers */, + D0CD981A1D74B99400F41187 /* MTMsgsStateInfoMessage.h in Headers */, + D0CD98191D74B99400F41187 /* MTMsgsAckMessage.h in Headers */, + D0119CC220CAD34800895300 /* MTConnectionProbing.h in Headers */, + D0CD98FA1D75C0E400F41187 /* MTApiEnvironment.h in Headers */, + D0CD98881D74BA5100F41187 /* MTDatacenterAddressListData.h in Headers */, + D0CD98591D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */, + D0CD98601D74B9D000F41187 /* MTKeychain.h in Headers */, + D0CD98181D74B99400F41187 /* MTMsgResendReqMessage.h in Headers */, + D0CD97E81D74B94300F41187 /* MTLogging.h in Headers */, + D0CD98F61D75C0E400F41187 /* MTRequest.h in Headers */, + D0CAF2D91D75E3160011F558 /* MTSubscriber.h in Headers */, + D0CD981B1D74B99400F41187 /* MTMsgsStateReqMessage.h in Headers */, + D0C9322C1E095E280074F044 /* MTNetworkUsageManager.h in Headers */, + D0CD98101D74B96F00F41187 /* MTExportedAuthorizationData.h in Headers */, + D0CD98F71D75C0E400F41187 /* MTRequestContext.h in Headers */, + D0E2E17820866780005737E8 /* MTDNS.h in Headers */, + D0CD98871D74BA5100F41187 /* MTDatacenterSaltInfo.h in Headers */, + D0CD97ED1D74B94300F41187 /* MTInputStream.h in Headers */, + D0CD98141D74B99400F41187 /* MTMessage.h in Headers */, + D0CD987A1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */, + D0CD98861D74BA5100F41187 /* MTDatacenterAuthInfo.h in Headers */, + D0CD98B51D74BA7500F41187 /* MTTransport.h in Headers */, + D0CD97EC1D74B94300F41187 /* MTOutputStream.h in Headers */, + D0CD98701D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */, + D0CD97E91D74B94300F41187 /* MTEncryption.h in Headers */, + D0C932241E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */, + D0CD97EB1D74B94300F41187 /* MTQueue.h in Headers */, + D0CD98001D74B96300F41187 /* MTDropRpcResultMessage.h in Headers */, + D0CD98791D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */, + D0CD981C1D74B99400F41187 /* MTNewSessionCreatedMessage.h in Headers */, + D0CD98781D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */, + D0CD990A1D75C0F300F41187 /* MTResendMessageService.h in Headers */, + D020FAFB1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */, + D0BFAE6220AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */, + D0CFBB8B1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */, + D0CD98841D74BA5100F41187 /* MTDatacenterAddress.h in Headers */, + D0CD97EA1D74B94300F41187 /* MTInternalId.h in Headers */, + D0119CCA20CAD65D00895300 /* PingFoundation.h in Headers */, + D0CAF2DB1D75E31A0011F558 /* MTDisposable.h in Headers */, + D0CD98851D74BA5100F41187 /* MTDatacenterAddressSet.h in Headers */, + D0CD98B61D74BA7500F41187 /* MTTransportTransaction.h in Headers */, + D0CD981E1D74B99400F41187 /* MTPongMessage.h in Headers */, + D0CD98C51D74BA8D00F41187 /* MTTcpConnection.h in Headers */, + D0CAF2CD1D75E2570011F558 /* MTSignal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D079AB961AF39B8000076F59 /* MtProtoKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = D079ABAE1AF39B8000076F59 /* Build configuration list for PBXNativeTarget "MtProtoKit" */; + buildPhases = ( + D079AB921AF39B8000076F59 /* Sources */, + D079AB931AF39B8000076F59 /* Frameworks */, + D079AB941AF39B8000076F59 /* Headers */, + D079AB951AF39B8000076F59 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MtProtoKit; + productName = MtProtoKitMac; + productReference = D079AB971AF39B8000076F59 /* MtProtoKit.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D05A830A18AFB3F9007F1076 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0800; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + D079AB961AF39B8000076F59 = { + CreatedOnToolsVersion = 6.3.1; + LastSwiftMigration = 1010; + }; + }; + }; + buildConfigurationList = D05A830D18AFB3F9007F1076 /* Build configuration list for PBXProject "MtProtoKit_Xcode" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = D05A830918AFB3F9007F1076; + productRefGroup = D05A831518AFB3F9007F1076 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D079AB961AF39B8000076F59 /* MtProtoKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D079AB951AF39B8000076F59 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D079AB921AF39B8000076F59 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0CD99021D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */, + D0CD98371D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */, + D0CD99011D75C0ED00F41187 /* MTRequestContext.m in Sources */, + D0CAF2DE1D75E31E0011F558 /* MTSubscriber.m in Sources */, + D0CD984E1D74B9B700F41187 /* MTRpcError.m in Sources */, + D0CD98361D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */, + D0CD97E71D74B93300F41187 /* MTAes.m in Sources */, + D0CD98EC1D75C0C500F41187 /* MTMessageTransaction.m in Sources */, + D0CD98C71D74BA9000F41187 /* MTTcpConnection.m in Sources */, + D0CD98621D74B9D500F41187 /* MTKeychain.m in Sources */, + D0CD987F1D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */, + D0CD98911D74BA5900F41187 /* MTDatacenterSaltInfo.m in Sources */, + D0CD98761D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */, + D0CD98CC1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */, + D0CD983A1D74B9AA00F41187 /* MTPingMessage.m in Sources */, + D0CD97E31D74B93300F41187 /* MTQueue.m in Sources */, + D0CAF2DD1D75E31E0011F558 /* MTDisposable.m in Sources */, + D0CD987E1D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */, + D0CD988F1D74BA5900F41187 /* MTDatacenterAddressSet.m in Sources */, + D0CD98091D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */, + D0119CC520CAD34800895300 /* MTConnectionProbing.m in Sources */, + D0CD982E1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */, + D0CD986E1D74B9F400F41187 /* MTTransportScheme.m in Sources */, + D0CD98A71D74BA6E00F41187 /* MTSessionInfo.m in Sources */, + D0CD98BA1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */, + D0CD990C1D75C0F900F41187 /* MTResendMessageService.m in Sources */, + D0CD97E61D74B93300F41187 /* MTRsa.m in Sources */, + D0CD98921D74BA5900F41187 /* MTDatacenterAddressListData.m in Sources */, + D0CD98071D74B96C00F41187 /* MTBuffer.m in Sources */, + D0CD97E01D74B93300F41187 /* MTTimer.m in Sources */, + D0CD98671D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */, + D0CD986A1D74B9E900F41187 /* MTContext.m in Sources */, + D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */, + D0CD98081D74B96C00F41187 /* MTBufferReader.m in Sources */, + D0CD98341D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */, + D0CD984F1D74B9B700F41187 /* MTRpcResultMessage.m in Sources */, + D0119CCD20CAD65D00895300 /* PingFoundation.m in Sources */, + D020FAFE1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */, + D0CD98391D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */, + D0CD98381D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */, + D0C9322F1E095E280074F044 /* MTNetworkUsageManager.m in Sources */, + D0BFAE6420AB505700793CF2 /* MTDatacenterVerificationData.m in Sources */, + D0CD98801D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */, + D0CD98AA1D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */, + D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */, + D0CAF2E81D75EA7E0011F558 /* MTAtomic.m in Sources */, + D0CD98901D74BA5900F41187 /* MTDatacenterAuthInfo.m in Sources */, + D0CD97E51D74B93300F41187 /* MTInputStream.m in Sources */, + D0CD98BB1D74BA7C00F41187 /* MTTransport.m in Sources */, + D0E9B9F11F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */, + D0CD982F1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */, + D0CD98A61D74BA6E00F41187 /* MTProto.m in Sources */, + D0529D2F21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */, + D0CD98331D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */, + D0CD980A1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */, + D0CD98511D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */, + D0CD97E21D74B93300F41187 /* MTEncryption.m in Sources */, + D0CD97E11D74B93300F41187 /* MTLogging.m in Sources */, + D0CD98AB1D74BA6F00F41187 /* MTIncomingMessage.m in Sources */, + D0CD98501D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */, + D0CD99031D75C0ED00F41187 /* MTDropResponseContext.m in Sources */, + D0CD983B1D74B9AA00F41187 /* MTPongMessage.m in Sources */, + D0CD98BC1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */, + D0CD98F41D75C0DD00F41187 /* MTRequestMessageService.m in Sources */, + D0CD98A81D74BA6E00F41187 /* MTTimeFixContext.m in Sources */, + D0185E762089D265005E1A6C /* MTProxyConnectivity.m in Sources */, + D0CD98721D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */, + D0CD98061D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */, + D0CD98311D74B9AA00F41187 /* MTMessage.m in Sources */, + D0CD99001D75C0ED00F41187 /* MTRequest.m in Sources */, + D0CD98F01D75C0D200F41187 /* MTTimeSyncMessageService.m in Sources */, + D0CD98A91D74BA6F00F41187 /* MTPreparedMessage.m in Sources */, + D0B0DF5E1DD7E75B003BA12D /* MTBag.m in Sources */, + D0CD99041D75C0ED00F41187 /* MTApiEnvironment.m in Sources */, + D0CD983C1D74B9AA00F41187 /* MTResPqMessage.m in Sources */, + D073D2D81FB5E493009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */, + D0CD98C41D74BA8A00F41187 /* MTTcpTransport.m in Sources */, + D0CD98AC1D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */, + D0CD98301D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */, + D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */, + D0CD98321D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */, + D0CD97D51D74B91C00F41187 /* MTTime.m in Sources */, + D0CD98351D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */, + D0CD97E41D74B93300F41187 /* MTOutputStream.m in Sources */, + D0E2E17B20866780005737E8 /* MTDNS.m in Sources */, + D0CD988E1D74BA5900F41187 /* MTDatacenterAddress.m in Sources */, + D0CD98521D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */, + D0C932271E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */, + D015E01C225CD19E00CB9E8A /* MTGzip.m in Sources */, + D0CAF2CF1D75E25B0011F558 /* MTSignal.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D0364D4722B3E35B002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_MODULES_AUTOLINK = NO; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + MACOSX_DEPLOYMENT_TARGET = 10.11; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + }; + name = HockeyappMacAlpha; + }; + D0364D4922B3E35B002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "BETA=1", + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = MtProtoKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; + PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D079FD101F06BE440038FADE /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_MODULES_AUTOLINK = NO; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + MACOSX_DEPLOYMENT_TARGET = 10.11; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + }; + name = DebugHockeyapp; + }; + D079FD121F06BE440038FADE /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "BETA=1", + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = MtProtoKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; + PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D079FD161F06BE4D0038FADE /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_MODULES_AUTOLINK = NO; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseAppStore; + }; + D079FD181F06BE4D0038FADE /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = APPSTORE; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = MtProtoKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; + PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D079FD1C1F06BE540038FADE /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_MODULES_AUTOLINK = NO; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseHockeyapp; + }; + D079FD1E1F06BE540038FADE /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = STABLE; + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = MtProtoKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; + PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D0DB57B01E5C4B470071854C /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_MODULES_AUTOLINK = NO; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + MACOSX_DEPLOYMENT_TARGET = 10.11; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + }; + name = DebugAppStore; + }; + D0DB57B21E5C4B470071854C /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ""; + FRAMEWORK_VERSION = A; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "BETA=1", + ); + HEADER_SEARCH_PATHS = ""; + INFOPLIST_FILE = MtProtoKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; + PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D05A830D18AFB3F9007F1076 /* Build configuration list for PBXProject "MtProtoKit_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D079FD101F06BE440038FADE /* DebugHockeyapp */, + D0364D4722B3E35B002A6EF0 /* HockeyappMacAlpha */, + D0DB57B01E5C4B470071854C /* DebugAppStore */, + D079FD161F06BE4D0038FADE /* ReleaseAppStore */, + D079FD1C1F06BE540038FADE /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + D079ABAE1AF39B8000076F59 /* Build configuration list for PBXNativeTarget "MtProtoKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D079FD121F06BE440038FADE /* DebugHockeyapp */, + D0364D4922B3E35B002A6EF0 /* HockeyappMacAlpha */, + D0DB57B21E5C4B470071854C /* DebugAppStore */, + D079FD181F06BE4D0038FADE /* ReleaseAppStore */, + D079FD1E1F06BE540038FADE /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D05A830A18AFB3F9007F1076 /* Project object */; +} diff --git a/RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 70% rename from RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 664110712..02630510d 100644 --- a/RLottieMac/RLottieMac.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:MtProtoKit.xcodeproj"> diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..556804617506832b33bd19f6010b02ccf052e4b5 GIT binary patch literal 24486 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 ss+X%*s@v47)oayns<*3ms`sc5tB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/MtProtoKit.xcscheme b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/MtProtoKit.xcscheme new file mode 100644 index 000000000..886761b42 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/MtProtoKit.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..3ce11937d --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,58 @@ + + + + + SchemeUserState + + MtProtoKit.xcscheme + + isShown + + orderHint + 32 + + MtProtoKitDynamic.xcscheme_^#shared#^_ + + isShown + + orderHint + 30 + + MtProtoKitMac.xcscheme_^#shared#^_ + + isShown + + orderHint + 59 + + + SuppressBuildableAutocreation + + D00354641C173BF0006610DA + + primary + + + D079AB961AF39B8000076F59 + + primary + + + D0CB05F61ADC4483005E298F + + primary + + + D0D2250A1B4D817B0085E26D + + primary + + + D0D225141B4D817B0085E26D + + primary + + + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..064640e4e --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + MtProtoKit.xcscheme_^#shared#^_ + + orderHint + 33 + + MtProtoKitDynamic.xcscheme_^#shared#^_ + + orderHint + 35 + + MtProtoKitMac.xcscheme_^#shared#^_ + + orderHint + 34 + + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..088ef243d --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + MtProtoKit.xcscheme_^#shared#^_ + + orderHint + 9 + + MtProtoKitDynamic.xcscheme_^#shared#^_ + + orderHint + 2 + + + + diff --git a/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..a43f65e87 --- /dev/null +++ b/core-xprojects/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + MtProtoKit.xcscheme_^#shared#^_ + + orderHint + 39 + + MtProtoKitDynamic.xcscheme_^#shared#^_ + + orderHint + 40 + + MtProtoKitMac.xcscheme_^#shared#^_ + + orderHint + 41 + + + + diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/Info.plist b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/OpenSSLEncryption.h b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/OpenSSLEncryption.h new file mode 100644 index 000000000..91d79d32b --- /dev/null +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption/OpenSSLEncryption.h @@ -0,0 +1,20 @@ +// +// OpenSSLEncryption.h +// OpenSSLEncryption +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for OpenSSLEncryption. +FOUNDATION_EXPORT double OpenSSLEncryptionVersionNumber; + +//! Project version string for OpenSSLEncryption. +FOUNDATION_EXPORT const unsigned char OpenSSLEncryptionVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.pbxproj b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..e5b9fc1fa --- /dev/null +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,621 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A790A2DD236AFCEF000451B5 /* OpenSSLEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = A790A2CF236AFCEF000451B5 /* OpenSSLEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A2E9236AFE3D000451B5 /* OpenSSLEncryptionProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = A790A2E7236AFE3D000451B5 /* OpenSSLEncryptionProvider.m */; }; + A790A2EA236AFE3D000451B5 /* OpenSSLEncryptionProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = A790A2E8236AFE3D000451B5 /* OpenSSLEncryptionProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A2ED236AFE7C000451B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A2EC236AFE7C000451B5 /* Foundation.framework */; }; + A790A302236B027F000451B5 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A301236B027F000451B5 /* libcrypto.a */; }; + A790A30F236B097D000451B5 /* EncryptionProvider.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A2FF236B0188000451B5 /* EncryptionProvider.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A790A2CC236AFCEF000451B5 /* OpenSSLEncryption.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenSSLEncryption.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A790A2CF236AFCEF000451B5 /* OpenSSLEncryption.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenSSLEncryption.h; sourceTree = ""; }; + A790A2D0236AFCEF000451B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A790A2E7236AFE3D000451B5 /* OpenSSLEncryptionProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OpenSSLEncryptionProvider.m; sourceTree = ""; }; + A790A2E8236AFE3D000451B5 /* OpenSSLEncryptionProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenSSLEncryptionProvider.h; sourceTree = ""; }; + A790A2EC236AFE7C000451B5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A790A2FF236B0188000451B5 /* EncryptionProvider.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionProvider.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A790A301236B027F000451B5 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../thrid-party/openssl/lib/libcrypto.a"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A790A2C9236AFCEF000451B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A30F236B097D000451B5 /* EncryptionProvider.framework in Frameworks */, + A790A302236B027F000451B5 /* libcrypto.a in Frameworks */, + A790A2ED236AFE7C000451B5 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A790A2C2236AFCEF000451B5 = { + isa = PBXGroup; + children = ( + A790A2E6236AFDFB000451B5 /* Sources */, + A790A2CE236AFCEF000451B5 /* OpenSSLEncryption */, + A790A2CD236AFCEF000451B5 /* Products */, + A790A2EB236AFE7C000451B5 /* Frameworks */, + ); + sourceTree = ""; + }; + A790A2CD236AFCEF000451B5 /* Products */ = { + isa = PBXGroup; + children = ( + A790A2CC236AFCEF000451B5 /* OpenSSLEncryption.framework */, + ); + name = Products; + sourceTree = ""; + }; + A790A2CE236AFCEF000451B5 /* OpenSSLEncryption */ = { + isa = PBXGroup; + children = ( + A790A2CF236AFCEF000451B5 /* OpenSSLEncryption.h */, + A790A2D0236AFCEF000451B5 /* Info.plist */, + ); + path = OpenSSLEncryption; + sourceTree = ""; + }; + A790A2E6236AFDFB000451B5 /* Sources */ = { + isa = PBXGroup; + children = ( + A790A2E8236AFE3D000451B5 /* OpenSSLEncryptionProvider.h */, + A790A2E7236AFE3D000451B5 /* OpenSSLEncryptionProvider.m */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/OpenSSLEncryptionProvider/Sources"; + sourceTree = ""; + }; + A790A2EB236AFE7C000451B5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A790A301236B027F000451B5 /* libcrypto.a */, + A790A2FF236B0188000451B5 /* EncryptionProvider.framework */, + A790A2EC236AFE7C000451B5 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A790A2C7236AFCEF000451B5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A2DD236AFCEF000451B5 /* OpenSSLEncryption.h in Headers */, + A790A2EA236AFE3D000451B5 /* OpenSSLEncryptionProvider.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A790A2CB236AFCEF000451B5 /* OpenSSLEncryption */ = { + isa = PBXNativeTarget; + buildConfigurationList = A790A2E0236AFCEF000451B5 /* Build configuration list for PBXNativeTarget "OpenSSLEncryption" */; + buildPhases = ( + A790A2C7236AFCEF000451B5 /* Headers */, + A790A2C8236AFCEF000451B5 /* Sources */, + A790A2C9236AFCEF000451B5 /* Frameworks */, + A790A2CA236AFCEF000451B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OpenSSLEncryption; + productName = OpenSSLEncryption; + productReference = A790A2CC236AFCEF000451B5 /* OpenSSLEncryption.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A790A2C3236AFCEF000451B5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A790A2CB236AFCEF000451B5 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A790A2C6236AFCEF000451B5 /* Build configuration list for PBXProject "OpenSSLEncryption_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A790A2C2236AFCEF000451B5; + productRefGroup = A790A2CD236AFCEF000451B5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A790A2CB236AFCEF000451B5 /* OpenSSLEncryption */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A790A2CA236AFCEF000451B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A790A2C8236AFCEF000451B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A2E9236AFE3D000451B5 /* OpenSSLEncryptionProvider.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A790A2F1236B00F1000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A790A2F2236B00F1000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/"; + INFOPLIST_FILE = OpenSSLEncryption/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/lib"; + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpenSSLEncryption; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugHockeyapp; + }; + A790A2F3236B00F8000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A790A2F4236B00F8000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/"; + INFOPLIST_FILE = OpenSSLEncryption/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/lib"; + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpenSSLEncryption; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugAppStore; + }; + A790A2F5236B00FD000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A790A2F6236B00FD000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/"; + INFOPLIST_FILE = OpenSSLEncryption/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/lib"; + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpenSSLEncryption; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = HockeyappMacAlpha; + }; + A790A2F9236B010A000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A790A2FA236B010A000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/"; + INFOPLIST_FILE = OpenSSLEncryption/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/lib"; + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpenSSLEncryption; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseAppStore; + }; + A790A2FB236B0110000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A790A2FC236B0110000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/"; + INFOPLIST_FILE = OpenSSLEncryption/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../thrid-party/openssl/lib"; + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.OpenSSLEncryption; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A790A2C6236AFCEF000451B5 /* Build configuration list for PBXProject "OpenSSLEncryption_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A2F1236B00F1000451B5 /* DebugHockeyapp */, + A790A2F3236B00F8000451B5 /* DebugAppStore */, + A790A2F5236B00FD000451B5 /* HockeyappMacAlpha */, + A790A2F9236B010A000451B5 /* ReleaseAppStore */, + A790A2FB236B0110000451B5 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + A790A2E0236AFCEF000451B5 /* Build configuration list for PBXNativeTarget "OpenSSLEncryption" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A2F2236B00F1000451B5 /* DebugHockeyapp */, + A790A2F4236B00F8000451B5 /* DebugAppStore */, + A790A2F6236B00FD000451B5 /* HockeyappMacAlpha */, + A790A2FA236B010A000451B5 /* ReleaseAppStore */, + A790A2FC236B0110000451B5 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = A790A2C3236AFCEF000451B5 /* Project object */; +} diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..20bdb16ff --- /dev/null +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..676152aac029e14c89f0ec6d79c1c7e5cdb568ad GIT binary patch literal 21039 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 literal 0 HcmV?d00001 diff --git a/RLottieMac/RLottieMac.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 85% rename from RLottieMac/RLottieMac.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist rename to core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist index 0036b24c3..fc09b3b09 100644 --- a/RLottieMac/RLottieMac.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/core-xprojects/OpenSSLEncryption/OpenSSLEncryption_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,7 +4,7 @@ SchemeUserState - RLottieMac.xcscheme_^#shared#^_ + OpenSSLEncryption.xcscheme_^#shared#^_ orderHint 30 diff --git a/TGUIKit/TGUIKit/Info.plist b/core-xprojects/Postbox/Postbox/Info.plist similarity index 100% rename from TGUIKit/TGUIKit/Info.plist rename to core-xprojects/Postbox/Postbox/Info.plist diff --git a/core-xprojects/Postbox/Postbox/Postbox.h b/core-xprojects/Postbox/Postbox/Postbox.h new file mode 100644 index 000000000..87ae848ae --- /dev/null +++ b/core-xprojects/Postbox/Postbox/Postbox.h @@ -0,0 +1,20 @@ +// +// PostboxMac.h +// PostboxMac +// +// Created by Peter on 9/5/16. +// Copyright © 2016 Telegram. All rights reserved. +// + +#import + +//! Project version number for PostboxMac. +FOUNDATION_EXPORT double PostboxVersionNumber; + +//! Project version string for PostboxMac. +FOUNDATION_EXPORT const unsigned char PostboxVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..5a27c1fe2 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1489 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9F291C9B2264CFCC00C66267 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 9F5B6E762011449F00C58B2A /* PostboxLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */; }; + A701F925236B3350002ABF81 /* sqlcipher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F924236B3350002ABF81 /* sqlcipher.framework */; }; + A701F92C236C1B66002ABF81 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F92B236C1B66002ABF81 /* SwiftSignalKit.framework */; }; + A701F935236C1DC4002ABF81 /* Crc32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F934236C1DC4002ABF81 /* Crc32.framework */; }; + C20EB2A31F7179DC00DD3A57 /* PeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */; }; + C25B56FE1F431C3300581D02 /* MessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */; }; + C2A315BC1E2E730400D89000 /* PeerOperationLogTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */; }; + C2A315BD1E2E732000D89000 /* PeerOperationLogMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */; }; + C2A315BE1E2E733900D89000 /* PeerMergedOperationLogIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */; }; + C2A315BF1E2E733900D89000 /* PeerMergedOperationLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */; }; + C2AC9C131E1E5D200085C7DE /* UnreadMessageCountsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */; }; + D000CADB22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */; }; + D001388720BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */ = {isa = PBXBuildFile; fileRef = D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */; }; + D00C7CD51E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */; }; + D00C7CE41E37861C0080C3D5 /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CE21E37861C0080C3D5 /* MessageView.swift */; }; + D0105D6C218362F2007C04A7 /* TempBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0105D6A218362F2007C04A7 /* TempBox.swift */; }; + D0119CAE20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */; }; + D015E05D2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */; }; + D015E0612265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */; }; + D018BE56218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */; }; + D01BAA561ED1D70C00295217 /* ManagedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01BAA541ED1D70C00295217 /* ManagedFile.swift */; }; + D01C7EDF1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */; }; + D01C7F081EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */; }; + D01E79E92248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */; }; + D021FC272024B83700C34AB7 /* FileSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021FC252024B83700C34AB7 /* FileSize.swift */; }; + D03229EF1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */; }; + D03387532242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */; }; + D037178C20D923CA004773C8 /* CachedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D037178A20D923CA004773C8 /* CachedItemView.swift */; }; + D039FB1C21714D9800BD1BAD /* PeerPresencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */; }; + D040CA6522665370007123CE /* PostboxUpgrade_23to24.swift in Sources */ = {isa = PBXBuildFile; fileRef = D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */; }; + D0439B402289F6300067E026 /* AccountManagerAtomicState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */; }; + D04614312004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */; }; + D04614342004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */; }; + D048B33E203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */; }; + D048B4A920A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */; }; + D048B4B020A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */; }; + D049EAF11E44D9B900A2CD3A /* PostboxStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */; }; + D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */; }; + D050F2671E4A5B5A00988324 /* TimestampBasedMessageAttributesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */; }; + D050F2681E4A5B5A00988324 /* TimestampBasedMessageAttributesIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */; }; + D050F2691E4A5B5A00988324 /* MultiplePeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */; }; + D0575AE41E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */; }; + D05D8B32218F1D3D0064586F /* AccountSharedData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B30218F1D3D0064586F /* AccountSharedData.swift */; }; + D05D8B35218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */; }; + D0633D05225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */; }; + D0633D08225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */; }; + D0633D0B225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */; }; + D0633D0E225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */; }; + D06CA12D227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */; }; + D06CA130227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */; }; + D06CA13322772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */; }; + D06ECFC620B796DC00C576C2 /* NoticeEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */; }; + D07047A31F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */; }; + D07047A61F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */; }; + D07047A91F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */; }; + D07047AC1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */; }; + D07047B21F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */; }; + D073CE741DCBF3B4007511FD /* Peer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7831B28AE0900A402D9 /* Peer.swift */; }; + D073CE751DCBF3B4007511FD /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A79D1B28B50400A402D9 /* Message.swift */; }; + D073CE761DCBF3B4007511FD /* IntermediateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */; }; + D073CE771DCBF3B4007511FD /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7A11B28B7DC00A402D9 /* Media.swift */; }; + D073CE791DCBF3B4007511FD /* ChatListHole.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2D1C618373002160FF /* ChatListHole.swift */; }; + D073CE7A1DCBF3B4007511FD /* PeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674CB1CBB14A700183765 /* PeerReadState.swift */; }; + D073CE7B1DCBF3B4007511FD /* PeerNameIndexRepresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */; }; + D073CE7C1DCBF3B4007511FD /* CachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F91DA540F0006A2A60 /* CachedPeerData.swift */; }; + D073CE7D1DCBF3B4007511FD /* PeerPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844501DAC04FE005F29E1 /* PeerPresence.swift */; }; + D073CE7E1DCBF3B4007511FD /* PeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */; }; + D073CE7F1DCBF3B4007511FD /* ItemCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */; }; + D073CE801DCBF3B4007511FD /* PeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */; }; + D073CE9F1DCBF3C1007511FD /* InitialMessageHistoryData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */; }; + D073CEA01DCBF3C1007511FD /* ItemCollectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */; }; + D079FCE71F06A31C0038FADE /* NoticeTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCE51F06A3170038FADE /* NoticeTable.swift */; }; + D07E7B46224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */; }; + D07E7B49224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */; }; + D08775011E3E3D9F00A97350 /* PreferencesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */; }; + D08775041E3E3E7400A97350 /* PreferencesEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775021E3E3E7400A97350 /* PreferencesEntry.swift */; }; + D08775071E3E3F2100A97350 /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775051E3E3F2100A97350 /* PreferencesView.swift */; }; + D087C20D1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */; }; + D08B61C122A75C21000A46A8 /* Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08B61BF22A75C21000A46A8 /* Hash.swift */; }; + D0943AF91FDAC540001522CC /* ChatLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AF71FDAC53F001522CC /* ChatLocation.swift */; }; + D0943B031FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */; }; + D098C6F21D7E1201007784E4 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098C6F01D7E11E9007784E4 /* Database.swift */; }; + D0A352F61F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */; }; + D0A352F91F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */; }; + D0AA55141FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */; }; + D0AAD1B61E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */; }; + D0B166EB1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */; }; + D0B167211F9EAAA900976B40 /* OrderedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671F1F9EAAA900976B40 /* OrderedList.swift */; }; + D0B2F75E204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */; }; + D0B418171D7DFAF3004562A4 /* Postbox.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B418151D7DFAF3004562A4 /* Postbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B418221D7DFE0C004562A4 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7871B28AE9C00A402D9 /* Coding.swift */; }; + D0B418231D7DFE0C004562A4 /* SimpleDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8741C5A334100037222 /* SimpleDictionary.swift */; }; + D0B418241D7DFE0C004562A4 /* SimpleSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9DA381C65782500855278 /* SimpleSet.swift */; }; + D0B418251D7DFE0C004562A4 /* RedBlackTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */; }; + D0B418261D7DFE0C004562A4 /* MappedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D949F41D35353900740E02 /* MappedFile.swift */; }; + D0B418271D7DFE0C004562A4 /* IpcPipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510FF1D64A58900A97B8A /* IpcPipe.swift */; }; + D0B418301D7DFE16004562A4 /* ValueBoxKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */; }; + D0B418311D7DFE16004562A4 /* ValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9B1B822DB4009994B2 /* ValueBox.swift */; }; + D0B418321D7DFE16004562A4 /* SqliteValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */; }; + D0B418481D7DFE20004562A4 /* MessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */; }; + D0B418491D7DFE20004562A4 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86A1C59719800037222 /* ChatListView.swift */; }; + D0B4184A1D7DFE20004562A4 /* UnsentMessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */; }; + D0B4184B1D7DFE20004562A4 /* SynchronizePeerReadStatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */; }; + D0B4184C1D7DFE20004562A4 /* ContactPeerIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */; }; + D0B4184D1D7DFE20004562A4 /* ContactPeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F641D5A457A00A27A2C /* ContactPeersView.swift */; }; + D0B4184E1D7DFE20004562A4 /* MessageHistoryHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */; }; + D0B4184F1D7DFE20004562A4 /* ChatListHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */; }; + D0B418501D7DFE20004562A4 /* UnsentMessageIndicesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */; }; + D0B418571D7DFE29004562A4 /* Postbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7811B28ADD000A402D9 /* Postbox.swift */; }; + D0B418581D7DFE29004562A4 /* SeedConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA291C617D39002160FF /* SeedConfiguration.swift */; }; + D0B418591D7DFE29004562A4 /* PostboxTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */; }; + D0B4185A1D7DFE29004562A4 /* ViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */; }; + D0B4185B1D7DFE2C004562A4 /* MurMurHash32.h in Headers */ = {isa = PBXBuildFile; fileRef = D044E1611B2AD667001EE087 /* MurMurHash32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B4185C1D7DFE2F004562A4 /* MurMurHash32.m in Sources */ = {isa = PBXBuildFile; fileRef = D044E1621B2AD677001EE087 /* MurMurHash32.m */; }; + D0B844031DAB91A7005F29E1 /* PeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C8E1D81A350008AEB01 /* PeerView.swift */; }; + D0B844051DAB91B5005F29E1 /* MediaBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D055BD321B7D3D2D00F06C0A /* MediaBox.swift */; }; + D0B844061DAB91B5005F29E1 /* MediaResourceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */; }; + D0B844071DAB91B5005F29E1 /* MediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */; }; + D0BC38731E409E670044D6FE /* RenderedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38711E409E670044D6FE /* RenderedPeer.swift */; }; + D0BE3035206026C800FBE6D8 /* MessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE3033206026C800FBE6D8 /* MessagesView.swift */; }; + D0BE383A1E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */; }; + D0BEAF641E54B2FA00BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF621E54B2FA00BD963D /* AccountManager.swift */; }; + D0BEAF681E54B33900BD963D /* AccountRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF661E54B33900BD963D /* AccountRecord.swift */; }; + D0BEAF6B1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */; }; + D0BEAF6E1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */; }; + D0BEAF711E54BC1E00BD963D /* AccountRecordsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */; }; + D0BFE51E22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */; }; + D0C0B5AC1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */; }; + D0C26D7F1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */; }; + D0C27B461F4B598200A4E170 /* CachedPeerDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */; }; + D0CA8E4622720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */; }; + D0CA8E49227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */; }; + D0CA8E4F2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */; }; + D0CCD6202231CE5400EE1E08 /* PeerGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */; }; + D0CCD6292232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */; }; + D0CE8CF41F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */; }; + D0CE8CF71F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */; }; + D0DA1D301F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */; }; + D0DA44491E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */; }; + D0E119A1229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */; }; + D0E1D30D1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */; }; + D0E1D3101ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */; }; + D0E23DE31E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */; }; + D0F02CE01E99223E0065DEE2 /* Upgrades.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */; }; + D0F02CE31E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */; }; + D0F53BF41E794C6700117362 /* PeerChatStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF21E794C6700117362 /* PeerChatStateView.swift */; }; + D0F7B1C01E045C62007EB8A5 /* StringIndexTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C01E0079CB00071108 /* StringIndexTokens.swift */; }; + D0F7B1C31E045C6A007EB8A5 /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03BCCF71C73561C0097A291 /* Table.swift */; }; + D0F7B1C41E045C6A007EB8A5 /* GlobalMessageIdsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */; }; + D0F7B1C51E045C6A007EB8A5 /* MessageHistoryMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */; }; + D0F7B1C61E045C6A007EB8A5 /* MessageHistoryIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */; }; + D0F7B1C71E045C6A007EB8A5 /* MessageHistoryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */; }; + D0F7B1C81E045C6A007EB8A5 /* MessageHistoryOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */; }; + D0F7B1C91E045C6A007EB8A5 /* MessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */; }; + D0F7B1CA1E045C6A007EB8A5 /* MessageHistoryUnsentTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */; }; + D0F7B1CB1E045C6A007EB8A5 /* ChatListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8641C58CB7F00037222 /* ChatListTable.swift */; }; + D0F7B1CC1E045C6A007EB8A5 /* ChatListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */; }; + D0F7B1CD1E045C6A007EB8A5 /* MessageMediaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */; }; + D0F7B1CF1E045C6A007EB8A5 /* MetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */; }; + D0F7B1D01E045C6A007EB8A5 /* KeychainTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */; }; + D0F7B1D11E045C6A007EB8A5 /* PeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8701C5A0E9B00037222 /* PeerTable.swift */; }; + D0F7B1D21E045C6A007EB8A5 /* PeerNotificationSettingsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */; }; + D0F7B1D31E045C6A007EB8A5 /* CachedPeerDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */; }; + D0F7B1D41E045C6A007EB8A5 /* PeerPresenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */; }; + D0F7B1D51E045C6A007EB8A5 /* PeerChatStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */; }; + D0F7B1D61E045C6A007EB8A5 /* ContactTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F591D592E8B00A27A2C /* ContactTable.swift */; }; + D0F7B1D71E045C6A007EB8A5 /* MessageHistoryReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */; }; + D0F7B1D81E045C6A007EB8A5 /* MessageHistorySynchronizeReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */; }; + D0F7B1D91E045C6A007EB8A5 /* OrderStatisticTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */; }; + D0F7B1DA1E045C6A007EB8A5 /* RatingTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08D451E1D5D2CA700A7428A /* RatingTable.swift */; }; + D0F7B1DB1E045C6A007EB8A5 /* ItemCollectionInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */; }; + D0F7B1DC1E045C6A007EB8A5 /* ItemCollectionItemTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */; }; + D0F7B1DD1E045C6A007EB8A5 /* PeerChatInterfaceStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */; }; + D0F7B1DE1E045C6A007EB8A5 /* PeerChatTopIndexableMessageIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */; }; + D0F7B1DF1E045C6A007EB8A5 /* ItemCacheMetaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */; }; + D0F7B1E01E045C6A007EB8A5 /* ItemCacheTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */; }; + D0F7B1E11E045C6A007EB8A5 /* ReverseIndexReferenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */; }; + D0F7B1E21E045C6A007EB8A5 /* PeerNameIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */; }; + D0F82CFE1E4345D7007E499C /* OrderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */; }; + D0F82D0D1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */; }; + D0F82D101E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */; }; + D0FA0AC81E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */; }; + D0FA0ACB1E780A26005BB9B7 /* PostboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */; }; + D0FA0ACE1E781067005BB9B7 /* Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ACC1E781067005BB9B7 /* Views.swift */; }; + D0FC194B201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A701F8ED236B2E54002ABF81 /* crc32mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = crc32mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F8EF236B2E5A002ABF81 /* libphonenumbermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumbermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F8F1236B2E61002ABF81 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F924236B3350002ABF81 /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F92B236C1B66002ABF81 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F92D236C1D02002ABF81 /* crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F934236C1DC4002ABF81 /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A72D451C236AF37F0052FA81 /* Postbox.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Postbox.xcconfig; path = "../../submodules/telegram-ios/submodules/Postbox/Sources/Config.xcconfig/Postbox.xcconfig"; sourceTree = ""; }; + D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedAccountMediaManager.swift; sourceTree = ""; }; + D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_16to17.swift; sourceTree = ""; }; + D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryView.swift; sourceTree = ""; }; + D0079F591D592E8B00A27A2C /* ContactTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactTable.swift; sourceTree = ""; }; + D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactPeerIdsView.swift; sourceTree = ""; }; + D0079F641D5A457A00A27A2C /* ContactPeersView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactPeersView.swift; sourceTree = ""; }; + D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNameIndexRepresentation.swift; sourceTree = ""; }; + D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatListInclusion.swift; sourceTree = ""; }; + D00C7CE21E37861C0080C3D5 /* MessageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageView.swift; sourceTree = ""; }; + D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagsTable.swift; sourceTree = ""; }; + D0105D6A218362F2007C04A7 /* TempBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempBox.swift; sourceTree = ""; }; + D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMergedOperationLogIndexTable.swift; sourceTree = ""; }; + D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_17to18.swift; sourceTree = ""; }; + D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_22to23.swift; sourceTree = ""; }; + D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupMessageStatsTable.swift; sourceTree = ""; }; + D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeBasedCleanup.swift; sourceTree = ""; }; + D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageGloballyUniqueIdTable.swift; sourceTree = ""; }; + D01BAA541ED1D70C00295217 /* ManagedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedFile.swift; sourceTree = ""; }; + D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTextIndexTable.swift; sourceTree = ""; }; + D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnorderedItemListTable.swift; sourceTree = ""; }; + D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_19to20.swift; sourceTree = ""; }; + D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistorySynchronizeReadStateTable.swift; sourceTree = ""; }; + D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePeerReadStatesView.swift; sourceTree = ""; }; + D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollection.swift; sourceTree = ""; }; + D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfoTable.swift; sourceTree = ""; }; + D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionItemTable.swift; sourceTree = ""; }; + D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionsView.swift; sourceTree = ""; }; + D021FC252024B83700C34AB7 /* FileSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSize.swift; sourceTree = ""; }; + D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPresenceTable.swift; sourceTree = ""; }; + D03120F91DA540F0006A2A60 /* CachedPeerData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerData.swift; sourceTree = ""; }; + D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettings.swift; sourceTree = ""; }; + D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerDataTable.swift; sourceTree = ""; }; + D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsTable.swift; sourceTree = ""; }; + D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SqliteInterface.swift; sourceTree = ""; }; + D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_18to19.swift; sourceTree = ""; }; + D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryUnsentTable.swift; sourceTree = ""; }; + D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsentMessageHistoryView.swift; sourceTree = ""; }; + D037178A20D923CA004773C8 /* CachedItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedItemView.swift; sourceTree = ""; }; + D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerPresencesView.swift; sourceTree = ""; }; + D03BCCF71C73561C0097A291 /* Table.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Table.swift; sourceTree = ""; }; + D03E45562305C7C90049C28B /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457A2305CD000049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457C2305CD090049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E457E2305CD130049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E462B2306E01C0049C28B /* sqlciphermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlciphermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E463C2306E0F60049C28B /* crc32mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = crc32mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_23to24.swift; sourceTree = ""; }; + D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountManagerAtomicState.swift; sourceTree = ""; }; + D044CA291C617D39002160FF /* SeedConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SeedConfiguration.swift; sourceTree = ""; }; + D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryMetadataTable.swift; sourceTree = ""; }; + D044CA2D1C618373002160FF /* ChatListHole.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHole.swift; sourceTree = ""; }; + D044E1611B2AD667001EE087 /* MurMurHash32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MurMurHash32.h; sourceTree = ""; }; + D044E1621B2AD677001EE087 /* MurMurHash32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MurMurHash32.m; sourceTree = ""; }; + D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMessageHistoryTagsTable.swift; sourceTree = ""; }; + D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMessageTagsView.swift; sourceTree = ""; }; + D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_15to16.swift; sourceTree = ""; }; + D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalChatListItemsTable.swift; sourceTree = ""; }; + D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalChatListItemsView.swift; sourceTree = ""; }; + D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxStateView.swift; sourceTree = ""; }; + D055BD321B7D3D2D00F06C0A /* MediaBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaBox.swift; sourceTree = ""; }; + D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessChallengeDataView.swift; sourceTree = ""; }; + D05D8B30218F1D3D0064586F /* AccountSharedData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSharedData.swift; sourceTree = ""; }; + D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountManagerSharedDataTable.swift; sourceTree = ""; }; + D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceStatus.swift; sourceTree = ""; }; + D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalMessageHistoryViewData.swift; sourceTree = ""; }; + D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryViewEntryAttributes.swift; sourceTree = ""; }; + D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryAnchorIndex.swift; sourceTree = ""; }; + D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryViewState.swift; sourceTree = ""; }; + D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorTable.swift; sourceTree = ""; }; + D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorIndexTable.swift; sourceTree = ""; }; + D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorTimestampView.swift; sourceTree = ""; }; + D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeEntryView.swift; sourceTree = ""; }; + D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagsSummaryTable.swift; sourceTree = ""; }; + D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsTable.swift; sourceTree = ""; }; + D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagSummaryView.swift; sourceTree = ""; }; + D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsMetadataTable.swift; sourceTree = ""; }; + D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsView.swift; sourceTree = ""; }; + D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsSummaryView.swift; sourceTree = ""; }; + D07827C01E0079CB00071108 /* StringIndexTokens.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringIndexTokens.swift; sourceTree = ""; }; + D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseIndexReferenceTable.swift; sourceTree = ""; }; + D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNameIndexTable.swift; sourceTree = ""; }; + D079FCE51F06A3170038FADE /* NoticeTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoticeTable.swift; sourceTree = ""; }; + D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatInterfaceState.swift; sourceTree = ""; }; + D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatInterfaceStateTable.swift; sourceTree = ""; }; + D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InitialMessageHistoryData.swift; sourceTree = ""; }; + D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_20to21.swift; sourceTree = ""; }; + D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_21to22.swift; sourceTree = ""; }; + D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesTable.swift; sourceTree = ""; }; + D08775021E3E3E7400A97350 /* PreferencesEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesEntry.swift; sourceTree = ""; }; + D08775051E3E3F2100A97350 /* PreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesView.swift; sourceTree = ""; }; + D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListView.swift; sourceTree = ""; }; + D08B61BF22A75C21000A46A8 /* Hash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hash.swift; sourceTree = ""; }; + D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryIndexTable.swift; sourceTree = ""; }; + D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTable.swift; sourceTree = ""; }; + D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RedBlackTree.swift; sourceTree = ""; }; + D08D451E1D5D2CA700A7428A /* RatingTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RatingTable.swift; sourceTree = ""; }; + D0943AF71FDAC53F001522CC /* ChatLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLocation.swift; sourceTree = ""; }; + D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_14to15.swift; sourceTree = ""; }; + D0977F9B1B822DB4009994B2 /* ValueBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValueBox.swift; sourceTree = ""; }; + D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValueBoxKey.swift; sourceTree = ""; }; + D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SqliteValueBox.swift; sourceTree = ""; }; + D098C6F01D7E11E9007784E4 /* Database.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = ""; }; + D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderStatisticTable.swift; sourceTree = ""; }; + D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnreadMessageCountsView.swift; sourceTree = ""; }; + D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedMessageHistoryTagsSummaryTable.swift; sourceTree = ""; }; + D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedMessageHistoryTagSummariesView.swift; sourceTree = ""; }; + D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinarySearch.swift; sourceTree = ""; }; + D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesIndexTable.swift; sourceTree = ""; }; + D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesTable.swift; sourceTree = ""; }; + D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesView.swift; sourceTree = ""; }; + D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryHolesView.swift; sourceTree = ""; }; + D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHolesView.swift; sourceTree = ""; }; + D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsentMessageIndicesView.swift; sourceTree = ""; }; + D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerOperationLogTable.swift; sourceTree = ""; }; + D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerOperationLogMetadataTable.swift; sourceTree = ""; }; + D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsView.swift; sourceTree = ""; }; + D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageOfInterestHolesView.swift; sourceTree = ""; }; + D0B1671F1F9EAAA900976B40 /* OrderedList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderedList.swift; sourceTree = ""; }; + D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceContactImportInfoTable.swift; sourceTree = ""; }; + D0B418131D7DFAF2004562A4 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B418151D7DFAF3004562A4 /* Postbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Postbox.h; sourceTree = ""; }; + D0B418161D7DFAF3004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftSignalKitMac.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug/SwiftSignalKitMac.framework"; sourceTree = ""; }; + D0B844501DAC04FE005F29E1 /* PeerPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPresence.swift; sourceTree = ""; }; + D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiplePeersView.swift; sourceTree = ""; }; + D0BC38711E409E670044D6FE /* RenderedPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RenderedPeer.swift; sourceTree = ""; }; + D0BE3033206026C800FBE6D8 /* MessagesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesView.swift; sourceTree = ""; }; + D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfoView.swift; sourceTree = ""; }; + D0BEAF621E54B2FA00BD963D /* AccountManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManager.swift; sourceTree = ""; }; + D0BEAF661E54B33900BD963D /* AccountRecord.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountRecord.swift; sourceTree = ""; }; + D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManagerMetadataTable.swift; sourceTree = ""; }; + D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManagerRecordTable.swift; sourceTree = ""; }; + D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountRecordsView.swift; sourceTree = ""; }; + D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutableBasicPeerView.swift; sourceTree = ""; }; + D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseAssociatedPeerTable.swift; sourceTree = ""; }; + D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinnedItemId.swift; sourceTree = ""; }; + D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerDataView.swift; sourceTree = ""; }; + D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryReadStateTable.swift; sourceTree = ""; }; + D0C674CB1CBB14A700183765 /* PeerReadState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReadState.swift; sourceTree = ""; }; + D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatStateTable.swift; sourceTree = ""; }; + D0C9DA381C65782500855278 /* SimpleSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleSet.swift; sourceTree = ""; }; + D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedGroupMessageStatsTable.swift; sourceTree = ""; }; + D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeGroupMessageStatsView.swift; sourceTree = ""; }; + D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_24to25.swift; sourceTree = ""; }; + D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerGroup.swift; sourceTree = ""; }; + D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryHoleIndexTable.swift; sourceTree = ""; }; + D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResource.swift; sourceTree = ""; }; + D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_13to14.swift; sourceTree = ""; }; + D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingPeerNotificationSettingsIndexTable.swift; sourceTree = ""; }; + D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxTransaction.swift; sourceTree = ""; }; + D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryOperation.swift; sourceTree = ""; }; + D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntermediateMessage.swift; sourceTree = ""; }; + D0D510FF1D64A58900A97B8A /* IpcPipe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IpcPipe.swift; sourceTree = ""; }; + D0D511011D64D73D00A97B8A /* IpcNotifier.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = IpcNotifier.mm; sourceTree = ""; }; + D0D511031D64D75200A97B8A /* IpcNotifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpcNotifier.h; sourceTree = ""; }; + D0D949F41D35353900740E02 /* MappedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MappedFile.swift; sourceTree = ""; }; + D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingPeerNotificationSettingsView.swift; sourceTree = ""; }; + D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxAccess.swift; sourceTree = ""; }; + D0DF0C8E1D81A350008AEB01 /* PeerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerView.swift; sourceTree = ""; }; + D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutablePeerChatInclusionView.swift; sourceTree = ""; }; + D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageHistoryTagsTable.swift; sourceTree = ""; }; + D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageTagsView.swift; sourceTree = ""; }; + D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewTracker.swift; sourceTree = ""; }; + D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionIdsView.swift; sourceTree = ""; }; + D0E3A74E1B28A7E300A402D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0E3A74F1B28A7E300A402D9 /* Postbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Postbox.h; sourceTree = ""; }; + D0E3A7811B28ADD000A402D9 /* Postbox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Postbox.swift; sourceTree = ""; }; + D0E3A7831B28AE0900A402D9 /* Peer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Peer.swift; sourceTree = ""; }; + D0E3A7871B28AE9C00A402D9 /* Coding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Coding.swift; sourceTree = ""; }; + D0E3A79D1B28B50400A402D9 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + D0E3A7A11B28B7DC00A402D9 /* Media.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Media.swift; sourceTree = ""; }; + D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxLogging.swift; sourceTree = ""; }; + D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMergedOperationLogView.swift; sourceTree = ""; }; + D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Upgrades.swift; sourceTree = ""; }; + D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_12to13.swift; sourceTree = ""; }; + D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCacheTable.swift; sourceTree = ""; }; + D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCacheMetaTable.swift; sourceTree = ""; }; + D0F53BF21E794C6700117362 /* PeerChatStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatStateView.swift; sourceTree = ""; }; + D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatTopIndexableMessageIds.swift; sourceTree = ""; }; + D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListTable.swift; sourceTree = ""; }; + D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListEntry.swift; sourceTree = ""; }; + D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListIndexTable.swift; sourceTree = ""; }; + D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageMediaTable.swift; sourceTree = ""; }; + D0F9E8641C58CB7F00037222 /* ChatListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTable.swift; sourceTree = ""; }; + D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListIndexTable.swift; sourceTree = ""; }; + D0F9E86A1C59719800037222 /* ChatListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListView.swift; sourceTree = ""; }; + D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetadataTable.swift; sourceTree = ""; }; + D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainTable.swift; sourceTree = ""; }; + D0F9E8701C5A0E9B00037222 /* PeerTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerTable.swift; sourceTree = ""; }; + D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageIdsTable.swift; sourceTree = ""; }; + D0F9E8741C5A334100037222 /* SimpleDictionary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleDictionary.swift; sourceTree = ""; }; + D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfosView.swift; sourceTree = ""; }; + D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxView.swift; sourceTree = ""; }; + D0FA0ACC1E781067005BB9B7 /* Views.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Views.swift; sourceTree = ""; }; + D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaBoxFile.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0B4180F1D7DFAF2004562A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F935236C1DC4002ABF81 /* Crc32.framework in Frameworks */, + A701F92C236C1B66002ABF81 /* SwiftSignalKit.framework in Frameworks */, + A701F925236B3350002ABF81 /* sqlcipher.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D0105D69218362D9007C04A7 /* Temp Box */ = { + isa = PBXGroup; + children = ( + D0105D6A218362F2007C04A7 /* TempBox.swift */, + ); + name = "Temp Box"; + sourceTree = ""; + }; + D05F09981C9CAC1100BB6F96 /* Media Box */ = { + isa = PBXGroup; + children = ( + D055BD321B7D3D2D00F06C0A /* MediaBox.swift */, + D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */, + D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */, + D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */, + D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */, + ); + name = "Media Box"; + sourceTree = ""; + }; + D0633D02225B988E003DD95F /* Peer History */ = { + isa = PBXGroup; + children = ( + D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */, + D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */, + D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */, + D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */, + D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */, + ); + name = "Peer History"; + sourceTree = ""; + }; + D07515FC1B2C44A200AE42E0 /* thirdparty */ = { + isa = PBXGroup; + children = ( + D098C6F01D7E11E9007784E4 /* Database.swift */, + ); + name = thirdparty; + sourceTree = ""; + }; + D0B418141D7DFAF3004562A4 /* Postbox */ = { + isa = PBXGroup; + children = ( + D0B418151D7DFAF3004562A4 /* Postbox.h */, + D0B418161D7DFAF3004562A4 /* Info.plist */, + ); + path = Postbox; + sourceTree = ""; + }; + D0B4185F1D7DFE95004562A4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A701F934236C1DC4002ABF81 /* Crc32.framework */, + A701F92D236C1D02002ABF81 /* crc32.framework */, + A701F92B236C1B66002ABF81 /* SwiftSignalKit.framework */, + A701F924236B3350002ABF81 /* sqlcipher.framework */, + A701F8F1236B2E61002ABF81 /* SwiftSignalKitMac.framework */, + A701F8EF236B2E5A002ABF81 /* libphonenumbermac.framework */, + A701F8ED236B2E54002ABF81 /* crc32mac.framework */, + D03E463C2306E0F60049C28B /* crc32mac.framework */, + D03E462B2306E01C0049C28B /* sqlciphermac.framework */, + D03E457E2305CD130049C28B /* Foundation.framework */, + D03E457C2305CD090049C28B /* Crc32.framework */, + D03E457A2305CD000049C28B /* Crc32.framework */, + D03E45562305C7C90049C28B /* sqlcipher.framework */, + D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0BEAF651E54B32B00BD963D /* Account Manager */ = { + isa = PBXGroup; + children = ( + D0BEAF621E54B2FA00BD963D /* AccountManager.swift */, + D0BEAF661E54B33900BD963D /* AccountRecord.swift */, + D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */, + D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */, + D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */, + D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */, + D05D8B30218F1D3D0064586F /* AccountSharedData.swift */, + D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */, + D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */, + D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */, + D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */, + ); + name = "Account Manager"; + sourceTree = ""; + }; + D0DA443F1E4C7834005FDCA7 /* Upgrade */ = { + isa = PBXGroup; + children = ( + D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */, + D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */, + D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */, + D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */, + D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */, + D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */, + D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */, + D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */, + D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */, + D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */, + D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */, + D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */, + D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */, + D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */, + ); + name = Upgrade; + sourceTree = ""; + }; + D0E1DE161C5EB06000C7826E /* Tables */ = { + isa = PBXGroup; + children = ( + D03BCCF71C73561C0097A291 /* Table.swift */, + D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */, + D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */, + D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */, + D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */, + D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */, + D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */, + D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */, + D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */, + D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */, + D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */, + D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */, + D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */, + D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */, + D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */, + D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */, + D0F9E8641C58CB7F00037222 /* ChatListTable.swift */, + D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */, + D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */, + D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */, + D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */, + D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */, + D0F9E8701C5A0E9B00037222 /* PeerTable.swift */, + D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */, + D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */, + D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */, + D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */, + D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */, + D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */, + D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */, + D0079F591D592E8B00A27A2C /* ContactTable.swift */, + D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */, + D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */, + D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */, + D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */, + D08D451E1D5D2CA700A7428A /* RatingTable.swift */, + D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */, + D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */, + D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */, + D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */, + D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */, + D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */, + D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */, + D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */, + D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */, + D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */, + D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */, + D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */, + D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */, + D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */, + D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */, + D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */, + D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */, + D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */, + D079FCE51F06A3170038FADE /* NoticeTable.swift */, + D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */, + D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */, + D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */, + ); + name = Tables; + sourceTree = ""; + }; + D0E1DE171C5EB06B00C7826E /* Objects */ = { + isa = PBXGroup; + children = ( + D0E3A7831B28AE0900A402D9 /* Peer.swift */, + D0E3A79D1B28B50400A402D9 /* Message.swift */, + D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */, + D0E3A7A11B28B7DC00A402D9 /* Media.swift */, + D044CA2D1C618373002160FF /* ChatListHole.swift */, + D0C674CB1CBB14A700183765 /* PeerReadState.swift */, + D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */, + D03120F91DA540F0006A2A60 /* CachedPeerData.swift */, + D0B844501DAC04FE005F29E1 /* PeerPresence.swift */, + D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */, + D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */, + D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */, + D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */, + D08775021E3E3E7400A97350 /* PreferencesEntry.swift */, + D0BC38711E409E670044D6FE /* RenderedPeer.swift */, + D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */, + D0943AF71FDAC53F001522CC /* ChatLocation.swift */, + D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */, + D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */, + ); + name = Objects; + sourceTree = ""; + }; + D0E1DE181C5EB09300C7826E /* Utils */ = { + isa = PBXGroup; + children = ( + D0E3A7871B28AE9C00A402D9 /* Coding.swift */, + D0F9E8741C5A334100037222 /* SimpleDictionary.swift */, + D0C9DA381C65782500855278 /* SimpleSet.swift */, + D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */, + D0D949F41D35353900740E02 /* MappedFile.swift */, + D0D510FF1D64A58900A97B8A /* IpcPipe.swift */, + D07827C01E0079CB00071108 /* StringIndexTokens.swift */, + D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */, + D01BAA541ED1D70C00295217 /* ManagedFile.swift */, + D0B1671F1F9EAAA900976B40 /* OrderedList.swift */, + D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */, + D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */, + D021FC252024B83700C34AB7 /* FileSize.swift */, + D08B61BF22A75C21000A46A8 /* Hash.swift */, + ); + name = Utils; + sourceTree = ""; + }; + D0E1DE191C5EB0B500C7826E /* Value Box */ = { + isa = PBXGroup; + children = ( + D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */, + D0977F9B1B822DB4009994B2 /* ValueBox.swift */, + D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */, + ); + name = "Value Box"; + sourceTree = ""; + }; + D0E1DE1A1C5EB0DB00C7826E /* Views */ = { + isa = PBXGroup; + children = ( + D0633D02225B988E003DD95F /* Peer History */, + D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */, + D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */, + D0F9E86A1C59719800037222 /* ChatListView.swift */, + D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */, + D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */, + D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */, + D0079F641D5A457A00A27A2C /* ContactPeersView.swift */, + D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */, + D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */, + D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */, + D0DF0C8E1D81A350008AEB01 /* PeerView.swift */, + D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */, + D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */, + D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */, + D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */, + D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */, + D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */, + D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */, + D00C7CE21E37861C0080C3D5 /* MessageView.swift */, + D08775051E3E3F2100A97350 /* PreferencesView.swift */, + D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */, + D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */, + D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */, + D0FA0ACC1E781067005BB9B7 /* Views.swift */, + D0F53BF21E794C6700117362 /* PeerChatStateView.swift */, + D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */, + D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */, + D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */, + D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */, + D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */, + D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */, + D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */, + D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */, + D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */, + D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */, + D0BE3033206026C800FBE6D8 /* MessagesView.swift */, + D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */, + D037178A20D923CA004773C8 /* CachedItemView.swift */, + D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */, + D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */, + D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */, + D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */, + D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */, + ); + name = Views; + sourceTree = ""; + }; + D0E3A7401B28A7E300A402D9 = { + isa = PBXGroup; + children = ( + A72D451C236AF37F0052FA81 /* Postbox.xcconfig */, + D0E3A74C1B28A7E300A402D9 /* Sources */, + D0B418141D7DFAF3004562A4 /* Postbox */, + D0E3A74B1B28A7E300A402D9 /* Products */, + D0B4185F1D7DFE95004562A4 /* Frameworks */, + ); + sourceTree = ""; + }; + D0E3A74B1B28A7E300A402D9 /* Products */ = { + isa = PBXGroup; + children = ( + D0B418131D7DFAF2004562A4 /* Postbox.framework */, + ); + name = Products; + sourceTree = ""; + }; + D0E3A74C1B28A7E300A402D9 /* Sources */ = { + isa = PBXGroup; + children = ( + D0DA443F1E4C7834005FDCA7 /* Upgrade */, + D07515FC1B2C44A200AE42E0 /* thirdparty */, + D0E1DE181C5EB09300C7826E /* Utils */, + D0E1DE171C5EB06B00C7826E /* Objects */, + D0E1DE191C5EB0B500C7826E /* Value Box */, + D0E1DE161C5EB06000C7826E /* Tables */, + D0E1DE1A1C5EB0DB00C7826E /* Views */, + D0105D69218362D9007C04A7 /* Temp Box */, + D05F09981C9CAC1100BB6F96 /* Media Box */, + D0E3A7811B28ADD000A402D9 /* Postbox.swift */, + D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */, + D044CA291C617D39002160FF /* SeedConfiguration.swift */, + D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */, + D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */, + D0BEAF651E54B32B00BD963D /* Account Manager */, + D0E3A74D1B28A7E300A402D9 /* Supporting Files */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/Postbox/Sources"; + sourceTree = ""; + }; + D0E3A74D1B28A7E300A402D9 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D044E1611B2AD667001EE087 /* MurMurHash32.h */, + D044E1621B2AD677001EE087 /* MurMurHash32.m */, + D0E3A74F1B28A7E300A402D9 /* Postbox.h */, + D0E3A74E1B28A7E300A402D9 /* Info.plist */, + D0D511031D64D75200A97B8A /* IpcNotifier.h */, + D0D511011D64D73D00A97B8A /* IpcNotifier.mm */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D0B418101D7DFAF2004562A4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D0B4185B1D7DFE2C004562A4 /* MurMurHash32.h in Headers */, + D0B418171D7DFAF3004562A4 /* Postbox.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D0B418121D7DFAF2004562A4 /* Postbox */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0B4181B1D7DFAF3004562A4 /* Build configuration list for PBXNativeTarget "Postbox" */; + buildPhases = ( + D0B4180E1D7DFAF2004562A4 /* Sources */, + D0B4180F1D7DFAF2004562A4 /* Frameworks */, + D0B418101D7DFAF2004562A4 /* Headers */, + D0B418111D7DFAF2004562A4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Postbox; + productName = PostboxMac; + productReference = D0B418131D7DFAF2004562A4 /* Postbox.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0E3A7411B28A7E300A402D9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftMigration = 0700; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0800; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + D0B418121D7DFAF2004562A4 = { + CreatedOnToolsVersion = 8.0; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = D0E3A7441B28A7E300A402D9 /* Build configuration list for PBXProject "Postbox_Xcode" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = D0E3A7401B28A7E300A402D9; + productRefGroup = D0E3A74B1B28A7E300A402D9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0B418121D7DFAF2004562A4 /* Postbox */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0B418111D7DFAF2004562A4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0B4180E1D7DFAF2004562A4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F291C9B2264CFCC00C66267 /* (null) in Sources */, + 9F5B6E762011449F00C58B2A /* PostboxLogging.swift in Sources */, + C20EB2A31F7179DC00DD3A57 /* PeerNotificationSettingsView.swift in Sources */, + C25B56FE1F431C3300581D02 /* MessageHistoryTagsSummaryTable.swift in Sources */, + D0633D08225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */, + D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */, + D03229EF1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */, + D0AA55141FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */, + D01C7F081EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */, + D050F2671E4A5B5A00988324 /* TimestampBasedMessageAttributesTable.swift in Sources */, + D050F2681E4A5B5A00988324 /* TimestampBasedMessageAttributesIndexTable.swift in Sources */, + D050F2691E4A5B5A00988324 /* MultiplePeersView.swift in Sources */, + C2A315BE1E2E733900D89000 /* PeerMergedOperationLogIndexTable.swift in Sources */, + D0633D05225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */, + C2A315BF1E2E733900D89000 /* PeerMergedOperationLogView.swift in Sources */, + C2A315BD1E2E732000D89000 /* PeerOperationLogMetadataTable.swift in Sources */, + D000CADB22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */, + D0575AE41E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */, + C2A315BC1E2E730400D89000 /* PeerOperationLogTable.swift in Sources */, + D0B2F75E204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */, + D0C26D7F1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */, + C2AC9C131E1E5D200085C7DE /* UnreadMessageCountsView.swift in Sources */, + D0B418481D7DFE20004562A4 /* MessageHistoryView.swift in Sources */, + D0F7B1DF1E045C6A007EB8A5 /* ItemCacheMetaTable.swift in Sources */, + D0F7B1C41E045C6A007EB8A5 /* GlobalMessageIdsTable.swift in Sources */, + D073CE7E1DCBF3B4007511FD /* PeerNotificationSettings.swift in Sources */, + D0F7B1DC1E045C6A007EB8A5 /* ItemCollectionItemTable.swift in Sources */, + D0F7B1C71E045C6A007EB8A5 /* MessageHistoryTable.swift in Sources */, + D0B418571D7DFE29004562A4 /* Postbox.swift in Sources */, + D0B418251D7DFE0C004562A4 /* RedBlackTree.swift in Sources */, + D07047A31F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */, + D04614342004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */, + D0CCD6202231CE5400EE1E08 /* PeerGroup.swift in Sources */, + D0BEAF681E54B33900BD963D /* AccountRecord.swift in Sources */, + D05D8B35218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */, + D06CA13322772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */, + D0F7B1C61E045C6A007EB8A5 /* MessageHistoryIndexTable.swift in Sources */, + D0F7B1CD1E045C6A007EB8A5 /* MessageMediaTable.swift in Sources */, + D0B844071DAB91B5005F29E1 /* MediaResource.swift in Sources */, + D0F7B1D71E045C6A007EB8A5 /* MessageHistoryReadStateTable.swift in Sources */, + D0B418261D7DFE0C004562A4 /* MappedFile.swift in Sources */, + D048B4A920A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */, + D039FB1C21714D9800BD1BAD /* PeerPresencesView.swift in Sources */, + D073CE771DCBF3B4007511FD /* Media.swift in Sources */, + D037178C20D923CA004773C8 /* CachedItemView.swift in Sources */, + D0CA8E4622720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */, + D0A352F91F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */, + D0CA8E49227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */, + D018BE56218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */, + D07E7B46224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */, + D073CE791DCBF3B4007511FD /* ChatListHole.swift in Sources */, + D0F53BF41E794C6700117362 /* PeerChatStateView.swift in Sources */, + D06CA130227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */, + D0F82D0D1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */, + D0B418591D7DFE29004562A4 /* PostboxTransaction.swift in Sources */, + D0F7B1D21E045C6A007EB8A5 /* PeerNotificationSettingsTable.swift in Sources */, + D0E23DE31E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */, + D0119CAE20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */, + D0F7B1C91E045C6A007EB8A5 /* MessageHistoryTagsTable.swift in Sources */, + D0B418271D7DFE0C004562A4 /* IpcPipe.swift in Sources */, + D0FA0ACB1E780A26005BB9B7 /* PostboxView.swift in Sources */, + D0B4184D1D7DFE20004562A4 /* ContactPeersView.swift in Sources */, + D00C7CE41E37861C0080C3D5 /* MessageView.swift in Sources */, + D08775011E3E3D9F00A97350 /* PreferencesTable.swift in Sources */, + D0F7B1CC1E045C6A007EB8A5 /* ChatListIndexTable.swift in Sources */, + D07047A61F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */, + D0F7B1D31E045C6A007EB8A5 /* CachedPeerDataTable.swift in Sources */, + D079FCE71F06A31C0038FADE /* NoticeTable.swift in Sources */, + D0F7B1D51E045C6A007EB8A5 /* PeerChatStateTable.swift in Sources */, + D0F82CFE1E4345D7007E499C /* OrderedItemListTable.swift in Sources */, + D0F7B1C51E045C6A007EB8A5 /* MessageHistoryMetadataTable.swift in Sources */, + D0CE8CF71F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */, + D0E1D3101ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */, + D08775071E3E3F2100A97350 /* PreferencesView.swift in Sources */, + D049EAF11E44D9B900A2CD3A /* PostboxStateView.swift in Sources */, + D0AAD1B61E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */, + D0F7B1C31E045C6A007EB8A5 /* Table.swift in Sources */, + D06ECFC620B796DC00C576C2 /* NoticeEntryView.swift in Sources */, + D0F82D101E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */, + D0F7B1CF1E045C6A007EB8A5 /* MetadataTable.swift in Sources */, + D0FA0ACE1E781067005BB9B7 /* Views.swift in Sources */, + D0B418501D7DFE20004562A4 /* UnsentMessageIndicesView.swift in Sources */, + D0BEAF641E54B2FA00BD963D /* AccountManager.swift in Sources */, + D015E0612265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */, + D021FC272024B83700C34AB7 /* FileSize.swift in Sources */, + D073CE7F1DCBF3B4007511FD /* ItemCollection.swift in Sources */, + D07047B21F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */, + D0F7B1D91E045C6A007EB8A5 /* OrderStatisticTable.swift in Sources */, + D0FC194B201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */, + D073CEA01DCBF3C1007511FD /* ItemCollectionsView.swift in Sources */, + D0439B402289F6300067E026 /* AccountManagerAtomicState.swift in Sources */, + D0BE383A1E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */, + D0B418491D7DFE20004562A4 /* ChatListView.swift in Sources */, + D048B33E203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */, + D0F7B1D61E045C6A007EB8A5 /* ContactTable.swift in Sources */, + D0943B031FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */, + D0F7B1D11E045C6A007EB8A5 /* PeerTable.swift in Sources */, + D04614312004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */, + D0F7B1DD1E045C6A007EB8A5 /* PeerChatInterfaceStateTable.swift in Sources */, + D098C6F21D7E1201007784E4 /* Database.swift in Sources */, + D07E7B49224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */, + D0BFE51E22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */, + D0B844061DAB91B5005F29E1 /* MediaResourceStatus.swift in Sources */, + D0F7B1DB1E045C6A007EB8A5 /* ItemCollectionInfoTable.swift in Sources */, + D0F7B1D41E045C6A007EB8A5 /* PeerPresenceTable.swift in Sources */, + D073CE761DCBF3B4007511FD /* IntermediateMessage.swift in Sources */, + D0FA0AC81E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */, + D0B4185A1D7DFE29004562A4 /* ViewTracker.swift in Sources */, + D0F7B1E21E045C6A007EB8A5 /* PeerNameIndexTable.swift in Sources */, + D0E1D30D1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */, + D06CA12D227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */, + D073CE7C1DCBF3B4007511FD /* CachedPeerData.swift in Sources */, + D0E119A1229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */, + D0F7B1DA1E045C6A007EB8A5 /* RatingTable.swift in Sources */, + D0BEAF711E54BC1E00BD963D /* AccountRecordsView.swift in Sources */, + D073CE9F1DCBF3C1007511FD /* InitialMessageHistoryData.swift in Sources */, + D0A352F61F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */, + D0BC38731E409E670044D6FE /* RenderedPeer.swift in Sources */, + D0F7B1DE1E045C6A007EB8A5 /* PeerChatTopIndexableMessageIds.swift in Sources */, + D0B4184A1D7DFE20004562A4 /* UnsentMessageHistoryView.swift in Sources */, + D0B418231D7DFE0C004562A4 /* SimpleDictionary.swift in Sources */, + D0B4185C1D7DFE2F004562A4 /* MurMurHash32.m in Sources */, + D0F7B1E01E045C6A007EB8A5 /* ItemCacheTable.swift in Sources */, + D07047A91F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */, + D0DA1D301F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */, + D0F7B1E11E045C6A007EB8A5 /* ReverseIndexReferenceTable.swift in Sources */, + D0CCD6292232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */, + D0B418241D7DFE0C004562A4 /* SimpleSet.swift in Sources */, + D0CA8E4F2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */, + D073CE7B1DCBF3B4007511FD /* PeerNameIndexRepresentation.swift in Sources */, + D073CE7D1DCBF3B4007511FD /* PeerPresence.swift in Sources */, + D048B4B020A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */, + D0BE3035206026C800FBE6D8 /* MessagesView.swift in Sources */, + D0B4184C1D7DFE20004562A4 /* ContactPeerIdsView.swift in Sources */, + D0DA44491E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */, + D0B167211F9EAAA900976B40 /* OrderedList.swift in Sources */, + D0CE8CF41F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */, + D073CE751DCBF3B4007511FD /* Message.swift in Sources */, + D0943AF91FDAC540001522CC /* ChatLocation.swift in Sources */, + D087C20D1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */, + D00C7CD51E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */, + D0F7B1CB1E045C6A007EB8A5 /* ChatListTable.swift in Sources */, + D0B166EB1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */, + D0F7B1C01E045C62007EB8A5 /* StringIndexTokens.swift in Sources */, + D07047AC1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */, + D0F7B1CA1E045C6A007EB8A5 /* MessageHistoryUnsentTable.swift in Sources */, + D03387532242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */, + D01BAA561ED1D70C00295217 /* ManagedFile.swift in Sources */, + D0BEAF6B1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */, + D0F02CE01E99223E0065DEE2 /* Upgrades.swift in Sources */, + D0F7B1D01E045C6A007EB8A5 /* KeychainTable.swift in Sources */, + D0BEAF6E1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */, + D0B4184F1D7DFE20004562A4 /* ChatListHolesView.swift in Sources */, + D01E79E92248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */, + D0105D6C218362F2007C04A7 /* TempBox.swift in Sources */, + D0F7B1D81E045C6A007EB8A5 /* MessageHistorySynchronizeReadStateTable.swift in Sources */, + D0B418581D7DFE29004562A4 /* SeedConfiguration.swift in Sources */, + D0B418311D7DFE16004562A4 /* ValueBox.swift in Sources */, + D0633D0E225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */, + D08775041E3E3E7400A97350 /* PreferencesEntry.swift in Sources */, + D0B4184E1D7DFE20004562A4 /* MessageHistoryHolesView.swift in Sources */, + D0C0B5AC1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */, + D0633D0B225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */, + D015E05D2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */, + D0B844051DAB91B5005F29E1 /* MediaBox.swift in Sources */, + D0B418321D7DFE16004562A4 /* SqliteValueBox.swift in Sources */, + D040CA6522665370007123CE /* PostboxUpgrade_23to24.swift in Sources */, + D073CE741DCBF3B4007511FD /* Peer.swift in Sources */, + D073CE7A1DCBF3B4007511FD /* PeerReadState.swift in Sources */, + D0F02CE31E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */, + D0C27B461F4B598200A4E170 /* CachedPeerDataView.swift in Sources */, + D073CE801DCBF3B4007511FD /* PeerChatInterfaceState.swift in Sources */, + D0F7B1C81E045C6A007EB8A5 /* MessageHistoryOperation.swift in Sources */, + D0B844031DAB91A7005F29E1 /* PeerView.swift in Sources */, + D0B418301D7DFE16004562A4 /* ValueBoxKey.swift in Sources */, + D001388720BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */, + D08B61C122A75C21000A46A8 /* Hash.swift in Sources */, + D0B418221D7DFE0C004562A4 /* Coding.swift in Sources */, + D0B4184B1D7DFE20004562A4 /* SynchronizePeerReadStatesView.swift in Sources */, + D01C7EDF1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */, + D05D8B32218F1D3D0064586F /* AccountSharedData.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + C22069C81E8EB4BF00E82730 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + C22069CB1E8EB4BF00E82730 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = Postbox/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/Postbox/Sources/module.private.modulemap"; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseHockeyapp; + }; + D0364D5122B3E385002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0364D5422B3E385002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = Postbox/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/Postbox/Sources/module.private.modulemap"; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = HockeyappMacAlpha; + }; + D079FD0C1F06BE070038FADE /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D079FD0F1F06BE070038FADE /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = Postbox/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/Postbox/Sources/module.private.modulemap"; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + }; + name = DebugAppStore; + }; + D086A5711CC0116A00F08284 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0B418181D7DFAF3004562A4 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = Postbox/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/Postbox/Sources/module.private.modulemap"; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = DebugHockeyapp; + }; + D0B4181A1D7DFAF3004562A4 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = Postbox/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/Postbox/Sources/module.private.modulemap"; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseAppStore; + }; + D0E3A75E1B28A7E300A402D9 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D0B4181B1D7DFAF3004562A4 /* Build configuration list for PBXNativeTarget "Postbox" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0B418181D7DFAF3004562A4 /* DebugHockeyapp */, + D0364D5422B3E385002A6EF0 /* HockeyappMacAlpha */, + D079FD0F1F06BE070038FADE /* DebugAppStore */, + C22069CB1E8EB4BF00E82730 /* ReleaseHockeyapp */, + D0B4181A1D7DFAF3004562A4 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + D0E3A7441B28A7E300A402D9 /* Build configuration list for PBXProject "Postbox_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0E3A75E1B28A7E300A402D9 /* DebugHockeyapp */, + D0364D5122B3E385002A6EF0 /* HockeyappMacAlpha */, + D079FD0C1F06BE070038FADE /* DebugAppStore */, + C22069C81E8EB4BF00E82730 /* ReleaseHockeyapp */, + D086A5711CC0116A00F08284 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D0E3A7411B28A7E300A402D9 /* Project object */; +} diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..088de5570 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1f36f24a423dba33b8d82d90f12ad9b29c5a070c GIT binary patch literal 22129 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 G`2PV@p5Ao; literal 0 HcmV?d00001 diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme new file mode 100644 index 000000000..d00e8a8a4 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Postbox.xcscheme b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Postbox.xcscheme new file mode 100644 index 000000000..d00e8a8a4 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Postbox.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxMac.xcscheme b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxMac.xcscheme new file mode 100644 index 000000000..e6e0385ba --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxMac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxTests.xcscheme b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxTests.xcscheme new file mode 100644 index 000000000..83d158d85 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/PostboxTests.xcscheme @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..bbf9a204a --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,53 @@ + + + + + SchemeUserState + + Postbox.xcscheme + + isShown + + orderHint + 20 + + Postbox.xcscheme_^#shared#^_ + + orderHint + 47 + + PostboxMac.xcscheme + + isShown + + orderHint + 26 + + PostboxMac.xcscheme_^#shared#^_ + + orderHint + 48 + + PostboxTests.xcscheme + + isShown + + orderHint + 22 + + PostboxTests.xcscheme_^#shared#^_ + + orderHint + 49 + + + SuppressBuildableAutocreation + + D0B418121D7DFAF2004562A4 + + primary + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..32c3a4615 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + Postbox.xcscheme_^#shared#^_ + + orderHint + 20 + + PostboxMac.xcscheme_^#shared#^_ + + orderHint + 37 + + PostboxTests.xcscheme_^#shared#^_ + + orderHint + 21 + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..882ee3ac0 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Postbox.xcscheme_^#shared#^_ + + orderHint + 18 + + + SuppressBuildableAutocreation + + D0B418121D7DFAF2004562A4 + + primary + + + + + diff --git a/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..e737be8e3 --- /dev/null +++ b/core-xprojects/Postbox/Postbox_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + Postbox.xcscheme_^#shared#^_ + + orderHint + 33 + + PostboxMac.xcscheme_^#shared#^_ + + orderHint + 43 + + PostboxTests.xcscheme_^#shared#^_ + + orderHint + 34 + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..1c95d7ed5 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1368 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A790A346236B1822000451B5 /* SAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADA1B28285400EAF753 /* SAtomic.m */; }; + A790A347236B1822000451B5 /* SBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADC1B28285400EAF753 /* SBag.m */; }; + A790A348236B1822000451B5 /* SSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC91B28285400EAF753 /* SSubscriber.m */; }; + A790A349236B1822000451B5 /* SDisposableSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD01B28285400EAF753 /* SDisposableSet.m */; }; + A790A34A236B1822000451B5 /* SMetaDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD11B28285400EAF753 /* SMetaDisposable.m */; }; + A790A34B236B1822000451B5 /* SBlockDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADE1B28285400EAF753 /* SBlockDisposable.m */; }; + A790A34C236B1822000451B5 /* SThreadPool.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB21B28285400EAF753 /* SThreadPool.m */; }; + A790A34D236B1822000451B5 /* SThreadPoolTask.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */; }; + A790A34E236B1822000451B5 /* SThreadPoolQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */; }; + A790A34F236B1822000451B5 /* SQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB31B28285400EAF753 /* SQueue.m */; }; + A790A350236B1822000451B5 /* STimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AE61B28285400EAF753 /* STimer.m */; }; + A790A351236B1822000451B5 /* SSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB81B28285400EAF753 /* SSignal.m */; }; + A790A352236B1822000451B5 /* SSignal+Single.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD81B28285400EAF753 /* SSignal+Single.m */; }; + A790A353236B1822000451B5 /* SSignal+Mapping.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD71B28285400EAF753 /* SSignal+Mapping.m */; }; + A790A354236B1822000451B5 /* SSignal+Combine.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABD1B28285400EAF753 /* SSignal+Combine.m */; }; + A790A355236B1822000451B5 /* SSignal+Accumulate.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */; }; + A790A356236B1822000451B5 /* SSignal+SideEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */; }; + A790A357236B1823000451B5 /* SSignal+Take.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB41B28285400EAF753 /* SSignal+Take.m */; }; + A790A358236B1823000451B5 /* SSignal+Timing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB11B28285400EAF753 /* SSignal+Timing.m */; }; + A790A359236B1823000451B5 /* SSignal+Meta.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB51B28285400EAF753 /* SSignal+Meta.m */; }; + A790A35A236B1823000451B5 /* SSignal+Pipe.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */; }; + A790A35B236B1823000451B5 /* SSignal+Catch.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC21B28285400EAF753 /* SSignal+Catch.m */; }; + A790A35C236B1823000451B5 /* SSignal+Dispatch.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */; }; + A790A35D236B1823000451B5 /* SSignal+Multicast.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD21B28285400EAF753 /* SSignal+Multicast.m */; }; + A790A35E236B1823000451B5 /* SMulticastSignalManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */; }; + A790A35F236B1823000451B5 /* SVariable.m in Sources */ = {isa = PBXBuildFile; fileRef = D09FD73D1BA9BAB900FF0A4F /* SVariable.m */; }; + A790A360236B1858000451B5 /* SAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD91B28285400EAF753 /* SAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A361236B1858000451B5 /* SBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADB1B28285400EAF753 /* SBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A362236B1858000451B5 /* SSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD31B28285400EAF753 /* SSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A363236B1858000451B5 /* SDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD41B28285400EAF753 /* SDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A364236B1858000451B5 /* SDisposableSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADF1B28285400EAF753 /* SDisposableSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A365236B1858000451B5 /* SMetaDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE21B28285400EAF753 /* SMetaDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A366236B1858000451B5 /* SBlockDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADD1B28285400EAF753 /* SBlockDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A367236B1858000451B5 /* SThreadPool.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACE1B28285400EAF753 /* SThreadPool.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A368236B1858000451B5 /* SThreadPoolTask.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A369236B1858000451B5 /* SThreadPoolQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36A236B1858000451B5 /* SQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC61B28285400EAF753 /* SQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36B236B1858000451B5 /* STimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE51B28285400EAF753 /* STimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36C236B1858000451B5 /* SSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD51B28285400EAF753 /* SSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36D236B1858000451B5 /* SSignal+Single.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB71B28285400EAF753 /* SSignal+Single.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36E236B1858000451B5 /* SSignal+Mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD61B28285400EAF753 /* SSignal+Mapping.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A36F236B1858000451B5 /* SSignal+Combine.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABC1B28285400EAF753 /* SSignal+Combine.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A370236B1858000451B5 /* SSignal+Accumulate.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A371236B1858000451B5 /* SSignal+SideEffects.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A372236B1858000451B5 /* SSignal+Take.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC41B28285400EAF753 /* SSignal+Take.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A373236B1858000451B5 /* SSignal+Timing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC81B28285400EAF753 /* SSignal+Timing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A374236B1858000451B5 /* SSignal+Meta.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC71B28285400EAF753 /* SSignal+Meta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A375236B1858000451B5 /* SSignal+Pipe.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A376236B1858000451B5 /* SSignal+Catch.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC31B28285400EAF753 /* SSignal+Catch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A377236B1858000451B5 /* SSignal+Dispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A378236B1858000451B5 /* SSignal+Multicast.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE41B28285400EAF753 /* SSignal+Multicast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A379236B1858000451B5 /* SMulticastSignalManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A37A236B1858000451B5 /* SVariable.h in Headers */ = {isa = PBXBuildFile; fileRef = D09FD73C1BA9BAB900FF0A4F /* SVariable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A37E236B1CC9000451B5 /* SSignalKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB91B28285400EAF753 /* SSignalKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0467D1920D7F7BC0055C28F /* Signal_Loop.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */; }; + D053B4011F16881000E2D58A /* QueueLocalObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */; }; + D0B417F11D7DFA63004562A4 /* SwiftSignalKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B417EF1D7DFA63004562A4 /* SwiftSignalKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B417F61D7DFAAB004562A4 /* Signal_Timing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */; }; + D0B417F71D7DFAAB004562A4 /* Signal_SideEffects.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */; }; + D0B417F81D7DFAAB004562A4 /* Signal_Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */; }; + D0B417F91D7DFAAB004562A4 /* ThreadPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */; }; + D0B417FA1D7DFAAB004562A4 /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B401B282BEE00EAF753 /* Timer.swift */; }; + D0B417FB1D7DFAAB004562A4 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B411B282BEE00EAF753 /* Queue.swift */; }; + D0B417FC1D7DFAAB004562A4 /* ValuePipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B421B282BEE00EAF753 /* ValuePipe.swift */; }; + D0B417FD1D7DFAAB004562A4 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B431B282BEE00EAF753 /* Bag.swift */; }; + D0B417FE1D7DFAAB004562A4 /* Signal_Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B441B282BEE00EAF753 /* Signal_Take.swift */; }; + D0B417FF1D7DFAAB004562A4 /* Signal_Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B451B282BEE00EAF753 /* Signal_Catch.swift */; }; + D0B418001D7DFAAB004562A4 /* Signal_Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B461B282BEE00EAF753 /* Signal_Single.swift */; }; + D0B418011D7DFAAB004562A4 /* Signal_Meta.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B471B282BEE00EAF753 /* Signal_Meta.swift */; }; + D0B418021D7DFAAB004562A4 /* Signal_Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B481B282BEE00EAF753 /* Signal_Combine.swift */; }; + D0B418031D7DFAAB004562A4 /* Signal_Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */; }; + D0B418041D7DFAAB004562A4 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B491B282BEE00EAF753 /* Atomic.swift */; }; + D0B418051D7DFAAB004562A4 /* Signal_Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */; }; + D0B418061D7DFAAB004562A4 /* Signal_Materialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */; }; + D0B418071D7DFAAB004562A4 /* Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4B1B282BEE00EAF753 /* Signal.swift */; }; + D0B418081D7DFAAB004562A4 /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4C1B282BEE00EAF753 /* Disposable.swift */; }; + D0B418091D7DFAAB004562A4 /* Signal_Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */; }; + D0B4180A1D7DFAAB004562A4 /* Subscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4E1B282BEE00EAF753 /* Subscriber.swift */; }; + D0B4180B1D7DFAAB004562A4 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07A5CFC1BBDE6E400451791 /* Promise.swift */; }; + D0B4180C1D7DFAAB004562A4 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A71C9EF77100BB6F96 /* Multicast.swift */; }; + D0B4180D1D7DFAAB004562A4 /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = D066BD091C7FE06700D7A576 /* Lock.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A790A321236B17DF000451B5 /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A790A37C236B1C44000451B5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D0085AB11B28285400EAF753 /* SSignal+Timing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Timing.m"; sourceTree = ""; }; + D0085AB21B28285400EAF753 /* SThreadPool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPool.m; sourceTree = ""; }; + D0085AB31B28285400EAF753 /* SQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SQueue.m; sourceTree = ""; }; + D0085AB41B28285400EAF753 /* SSignal+Take.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Take.m"; sourceTree = ""; }; + D0085AB51B28285400EAF753 /* SSignal+Meta.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Meta.m"; sourceTree = ""; }; + D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Accumulate.h"; sourceTree = ""; }; + D0085AB71B28285400EAF753 /* SSignal+Single.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Single.h"; sourceTree = ""; }; + D0085AB81B28285400EAF753 /* SSignal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSignal.m; sourceTree = ""; }; + D0085AB91B28285400EAF753 /* SSignalKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSignalKit.h; sourceTree = ""; }; + D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMulticastSignalManager.h; sourceTree = ""; }; + D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMulticastSignalManager.m; sourceTree = ""; }; + D0085ABC1B28285400EAF753 /* SSignal+Combine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Combine.h"; sourceTree = ""; }; + D0085ABD1B28285400EAF753 /* SSignal+Combine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Combine.m"; sourceTree = ""; }; + D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Pipe.h"; sourceTree = ""; }; + D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Pipe.m"; sourceTree = ""; }; + D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+SideEffects.h"; sourceTree = ""; }; + D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+SideEffects.m"; sourceTree = ""; }; + D0085AC21B28285400EAF753 /* SSignal+Catch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Catch.m"; sourceTree = ""; }; + D0085AC31B28285400EAF753 /* SSignal+Catch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Catch.h"; sourceTree = ""; }; + D0085AC41B28285400EAF753 /* SSignal+Take.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Take.h"; sourceTree = ""; }; + D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Accumulate.m"; sourceTree = ""; }; + D0085AC61B28285400EAF753 /* SQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQueue.h; sourceTree = ""; }; + D0085AC71B28285400EAF753 /* SSignal+Meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Meta.h"; sourceTree = ""; }; + D0085AC81B28285400EAF753 /* SSignal+Timing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Timing.h"; sourceTree = ""; }; + D0085AC91B28285400EAF753 /* SSubscriber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSubscriber.m; sourceTree = ""; }; + D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Dispatch.m"; sourceTree = ""; }; + D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPoolTask.m; sourceTree = ""; }; + D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPoolQueue.m; sourceTree = ""; }; + D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPoolQueue.h; sourceTree = ""; }; + D0085ACE1B28285400EAF753 /* SThreadPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPool.h; sourceTree = ""; }; + D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPoolTask.h; sourceTree = ""; }; + D0085AD01B28285400EAF753 /* SDisposableSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDisposableSet.m; sourceTree = ""; }; + D0085AD11B28285400EAF753 /* SMetaDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMetaDisposable.m; sourceTree = ""; }; + D0085AD21B28285400EAF753 /* SSignal+Multicast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Multicast.m"; sourceTree = ""; }; + D0085AD31B28285400EAF753 /* SSubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSubscriber.h; sourceTree = ""; }; + D0085AD41B28285400EAF753 /* SDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDisposable.h; sourceTree = ""; }; + D0085AD51B28285400EAF753 /* SSignal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSignal.h; sourceTree = ""; }; + D0085AD61B28285400EAF753 /* SSignal+Mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Mapping.h"; sourceTree = ""; }; + D0085AD71B28285400EAF753 /* SSignal+Mapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Mapping.m"; sourceTree = ""; }; + D0085AD81B28285400EAF753 /* SSignal+Single.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Single.m"; sourceTree = ""; }; + D0085AD91B28285400EAF753 /* SAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SAtomic.h; sourceTree = ""; }; + D0085ADA1B28285400EAF753 /* SAtomic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SAtomic.m; sourceTree = ""; }; + D0085ADB1B28285400EAF753 /* SBag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBag.h; sourceTree = ""; }; + D0085ADC1B28285400EAF753 /* SBag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBag.m; sourceTree = ""; }; + D0085ADD1B28285400EAF753 /* SBlockDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBlockDisposable.h; sourceTree = ""; }; + D0085ADE1B28285400EAF753 /* SBlockDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBlockDisposable.m; sourceTree = ""; }; + D0085ADF1B28285400EAF753 /* SDisposableSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDisposableSet.h; sourceTree = ""; }; + D0085AE21B28285400EAF753 /* SMetaDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMetaDisposable.h; sourceTree = ""; }; + D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Dispatch.h"; sourceTree = ""; }; + D0085AE41B28285400EAF753 /* SSignal+Multicast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Multicast.h"; sourceTree = ""; }; + D0085AE51B28285400EAF753 /* STimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STimer.h; sourceTree = ""; }; + D0085AE61B28285400EAF753 /* STimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STimer.m; sourceTree = ""; }; + D0085B251B282B9800EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0085B261B282B9800EAF753 /* SwiftSignalKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKit.h; sourceTree = ""; }; + D0085B3B1B282BEE00EAF753 /* SwiftSignalKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKit.h; sourceTree = ""; }; + D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Timing.swift; sourceTree = ""; }; + D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_SideEffects.swift; sourceTree = ""; }; + D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Dispatch.swift; sourceTree = ""; }; + D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadPool.swift; sourceTree = ""; }; + D0085B401B282BEE00EAF753 /* Timer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Timer.swift; sourceTree = ""; }; + D0085B411B282BEE00EAF753 /* Queue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Queue.swift; sourceTree = ""; }; + D0085B421B282BEE00EAF753 /* ValuePipe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValuePipe.swift; sourceTree = ""; }; + D0085B431B282BEE00EAF753 /* Bag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bag.swift; sourceTree = ""; }; + D0085B441B282BEE00EAF753 /* Signal_Take.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Take.swift; sourceTree = ""; }; + D0085B451B282BEE00EAF753 /* Signal_Catch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Catch.swift; sourceTree = ""; }; + D0085B461B282BEE00EAF753 /* Signal_Single.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Single.swift; sourceTree = ""; }; + D0085B471B282BEE00EAF753 /* Signal_Meta.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Meta.swift; sourceTree = ""; }; + D0085B481B282BEE00EAF753 /* Signal_Combine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Combine.swift; sourceTree = ""; }; + D0085B491B282BEE00EAF753 /* Atomic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = ""; }; + D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Reduce.swift; sourceTree = ""; }; + D0085B4B1B282BEE00EAF753 /* Signal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal.swift; sourceTree = ""; }; + D0085B4C1B282BEE00EAF753 /* Disposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Disposable.swift; sourceTree = ""; }; + D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Mapping.swift; sourceTree = ""; }; + D0085B4E1B282BEE00EAF753 /* Subscriber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscriber.swift; sourceTree = ""; }; + D0445DDC1A7C2CA500267924 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Signal_Loop.swift; sourceTree = ""; }; + D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueueLocalObject.swift; sourceTree = ""; }; + D05F09A71C9EF77100BB6F96 /* Multicast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Multicast.swift; sourceTree = ""; }; + D066BD091C7FE06700D7A576 /* Lock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Lock.swift; sourceTree = ""; }; + D07A5CFC1BBDE6E400451791 /* Promise.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Promise.swift; sourceTree = ""; }; + D09FD73C1BA9BAB900FF0A4F /* SVariable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVariable.h; sourceTree = ""; }; + D09FD73D1BA9BAB900FF0A4F /* SVariable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVariable.m; sourceTree = ""; }; + D0B417ED1D7DFA63004562A4 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B417EF1D7DFA63004562A4 /* SwiftSignalKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKit.h; sourceTree = ""; }; + D0B417F01D7DFA63004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Materialize.swift; sourceTree = ""; }; + D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Merge.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A790A31E236B17DF000451B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0B417E91D7DFA63004562A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A790A37B236B1C43000451B5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A790A37C236B1C44000451B5 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0085B231B282B9800EAF753 /* SwiftSignalKit */ = { + isa = PBXGroup; + children = ( + D0085B3B1B282BEE00EAF753 /* SwiftSignalKit.h */, + D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */, + D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */, + D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */, + D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */, + D0085B401B282BEE00EAF753 /* Timer.swift */, + D0085B411B282BEE00EAF753 /* Queue.swift */, + D0085B421B282BEE00EAF753 /* ValuePipe.swift */, + D0085B431B282BEE00EAF753 /* Bag.swift */, + D0085B441B282BEE00EAF753 /* Signal_Take.swift */, + D0085B451B282BEE00EAF753 /* Signal_Catch.swift */, + D0085B461B282BEE00EAF753 /* Signal_Single.swift */, + D0085B471B282BEE00EAF753 /* Signal_Meta.swift */, + D0085B481B282BEE00EAF753 /* Signal_Combine.swift */, + D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */, + D0085B491B282BEE00EAF753 /* Atomic.swift */, + D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */, + D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */, + D0085B4B1B282BEE00EAF753 /* Signal.swift */, + D0085B4C1B282BEE00EAF753 /* Disposable.swift */, + D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */, + D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */, + D0085B4E1B282BEE00EAF753 /* Subscriber.swift */, + D07A5CFC1BBDE6E400451791 /* Promise.swift */, + D05F09A71C9EF77100BB6F96 /* Multicast.swift */, + D066BD091C7FE06700D7A576 /* Lock.swift */, + D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */, + D0085B261B282B9800EAF753 /* SwiftSignalKit.h */, + D0085B241B282B9800EAF753 /* Supporting Files */, + ); + name = SwiftSignalKit; + path = "../../submodules/telegram-ios/submodules/SSignalKit/SwiftSignalKit"; + sourceTree = ""; + }; + D0085B241B282B9800EAF753 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D0085B251B282B9800EAF753 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + D0445DCE1A7C2CA500267924 = { + isa = PBXGroup; + children = ( + D0445DDA1A7C2CA500267924 /* SSignalKit */, + D0085B231B282B9800EAF753 /* SwiftSignalKit */, + D0B417EE1D7DFA63004562A4 /* SwiftSignalKit */, + D0445DD91A7C2CA500267924 /* Products */, + A790A37B236B1C43000451B5 /* Frameworks */, + ); + sourceTree = ""; + }; + D0445DD91A7C2CA500267924 /* Products */ = { + isa = PBXGroup; + children = ( + D0B417ED1D7DFA63004562A4 /* SwiftSignalKit.framework */, + A790A321236B17DF000451B5 /* SSignalKit.framework */, + ); + name = Products; + sourceTree = ""; + }; + D0445DDA1A7C2CA500267924 /* SSignalKit */ = { + isa = PBXGroup; + children = ( + D0085AD91B28285400EAF753 /* SAtomic.h */, + D0085ADA1B28285400EAF753 /* SAtomic.m */, + D0085ADB1B28285400EAF753 /* SBag.h */, + D0085ADC1B28285400EAF753 /* SBag.m */, + D0085AD31B28285400EAF753 /* SSubscriber.h */, + D0085AC91B28285400EAF753 /* SSubscriber.m */, + D0085AD41B28285400EAF753 /* SDisposable.h */, + D0085ADF1B28285400EAF753 /* SDisposableSet.h */, + D0085AD01B28285400EAF753 /* SDisposableSet.m */, + D0085AE21B28285400EAF753 /* SMetaDisposable.h */, + D0085AD11B28285400EAF753 /* SMetaDisposable.m */, + D0085ADD1B28285400EAF753 /* SBlockDisposable.h */, + D0085ADE1B28285400EAF753 /* SBlockDisposable.m */, + D0085ACE1B28285400EAF753 /* SThreadPool.h */, + D0085AB21B28285400EAF753 /* SThreadPool.m */, + D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */, + D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */, + D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */, + D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */, + D0085AC61B28285400EAF753 /* SQueue.h */, + D0085AB31B28285400EAF753 /* SQueue.m */, + D0085AE51B28285400EAF753 /* STimer.h */, + D0085AE61B28285400EAF753 /* STimer.m */, + D0085AD51B28285400EAF753 /* SSignal.h */, + D0085AB81B28285400EAF753 /* SSignal.m */, + D0085AB71B28285400EAF753 /* SSignal+Single.h */, + D0085AD81B28285400EAF753 /* SSignal+Single.m */, + D0085AD61B28285400EAF753 /* SSignal+Mapping.h */, + D0085AD71B28285400EAF753 /* SSignal+Mapping.m */, + D0085ABC1B28285400EAF753 /* SSignal+Combine.h */, + D0085ABD1B28285400EAF753 /* SSignal+Combine.m */, + D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */, + D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */, + D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */, + D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */, + D0085AC41B28285400EAF753 /* SSignal+Take.h */, + D0085AB41B28285400EAF753 /* SSignal+Take.m */, + D0085AC81B28285400EAF753 /* SSignal+Timing.h */, + D0085AB11B28285400EAF753 /* SSignal+Timing.m */, + D0085AC71B28285400EAF753 /* SSignal+Meta.h */, + D0085AB51B28285400EAF753 /* SSignal+Meta.m */, + D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */, + D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */, + D0085AC31B28285400EAF753 /* SSignal+Catch.h */, + D0085AC21B28285400EAF753 /* SSignal+Catch.m */, + D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */, + D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */, + D0085AE41B28285400EAF753 /* SSignal+Multicast.h */, + D0085AD21B28285400EAF753 /* SSignal+Multicast.m */, + D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */, + D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */, + D09FD73C1BA9BAB900FF0A4F /* SVariable.h */, + D09FD73D1BA9BAB900FF0A4F /* SVariable.m */, + D0085AB91B28285400EAF753 /* SSignalKit.h */, + D0445DDB1A7C2CA500267924 /* Supporting Files */, + ); + name = SSignalKit; + path = "../../submodules/telegram-ios/submodules/SSignalKit/SSignalKit"; + sourceTree = ""; + }; + D0445DDB1A7C2CA500267924 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D0445DDC1A7C2CA500267924 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + D0B417EE1D7DFA63004562A4 /* SwiftSignalKit */ = { + isa = PBXGroup; + children = ( + D0B417EF1D7DFA63004562A4 /* SwiftSignalKit.h */, + D0B417F01D7DFA63004562A4 /* Info.plist */, + ); + path = SwiftSignalKit; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A790A31C236B17DF000451B5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A37E236B1CC9000451B5 /* SSignalKit.h in Headers */, + A790A360236B1858000451B5 /* SAtomic.h in Headers */, + A790A361236B1858000451B5 /* SBag.h in Headers */, + A790A362236B1858000451B5 /* SSubscriber.h in Headers */, + A790A363236B1858000451B5 /* SDisposable.h in Headers */, + A790A364236B1858000451B5 /* SDisposableSet.h in Headers */, + A790A365236B1858000451B5 /* SMetaDisposable.h in Headers */, + A790A366236B1858000451B5 /* SBlockDisposable.h in Headers */, + A790A367236B1858000451B5 /* SThreadPool.h in Headers */, + A790A368236B1858000451B5 /* SThreadPoolTask.h in Headers */, + A790A369236B1858000451B5 /* SThreadPoolQueue.h in Headers */, + A790A36A236B1858000451B5 /* SQueue.h in Headers */, + A790A36B236B1858000451B5 /* STimer.h in Headers */, + A790A36C236B1858000451B5 /* SSignal.h in Headers */, + A790A36D236B1858000451B5 /* SSignal+Single.h in Headers */, + A790A36E236B1858000451B5 /* SSignal+Mapping.h in Headers */, + A790A36F236B1858000451B5 /* SSignal+Combine.h in Headers */, + A790A370236B1858000451B5 /* SSignal+Accumulate.h in Headers */, + A790A371236B1858000451B5 /* SSignal+SideEffects.h in Headers */, + A790A372236B1858000451B5 /* SSignal+Take.h in Headers */, + A790A373236B1858000451B5 /* SSignal+Timing.h in Headers */, + A790A374236B1858000451B5 /* SSignal+Meta.h in Headers */, + A790A375236B1858000451B5 /* SSignal+Pipe.h in Headers */, + A790A376236B1858000451B5 /* SSignal+Catch.h in Headers */, + A790A377236B1858000451B5 /* SSignal+Dispatch.h in Headers */, + A790A378236B1858000451B5 /* SSignal+Multicast.h in Headers */, + A790A379236B1858000451B5 /* SMulticastSignalManager.h in Headers */, + A790A37A236B1858000451B5 /* SVariable.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0B417EA1D7DFA63004562A4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D0B417F11D7DFA63004562A4 /* SwiftSignalKit.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A790A320236B17DF000451B5 /* SSignalKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = A790A332236B17DF000451B5 /* Build configuration list for PBXNativeTarget "SSignalKit" */; + buildPhases = ( + A790A31C236B17DF000451B5 /* Headers */, + A790A31D236B17DF000451B5 /* Sources */, + A790A31E236B17DF000451B5 /* Frameworks */, + A790A31F236B17DF000451B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SSignalKit; + productName = SSignalKit; + productReference = A790A321236B17DF000451B5 /* SSignalKit.framework */; + productType = "com.apple.product-type.framework"; + }; + D0B417EC1D7DFA63004562A4 /* SwiftSignalKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0B417F21D7DFA63004562A4 /* Build configuration list for PBXNativeTarget "SwiftSignalKit" */; + buildPhases = ( + D0B417E81D7DFA63004562A4 /* Sources */, + D0B417E91D7DFA63004562A4 /* Frameworks */, + D0B417EA1D7DFA63004562A4 /* Headers */, + D0B417EB1D7DFA63004562A4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SwiftSignalKit; + productName = SwiftSignalKitMac; + productReference = D0B417ED1D7DFA63004562A4 /* SwiftSignalKit.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0445DCF1A7C2CA500267924 /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastSwiftMigration = 0700; + LastSwiftUpdateCheck = 0700; + LastUpgradeCheck = 0800; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A790A320236B17DF000451B5 = { + CreatedOnToolsVersion = 10.3; + DevelopmentTeam = 6N38VWS5BX; + ProvisioningStyle = Automatic; + }; + D0B417EC1D7DFA63004562A4 = { + CreatedOnToolsVersion = 8.0; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = D0445DD21A7C2CA500267924 /* Build configuration list for PBXProject "SSignalKit_Xcode" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = D0445DCE1A7C2CA500267924; + productRefGroup = D0445DD91A7C2CA500267924 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0B417EC1D7DFA63004562A4 /* SwiftSignalKit */, + A790A320236B17DF000451B5 /* SSignalKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A790A31F236B17DF000451B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0B417EB1D7DFA63004562A4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A790A31D236B17DF000451B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A346236B1822000451B5 /* SAtomic.m in Sources */, + A790A347236B1822000451B5 /* SBag.m in Sources */, + A790A348236B1822000451B5 /* SSubscriber.m in Sources */, + A790A349236B1822000451B5 /* SDisposableSet.m in Sources */, + A790A34A236B1822000451B5 /* SMetaDisposable.m in Sources */, + A790A34B236B1822000451B5 /* SBlockDisposable.m in Sources */, + A790A34C236B1822000451B5 /* SThreadPool.m in Sources */, + A790A34D236B1822000451B5 /* SThreadPoolTask.m in Sources */, + A790A34E236B1822000451B5 /* SThreadPoolQueue.m in Sources */, + A790A34F236B1822000451B5 /* SQueue.m in Sources */, + A790A350236B1822000451B5 /* STimer.m in Sources */, + A790A351236B1822000451B5 /* SSignal.m in Sources */, + A790A352236B1822000451B5 /* SSignal+Single.m in Sources */, + A790A353236B1822000451B5 /* SSignal+Mapping.m in Sources */, + A790A354236B1822000451B5 /* SSignal+Combine.m in Sources */, + A790A355236B1822000451B5 /* SSignal+Accumulate.m in Sources */, + A790A356236B1822000451B5 /* SSignal+SideEffects.m in Sources */, + A790A357236B1823000451B5 /* SSignal+Take.m in Sources */, + A790A358236B1823000451B5 /* SSignal+Timing.m in Sources */, + A790A359236B1823000451B5 /* SSignal+Meta.m in Sources */, + A790A35A236B1823000451B5 /* SSignal+Pipe.m in Sources */, + A790A35B236B1823000451B5 /* SSignal+Catch.m in Sources */, + A790A35C236B1823000451B5 /* SSignal+Dispatch.m in Sources */, + A790A35D236B1823000451B5 /* SSignal+Multicast.m in Sources */, + A790A35E236B1823000451B5 /* SMulticastSignalManager.m in Sources */, + A790A35F236B1823000451B5 /* SVariable.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0B417E81D7DFA63004562A4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0B417F61D7DFAAB004562A4 /* Signal_Timing.swift in Sources */, + D0B417F71D7DFAAB004562A4 /* Signal_SideEffects.swift in Sources */, + D0B417F81D7DFAAB004562A4 /* Signal_Dispatch.swift in Sources */, + D0B417F91D7DFAAB004562A4 /* ThreadPool.swift in Sources */, + D0B417FA1D7DFAAB004562A4 /* Timer.swift in Sources */, + D0B417FB1D7DFAAB004562A4 /* Queue.swift in Sources */, + D0B417FC1D7DFAAB004562A4 /* ValuePipe.swift in Sources */, + D0B417FD1D7DFAAB004562A4 /* Bag.swift in Sources */, + D0B417FE1D7DFAAB004562A4 /* Signal_Take.swift in Sources */, + D0B417FF1D7DFAAB004562A4 /* Signal_Catch.swift in Sources */, + D0B418001D7DFAAB004562A4 /* Signal_Single.swift in Sources */, + D0B418011D7DFAAB004562A4 /* Signal_Meta.swift in Sources */, + D0B418021D7DFAAB004562A4 /* Signal_Combine.swift in Sources */, + D0B418031D7DFAAB004562A4 /* Signal_Merge.swift in Sources */, + D0B418041D7DFAAB004562A4 /* Atomic.swift in Sources */, + D0B418051D7DFAAB004562A4 /* Signal_Reduce.swift in Sources */, + D0B418061D7DFAAB004562A4 /* Signal_Materialize.swift in Sources */, + D0B418071D7DFAAB004562A4 /* Signal.swift in Sources */, + D0B418081D7DFAAB004562A4 /* Disposable.swift in Sources */, + D0467D1920D7F7BC0055C28F /* Signal_Loop.swift in Sources */, + D0B418091D7DFAAB004562A4 /* Signal_Mapping.swift in Sources */, + D053B4011F16881000E2D58A /* QueueLocalObject.swift in Sources */, + D0B4180A1D7DFAAB004562A4 /* Subscriber.swift in Sources */, + D0B4180B1D7DFAAB004562A4 /* Promise.swift in Sources */, + D0B4180C1D7DFAAB004562A4 /* Multicast.swift in Sources */, + D0B4180D1D7DFAAB004562A4 /* Lock.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A790A333236B17DF000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SSignalKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A790A334236B17DF000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SSignalKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A790A336236B17DF000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SSignalKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A790A338236B17DF000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SSignalKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A790A33A236B17DF000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SSignalKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0364D5522B3E38E002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0364D5A22B3E38E002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = HockeyappMacAlpha; + }; + D0445DEC1A7C2CA500267924 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D0445DED1A7C2CA500267924 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D086A5741CC0117500F08284 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0B417F31D7DFA63004562A4 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = DebugHockeyapp; + }; + D0B417F41D7DFA63004562A4 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseHockeyapp; + }; + D0B417F51D7DFA63004562A4 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseAppStore; + }; + D0DB57B61E5C4B7A0071854C /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0DB57BB1E5C4B7A0071854C /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SwiftSignalKit/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = DebugAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A790A332236B17DF000451B5 /* Build configuration list for PBXNativeTarget "SSignalKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A333236B17DF000451B5 /* DebugHockeyapp */, + A790A334236B17DF000451B5 /* HockeyappMacAlpha */, + A790A336236B17DF000451B5 /* DebugAppStore */, + A790A338236B17DF000451B5 /* ReleaseHockeyapp */, + A790A33A236B17DF000451B5 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseHockeyapp; + }; + D0445DD21A7C2CA500267924 /* Build configuration list for PBXProject "SSignalKit_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0445DEC1A7C2CA500267924 /* DebugHockeyapp */, + D0364D5522B3E38E002A6EF0 /* HockeyappMacAlpha */, + D0DB57B61E5C4B7A0071854C /* DebugAppStore */, + D0445DED1A7C2CA500267924 /* ReleaseHockeyapp */, + D086A5741CC0117500F08284 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseHockeyapp; + }; + D0B417F21D7DFA63004562A4 /* Build configuration list for PBXNativeTarget "SwiftSignalKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0B417F31D7DFA63004562A4 /* DebugHockeyapp */, + D0364D5A22B3E38E002A6EF0 /* HockeyappMacAlpha */, + D0DB57BB1E5C4B7A0071854C /* DebugAppStore */, + D0B417F41D7DFA63004562A4 /* ReleaseHockeyapp */, + D0B417F51D7DFA63004562A4 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D0445DCF1A7C2CA500267924 /* Project object */; +} diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..2141ad337 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..45f08369bdc9c08c40f8d5ef39263a3210420c48 GIT binary patch literal 83496 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 literal 0 HcmV?d00001 diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcshareddata/xcschemes/SSignalKit.xcscheme b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcshareddata/xcschemes/SSignalKit.xcscheme new file mode 100644 index 000000000..1cea9528d --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcshareddata/xcschemes/SSignalKit.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SSignalKit.xcscheme b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SSignalKit.xcscheme new file mode 100644 index 000000000..d81a925f7 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SSignalKit.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKit.xcscheme b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKit.xcscheme new file mode 100644 index 000000000..359201e2a --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKit.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKitMac.xcscheme b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKitMac.xcscheme new file mode 100644 index 000000000..d8936477e --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/SwiftSignalKitMac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..34ab2530d --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,58 @@ + + + + + SchemeUserState + + SSignalKit.xcscheme + + isShown + + orderHint + 29 + + SwiftSignalKit.xcscheme + + isShown + + orderHint + 34 + + SwiftSignalKitMac.xcscheme + + isShown + + orderHint + 31 + + + SuppressBuildableAutocreation + + D0085B211B282B9800EAF753 + + primary + + + D0085B2B1B282B9800EAF753 + + primary + + + D0445DD71A7C2CA500267924 + + primary + + + D0445DE21A7C2CA500267924 + + primary + + + D0B417EC1D7DFA63004562A4 + + primary + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..199516984 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + SSignalKit.xcscheme_^#shared#^_ + + orderHint + 38 + + SwiftSignalKit.xcscheme_^#shared#^_ + + orderHint + 39 + + SwiftSignalKitMac.xcscheme_^#shared#^_ + + orderHint + 40 + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..a776ec3eb --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + SSignalKit.xcscheme_^#shared#^_ + + orderHint + 10 + + SwiftSignalKit.xcscheme_^#shared#^_ + + orderHint + 27 + + SwiftSignalKitMac.xcscheme_^#shared#^_ + + orderHint + 2 + + + SuppressBuildableAutocreation + + A790A320236B17DF000451B5 + + primary + + + + + diff --git a/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..9f43b6594 --- /dev/null +++ b/core-xprojects/SSignalKit/SSignalKit_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + SSignalKit.xcscheme_^#shared#^_ + + orderHint + 44 + + SwiftSignalKit.xcscheme_^#shared#^_ + + orderHint + 45 + + SwiftSignalKitMac.xcscheme_^#shared#^_ + + orderHint + 46 + + + + diff --git a/core-xprojects/SSignalKit/SwiftSignalKit/Info.plist b/core-xprojects/SSignalKit/SwiftSignalKit/Info.plist new file mode 100644 index 000000000..ab41b55af --- /dev/null +++ b/core-xprojects/SSignalKit/SwiftSignalKit/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2016 Telegram. All rights reserved. + NSPrincipalClass + + + diff --git a/core-xprojects/SSignalKit/SwiftSignalKit/SwiftSignalKit.h b/core-xprojects/SSignalKit/SwiftSignalKit/SwiftSignalKit.h new file mode 100644 index 000000000..fe79ca3a9 --- /dev/null +++ b/core-xprojects/SSignalKit/SwiftSignalKit/SwiftSignalKit.h @@ -0,0 +1,19 @@ +// +// SwiftSignalKitMac.h +// SwiftSignalKitMac +// +// Created by Peter on 9/5/16. +// Copyright © 2016 Telegram. All rights reserved. +// + +#import + +//! Project version number for SwiftSignalKitMac. +FOUNDATION_EXPORT double SwiftSignalKitVersionNumber; + +//! Project version string for SwiftSignalKitMac. +FOUNDATION_EXPORT const unsigned char SwiftSignalKitVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/core-xprojects/SyncCore/SyncCore/Info.plist b/core-xprojects/SyncCore/SyncCore/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/core-xprojects/SyncCore/SyncCore/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/core-xprojects/SyncCore/SyncCore/SyncCore.h b/core-xprojects/SyncCore/SyncCore/SyncCore.h new file mode 100644 index 000000000..8517b20b1 --- /dev/null +++ b/core-xprojects/SyncCore/SyncCore/SyncCore.h @@ -0,0 +1,19 @@ +// +// SyncCore.h +// SyncCore +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for SyncCore. +FOUNDATION_EXPORT double SyncCoreVersionNumber; + +//! Project version string for SyncCore. +FOUNDATION_EXPORT const unsigned char SyncCoreVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.pbxproj b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bdafae4ef --- /dev/null +++ b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1188 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A701F7BA236B295F002ABF81 /* SyncCore.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F7B8236B295F002ABF81 /* SyncCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F856236B2A11002ABF81 /* TelegramGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7C9236B2A11002ABF81 /* TelegramGroup.swift */; }; + A701F857236B2A11002ABF81 /* OutgoingContentInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CA236B2A11002ABF81 /* OutgoingContentInfoMessageAttribute.swift */; }; + A701F858236B2A11002ABF81 /* TelegramPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CB236B2A11002ABF81 /* TelegramPeerNotificationSettings.swift */; }; + A701F859236B2A11002ABF81 /* EmojiKeywordCollectionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CC236B2A11002ABF81 /* EmojiKeywordCollectionInfo.swift */; }; + A701F85A236B2A11002ABF81 /* OutgoingMessageInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CD236B2A11002ABF81 /* OutgoingMessageInfoAttribute.swift */; }; + A701F85B236B2A11002ABF81 /* TelegramChatBannedRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CE236B2A11002ABF81 /* TelegramChatBannedRights.swift */; }; + A701F85C236B2A11002ABF81 /* TelegramWallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7CF236B2A11002ABF81 /* TelegramWallpaper.swift */; }; + A701F85D236B2A11002ABF81 /* AccountBackupDataAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D0236B2A11002ABF81 /* AccountBackupDataAttribute.swift */; }; + A701F85E236B2A11002ABF81 /* LoggingSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D1236B2A11002ABF81 /* LoggingSettings.swift */; }; + A701F85F236B2A11002ABF81 /* TelegramUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D2236B2A11002ABF81 /* TelegramUser.swift */; }; + A701F860236B2A11002ABF81 /* CachedStickerQueryResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D3236B2A11002ABF81 /* CachedStickerQueryResult.swift */; }; + A701F861236B2A11002ABF81 /* LimitsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D4236B2A11002ABF81 /* LimitsConfiguration.swift */; }; + A701F862236B2A11002ABF81 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D5236B2A11002ABF81 /* OutgoingScheduleInfoMessageAttribute.swift */; }; + A701F863236B2A11002ABF81 /* SecretChatOutgoingOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D6236B2A11002ABF81 /* SecretChatOutgoingOperation.swift */; }; + A701F864236B2A11002ABF81 /* SecretChatIncomingDecryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D7236B2A11002ABF81 /* SecretChatIncomingDecryptedOperation.swift */; }; + A701F865236B2A11002ABF81 /* TelegramMediaUnsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D8236B2A11002ABF81 /* TelegramMediaUnsupported.swift */; }; + A701F866236B2A11002ABF81 /* Namespaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7D9236B2A11002ABF81 /* Namespaces.swift */; }; + A701F867236B2A11002ABF81 /* ThemeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DA236B2A11002ABF81 /* ThemeSettings.swift */; }; + A701F868236B2A11002ABF81 /* CachedLocalizationInfos.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DB236B2A11002ABF81 /* CachedLocalizationInfos.swift */; }; + A701F869236B2A11002ABF81 /* BotInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DC236B2A11002ABF81 /* BotInfo.swift */; }; + A701F86A236B2A11002ABF81 /* CachedResolvedByNamePeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DD236B2A11002ABF81 /* CachedResolvedByNamePeer.swift */; }; + A701F86B236B2A11002ABF81 /* CachedGroupParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DE236B2A11002ABF81 /* CachedGroupParticipants.swift */; }; + A701F86C236B2A11002ABF81 /* ViewCountMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7DF236B2A11002ABF81 /* ViewCountMessageAttribute.swift */; }; + A701F86D236B2A11002ABF81 /* AccountEnvironmentAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E0236B2A11002ABF81 /* AccountEnvironmentAttribute.swift */; }; + A701F86E236B2A11002ABF81 /* TelegramDeviceContactImportedData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E1236B2A11002ABF81 /* TelegramDeviceContactImportedData.swift */; }; + A701F86F236B2A11002ABF81 /* SynchronizeEmojiKeywordsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E2236B2A11002ABF81 /* SynchronizeEmojiKeywordsOperation.swift */; }; + A701F870236B2A11002ABF81 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E3236B2A11002ABF81 /* Localization.swift */; }; + A701F871236B2A11002ABF81 /* CachedThemesConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E4236B2A11002ABF81 /* CachedThemesConfiguration.swift */; }; + A701F872236B2A11002ABF81 /* StickerPackCollectionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E5236B2A11002ABF81 /* StickerPackCollectionInfo.swift */; }; + A701F873236B2A11002ABF81 /* ImportableDeviceContactData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E6236B2A11002ABF81 /* ImportableDeviceContactData.swift */; }; + A701F874236B2A11002ABF81 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E7236B2A11002ABF81 /* AppConfiguration.swift */; }; + A701F875236B2A11002ABF81 /* SendScheduledMessageImmediatelyAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E8236B2A11002ABF81 /* SendScheduledMessageImmediatelyAction.swift */; }; + A701F876236B2A11002ABF81 /* SynchronizeAppLogEventsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7E9236B2A11002ABF81 /* SynchronizeAppLogEventsOperation.swift */; }; + A701F877236B2A11002ABF81 /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7EA236B2A11002ABF81 /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */; }; + A701F878236B2A11002ABF81 /* ProxySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7EB236B2A11002ABF81 /* ProxySettings.swift */; }; + A701F879236B2A11002ABF81 /* TextEntitiesMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7EC236B2A11002ABF81 /* TextEntitiesMessageAttribute.swift */; }; + A701F87A236B2A11002ABF81 /* AccountSortOrderAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7ED236B2A11002ABF81 /* AccountSortOrderAttribute.swift */; }; + A701F87B236B2A11002ABF81 /* TelegramMediaWebpage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7EE236B2A11002ABF81 /* TelegramMediaWebpage.swift */; }; + A701F87C236B2A11002ABF81 /* AutoremoveTimeoutMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7EF236B2A11002ABF81 /* AutoremoveTimeoutMessageAttribute.swift */; }; + A701F87D236B2A11002ABF81 /* UpdateMessageReactionsAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F0236B2A11002ABF81 /* UpdateMessageReactionsAction.swift */; }; + A701F87E236B2A11002ABF81 /* TelegramMediaWebFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F1236B2A11002ABF81 /* TelegramMediaWebFile.swift */; }; + A701F87F236B2A11002ABF81 /* FeaturedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F2236B2A11002ABF81 /* FeaturedStickerPack.swift */; }; + A701F880236B2A11002ABF81 /* EditedMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F3236B2A11002ABF81 /* EditedMessageAttribute.swift */; }; + A701F881236B2A11002ABF81 /* RecentPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F4236B2A11002ABF81 /* RecentPeerItem.swift */; }; + A701F882236B2A11002ABF81 /* ArchivedStickerPacksInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F5236B2A11002ABF81 /* ArchivedStickerPacksInfo.swift */; }; + A701F883236B2A11002ABF81 /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F6236B2A11002ABF81 /* RestrictedContentMessageAttribute.swift */; }; + A701F884236B2A11002ABF81 /* TelegramMediaGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F7236B2A11002ABF81 /* TelegramMediaGame.swift */; }; + A701F885236B2A11002ABF81 /* ForwardSourceInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F8236B2A11002ABF81 /* ForwardSourceInfoAttribute.swift */; }; + A701F886236B2A11002ABF81 /* TelegramSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7F9236B2A11002ABF81 /* TelegramSecretChat.swift */; }; + A701F887236B2A11002ABF81 /* NotificationInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FA236B2A11002ABF81 /* NotificationInfoMessageAttribute.swift */; }; + A701F888236B2A11002ABF81 /* CachedChannelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FB236B2A11002ABF81 /* CachedChannelData.swift */; }; + A701F889236B2A11002ABF81 /* TelegramMediaPoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FC236B2A11002ABF81 /* TelegramMediaPoll.swift */; }; + A701F88A236B2A11002ABF81 /* ConsumableContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FD236B2A11002ABF81 /* ConsumableContentMessageAttribute.swift */; }; + A701F88B236B2A11002ABF81 /* RemoteStorageConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FE236B2A11002ABF81 /* RemoteStorageConfiguration.swift */; }; + A701F88C236B2A11002ABF81 /* PeerAccessHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F7FF236B2A11002ABF81 /* PeerAccessHash.swift */; }; + A701F88D236B2A11002ABF81 /* LocalizationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F800236B2A11002ABF81 /* LocalizationInfo.swift */; }; + A701F88E236B2A11002ABF81 /* CachedGroupData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F801236B2A11002ABF81 /* CachedGroupData.swift */; }; + A701F88F236B2A11002ABF81 /* InlineBotMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F802236B2A11002ABF81 /* InlineBotMessageAttribute.swift */; }; + A701F890236B2A11002ABF81 /* AuthorSignatureMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F803236B2A11002ABF81 /* AuthorSignatureMessageAttribute.swift */; }; + A701F891236B2A11002ABF81 /* ChannelState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F804236B2A11002ABF81 /* ChannelState.swift */; }; + A701F892236B2A11002ABF81 /* TelegramMediaImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F805236B2A11002ABF81 /* TelegramMediaImage.swift */; }; + A701F893236B2A11002ABF81 /* ReplyMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F806236B2A11002ABF81 /* ReplyMessageAttribute.swift */; }; + A701F894236B2A11002ABF81 /* ReactionsMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F807236B2A11002ABF81 /* ReactionsMessageAttribute.swift */; }; + A701F895236B2A11002ABF81 /* TemporaryTwoStepPasswordToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F808236B2A11002ABF81 /* TemporaryTwoStepPasswordToken.swift */; }; + A701F896236B2A11002ABF81 /* TelegramTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F809236B2A11002ABF81 /* TelegramTheme.swift */; }; + A701F897236B2A11002ABF81 /* ConsumePersonalMessageAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80A236B2A11002ABF81 /* ConsumePersonalMessageAction.swift */; }; + A701F898236B2A11002ABF81 /* SavedStickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80B236B2A11002ABF81 /* SavedStickerItem.swift */; }; + A701F899236B2A11002ABF81 /* CacheStorageSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80C236B2A11002ABF81 /* CacheStorageSettings.swift */; }; + A701F89A236B2A11002ABF81 /* UnauthorizedAccountState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80D236B2A11002ABF81 /* UnauthorizedAccountState.swift */; }; + A701F89B236B2A11002ABF81 /* TelegramMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80E236B2A11002ABF81 /* TelegramMediaResource.swift */; }; + A701F89C236B2A11002ABF81 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F80F236B2A11002ABF81 /* JSON.swift */; }; + A701F89D236B2A11002ABF81 /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F810236B2A11002ABF81 /* NetworkSettings.swift */; }; + A701F89E236B2A11002ABF81 /* TelegramMediaInvoice.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F811236B2A11002ABF81 /* TelegramMediaInvoice.swift */; }; + A701F89F236B2A11002ABF81 /* SuggestedLocalizationEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F812236B2A11002ABF81 /* SuggestedLocalizationEntry.swift */; }; + A701F8A0236B2A11002ABF81 /* LocalizationListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F813236B2A11002ABF81 /* LocalizationListState.swift */; }; + A701F8A1236B2A11002ABF81 /* SynchronizeSavedStickersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F814236B2A11002ABF81 /* SynchronizeSavedStickersOperation.swift */; }; + A701F8A2236B2A11002ABF81 /* SynchronizeableChatInputState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F815236B2A11002ABF81 /* SynchronizeableChatInputState.swift */; }; + A701F8A3236B2A11002ABF81 /* SecretChatSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F816236B2A11002ABF81 /* SecretChatSettings.swift */; }; + A701F8A4236B2A12002ABF81 /* SecretChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F817236B2A11002ABF81 /* SecretChatState.swift */; }; + A701F8A5236B2A12002ABF81 /* ContentPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F818236B2A11002ABF81 /* ContentPrivacySettings.swift */; }; + A701F8A6236B2A12002ABF81 /* CachedWallpapersConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F819236B2A11002ABF81 /* CachedWallpapersConfiguration.swift */; }; + A701F8A7236B2A12002ABF81 /* VoipConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81A236B2A11002ABF81 /* VoipConfiguration.swift */; }; + A701F8A8236B2A12002ABF81 /* OutgoingChatContextResultMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81B236B2A11002ABF81 /* OutgoingChatContextResultMessageAttribute.swift */; }; + A701F8A9236B2A12002ABF81 /* PeerGroupMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81C236B2A11002ABF81 /* PeerGroupMessageStateVersionAttribute.swift */; }; + A701F8AA236B2A12002ABF81 /* ChannelMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81D236B2A11002ABF81 /* ChannelMessageStateVersionAttribute.swift */; }; + A701F8AB236B2A12002ABF81 /* SourceReferenceMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81E236B2A11002ABF81 /* SourceReferenceMessageAttribute.swift */; }; + A701F8AC236B2A12002ABF81 /* AutodownloadSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F81F236B2A11002ABF81 /* AutodownloadSettings.swift */; }; + A701F8AD236B2A12002ABF81 /* SecureIdFileReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F820236B2A11002ABF81 /* SecureIdFileReference.swift */; }; + A701F8AE236B2A12002ABF81 /* TelegramMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F821236B2A11002ABF81 /* TelegramMediaAction.swift */; }; + A701F8AF236B2A12002ABF81 /* TelegramChatAdminRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F822236B2A11002ABF81 /* TelegramChatAdminRights.swift */; }; + A701F8B0236B2A12002ABF81 /* StandaloneAccountTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F823236B2A11002ABF81 /* StandaloneAccountTransaction.swift */; }; + A701F8B1236B2A12002ABF81 /* TelegramMediaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F824236B2A11002ABF81 /* TelegramMediaMap.swift */; }; + A701F8B2236B2A12002ABF81 /* SuggestedLocalizationUpdatesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F825236B2A11002ABF81 /* SuggestedLocalizationUpdatesOperation.swift */; }; + A701F8B3236B2A12002ABF81 /* SecretChatKeychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F826236B2A11002ABF81 /* SecretChatKeychain.swift */; }; + A701F8B4236B2A12002ABF81 /* SecretChatEncryptionConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F827236B2A11002ABF81 /* SecretChatEncryptionConfig.swift */; }; + A701F8B5236B2A12002ABF81 /* PeerStatusSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F828236B2A11002ABF81 /* PeerStatusSettings.swift */; }; + A701F8B6236B2A12002ABF81 /* SecureFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F829236B2A11002ABF81 /* SecureFileMediaResource.swift */; }; + A701F8B7236B2A12002ABF81 /* SearchBotsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82A236B2A11002ABF81 /* SearchBotsConfiguration.swift */; }; + A701F8B8236B2A12002ABF81 /* PeerAccessRestrictionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82B236B2A11002ABF81 /* PeerAccessRestrictionInfo.swift */; }; + A701F8B9236B2A12002ABF81 /* TelegramMediaContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82C236B2A11002ABF81 /* TelegramMediaContact.swift */; }; + A701F8BA236B2A12002ABF81 /* SynchronizeSavedGifsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82D236B2A11002ABF81 /* SynchronizeSavedGifsOperation.swift */; }; + A701F8BB236B2A12002ABF81 /* ContentRequiresValidationMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82E236B2A11002ABF81 /* ContentRequiresValidationMessageAttribute.swift */; }; + A701F8BC236B2A12002ABF81 /* WalletCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F82F236B2A11002ABF81 /* WalletCollection.swift */; }; + A701F8BD236B2A12002ABF81 /* SecretChatFileReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F830236B2A11002ABF81 /* SecretChatFileReference.swift */; }; + A701F8BE236B2A12002ABF81 /* EmojiKeywordItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F831236B2A11002ABF81 /* EmojiKeywordItem.swift */; }; + A701F8BF236B2A12002ABF81 /* CachedRecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F832236B2A11002ABF81 /* CachedRecentPeers.swift */; }; + A701F8C0236B2A12002ABF81 /* ContactsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F833236B2A11002ABF81 /* ContactsSettings.swift */; }; + A701F8C1236B2A12002ABF81 /* SynchronizeRecentlyUsedMediaOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F834236B2A11002ABF81 /* SynchronizeRecentlyUsedMediaOperation.swift */; }; + A701F8C2236B2A12002ABF81 /* ExportedInvitation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F835236B2A11002ABF81 /* ExportedInvitation.swift */; }; + A701F8C3236B2A12002ABF81 /* SynchronizeChatInputStateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F836236B2A11002ABF81 /* SynchronizeChatInputStateOperation.swift */; }; + A701F8C4236B2A12002ABF81 /* SynchronizeGroupedPeersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F837236B2A11002ABF81 /* SynchronizeGroupedPeersOperation.swift */; }; + A701F8C5236B2A12002ABF81 /* SecretChatIncomingEncryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F838236B2A11002ABF81 /* SecretChatIncomingEncryptedOperation.swift */; }; + A701F8C6236B2A12002ABF81 /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F839236B2A11002ABF81 /* LoggedOutAccountAttribute.swift */; }; + A701F8C7236B2A12002ABF81 /* SynchronizePinnedChatsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83A236B2A11002ABF81 /* SynchronizePinnedChatsOperation.swift */; }; + A701F8C8236B2A12002ABF81 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83B236B2A11002ABF81 /* ConsumablePersonalMentionMessageAttribute.swift */; }; + A701F8C9236B2A12002ABF81 /* LocalizationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83C236B2A11002ABF81 /* LocalizationSettings.swift */; }; + A701F8CA236B2A12002ABF81 /* MediaReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83D236B2A11002ABF81 /* MediaReference.swift */; }; + A701F8CB236B2A12002ABF81 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83E236B2A11002ABF81 /* SynchronizeConsumeMessageContentsOperation.swift */; }; + A701F8CC236B2A12002ABF81 /* StickerPackItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F83F236B2A11002ABF81 /* StickerPackItem.swift */; }; + A701F8CD236B2A12002ABF81 /* CloudChatRemoveMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F840236B2A11002ABF81 /* CloudChatRemoveMessagesOperation.swift */; }; + A701F8CE236B2A12002ABF81 /* RichText.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F841236B2A11002ABF81 /* RichText.swift */; }; + A701F8CF236B2A12002ABF81 /* WasScheduledMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F842236B2A11002ABF81 /* WasScheduledMessageAttribute.swift */; }; + A701F8D0236B2A12002ABF81 /* RecentHashtagItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F843236B2A11002ABF81 /* RecentHashtagItem.swift */; }; + A701F8D1236B2A12002ABF81 /* RecentMediaItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F844236B2A11002ABF81 /* RecentMediaItem.swift */; }; + A701F8D2236B2A12002ABF81 /* CachedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F845236B2A11002ABF81 /* CachedStickerPack.swift */; }; + A701F8D3236B2A12002ABF81 /* InstantPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F846236B2A11002ABF81 /* InstantPage.swift */; }; + A701F8D4236B2A12002ABF81 /* AppChangelogState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F847236B2A11002ABF81 /* AppChangelogState.swift */; }; + A701F8D5236B2A12002ABF81 /* CloudFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F848236B2A11002ABF81 /* CloudFileMediaResource.swift */; }; + A701F8D6236B2A12002ABF81 /* CachedSecureIdConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F849236B2A11002ABF81 /* CachedSecureIdConfiguration.swift */; }; + A701F8D7236B2A12002ABF81 /* TelegramChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84A236B2A11002ABF81 /* TelegramChannel.swift */; }; + A701F8D8236B2A12002ABF81 /* TelegramMediaExpiredContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84B236B2A11002ABF81 /* TelegramMediaExpiredContent.swift */; }; + A701F8D9236B2A12002ABF81 /* RegularChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84C236B2A11002ABF81 /* RegularChatState.swift */; }; + A701F8DA236B2A12002ABF81 /* CachedUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84D236B2A11002ABF81 /* CachedUserData.swift */; }; + A701F8DB236B2A12002ABF81 /* SecretFileEncryptionKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84E236B2A11002ABF81 /* SecretFileEncryptionKey.swift */; }; + A701F8DC236B2A12002ABF81 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F84F236B2A11002ABF81 /* GlobalNotificationSettings.swift */; }; + A701F8DD236B2A12002ABF81 /* TelegramUserPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F850236B2A11002ABF81 /* TelegramUserPresence.swift */; }; + A701F8DE236B2A12002ABF81 /* TelegramMediaFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F851236B2A11002ABF81 /* TelegramMediaFile.swift */; }; + A701F8DF236B2A12002ABF81 /* PeerReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F852236B2A11002ABF81 /* PeerReference.swift */; }; + A701F8E0236B2A12002ABF81 /* ReplyMarkupMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F853236B2A11002ABF81 /* ReplyMarkupMessageAttribute.swift */; }; + A701F8E1236B2A12002ABF81 /* AuthorizedAccountState.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F854236B2A11002ABF81 /* AuthorizedAccountState.swift */; }; + A701F8E2236B2A12002ABF81 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F855236B2A11002ABF81 /* SynchronizeInstalledStickerPacksOperations.swift */; }; + A701F8EC236B2E30002ABF81 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F8EB236B2E30002ABF81 /* Postbox.framework */; }; + A701F92A236C1AF7002ABF81 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F929236C1AF7002ABF81 /* SwiftSignalKit.framework */; }; + A7D28201236C379D0000A9BF /* PixelDimensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D28200236C379D0000A9BF /* PixelDimensions.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A701F7B5236B295F002ABF81 /* SyncCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SyncCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F7B8236B295F002ABF81 /* SyncCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyncCore.h; sourceTree = ""; }; + A701F7B9236B295F002ABF81 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A701F7C9236B2A11002ABF81 /* TelegramGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramGroup.swift; sourceTree = ""; }; + A701F7CA236B2A11002ABF81 /* OutgoingContentInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingContentInfoMessageAttribute.swift; sourceTree = ""; }; + A701F7CB236B2A11002ABF81 /* TelegramPeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramPeerNotificationSettings.swift; sourceTree = ""; }; + A701F7CC236B2A11002ABF81 /* EmojiKeywordCollectionInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiKeywordCollectionInfo.swift; sourceTree = ""; }; + A701F7CD236B2A11002ABF81 /* OutgoingMessageInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingMessageInfoAttribute.swift; sourceTree = ""; }; + A701F7CE236B2A11002ABF81 /* TelegramChatBannedRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChatBannedRights.swift; sourceTree = ""; }; + A701F7CF236B2A11002ABF81 /* TelegramWallpaper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramWallpaper.swift; sourceTree = ""; }; + A701F7D0236B2A11002ABF81 /* AccountBackupDataAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountBackupDataAttribute.swift; sourceTree = ""; }; + A701F7D1236B2A11002ABF81 /* LoggingSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggingSettings.swift; sourceTree = ""; }; + A701F7D2236B2A11002ABF81 /* TelegramUser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUser.swift; sourceTree = ""; }; + A701F7D3236B2A11002ABF81 /* CachedStickerQueryResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedStickerQueryResult.swift; sourceTree = ""; }; + A701F7D4236B2A11002ABF81 /* LimitsConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LimitsConfiguration.swift; sourceTree = ""; }; + A701F7D5236B2A11002ABF81 /* OutgoingScheduleInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingScheduleInfoMessageAttribute.swift; sourceTree = ""; }; + A701F7D6236B2A11002ABF81 /* SecretChatOutgoingOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatOutgoingOperation.swift; sourceTree = ""; }; + A701F7D7236B2A11002ABF81 /* SecretChatIncomingDecryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingDecryptedOperation.swift; sourceTree = ""; }; + A701F7D8236B2A11002ABF81 /* TelegramMediaUnsupported.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaUnsupported.swift; sourceTree = ""; }; + A701F7D9236B2A11002ABF81 /* Namespaces.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Namespaces.swift; sourceTree = ""; }; + A701F7DA236B2A11002ABF81 /* ThemeSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThemeSettings.swift; sourceTree = ""; }; + A701F7DB236B2A11002ABF81 /* CachedLocalizationInfos.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedLocalizationInfos.swift; sourceTree = ""; }; + A701F7DC236B2A11002ABF81 /* BotInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotInfo.swift; sourceTree = ""; }; + A701F7DD236B2A11002ABF81 /* CachedResolvedByNamePeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedResolvedByNamePeer.swift; sourceTree = ""; }; + A701F7DE236B2A11002ABF81 /* CachedGroupParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupParticipants.swift; sourceTree = ""; }; + A701F7DF236B2A11002ABF81 /* ViewCountMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewCountMessageAttribute.swift; sourceTree = ""; }; + A701F7E0236B2A11002ABF81 /* AccountEnvironmentAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountEnvironmentAttribute.swift; sourceTree = ""; }; + A701F7E1236B2A11002ABF81 /* TelegramDeviceContactImportedData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramDeviceContactImportedData.swift; sourceTree = ""; }; + A701F7E2236B2A11002ABF81 /* SynchronizeEmojiKeywordsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeEmojiKeywordsOperation.swift; sourceTree = ""; }; + A701F7E3236B2A11002ABF81 /* Localization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = ""; }; + A701F7E4236B2A11002ABF81 /* CachedThemesConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedThemesConfiguration.swift; sourceTree = ""; }; + A701F7E5236B2A11002ABF81 /* StickerPackCollectionInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackCollectionInfo.swift; sourceTree = ""; }; + A701F7E6236B2A11002ABF81 /* ImportableDeviceContactData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportableDeviceContactData.swift; sourceTree = ""; }; + A701F7E7236B2A11002ABF81 /* AppConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppConfiguration.swift; sourceTree = ""; }; + A701F7E8236B2A11002ABF81 /* SendScheduledMessageImmediatelyAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendScheduledMessageImmediatelyAction.swift; sourceTree = ""; }; + A701F7E9236B2A11002ABF81 /* SynchronizeAppLogEventsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeAppLogEventsOperation.swift; sourceTree = ""; }; + A701F7EA236B2A11002ABF81 /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeMarkAllUnseenPersonalMessagesOperation.swift; sourceTree = ""; }; + A701F7EB236B2A11002ABF81 /* ProxySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProxySettings.swift; sourceTree = ""; }; + A701F7EC236B2A11002ABF81 /* TextEntitiesMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextEntitiesMessageAttribute.swift; sourceTree = ""; }; + A701F7ED236B2A11002ABF81 /* AccountSortOrderAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountSortOrderAttribute.swift; sourceTree = ""; }; + A701F7EE236B2A11002ABF81 /* TelegramMediaWebpage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebpage.swift; sourceTree = ""; }; + A701F7EF236B2A11002ABF81 /* AutoremoveTimeoutMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutoremoveTimeoutMessageAttribute.swift; sourceTree = ""; }; + A701F7F0236B2A11002ABF81 /* UpdateMessageReactionsAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateMessageReactionsAction.swift; sourceTree = ""; }; + A701F7F1236B2A11002ABF81 /* TelegramMediaWebFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebFile.swift; sourceTree = ""; }; + A701F7F2236B2A11002ABF81 /* FeaturedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeaturedStickerPack.swift; sourceTree = ""; }; + A701F7F3236B2A11002ABF81 /* EditedMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditedMessageAttribute.swift; sourceTree = ""; }; + A701F7F4236B2A11002ABF81 /* RecentPeerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeerItem.swift; sourceTree = ""; }; + A701F7F5236B2A11002ABF81 /* ArchivedStickerPacksInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacksInfo.swift; sourceTree = ""; }; + A701F7F6236B2A11002ABF81 /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; + A701F7F7236B2A11002ABF81 /* TelegramMediaGame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaGame.swift; sourceTree = ""; }; + A701F7F8236B2A11002ABF81 /* ForwardSourceInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardSourceInfoAttribute.swift; sourceTree = ""; }; + A701F7F9236B2A11002ABF81 /* TelegramSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramSecretChat.swift; sourceTree = ""; }; + A701F7FA236B2A11002ABF81 /* NotificationInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationInfoMessageAttribute.swift; sourceTree = ""; }; + A701F7FB236B2A11002ABF81 /* CachedChannelData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedChannelData.swift; sourceTree = ""; }; + A701F7FC236B2A11002ABF81 /* TelegramMediaPoll.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaPoll.swift; sourceTree = ""; }; + A701F7FD236B2A11002ABF81 /* ConsumableContentMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumableContentMessageAttribute.swift; sourceTree = ""; }; + A701F7FE236B2A11002ABF81 /* RemoteStorageConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteStorageConfiguration.swift; sourceTree = ""; }; + A701F7FF236B2A11002ABF81 /* PeerAccessHash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAccessHash.swift; sourceTree = ""; }; + A701F800236B2A11002ABF81 /* LocalizationInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationInfo.swift; sourceTree = ""; }; + A701F801236B2A11002ABF81 /* CachedGroupData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupData.swift; sourceTree = ""; }; + A701F802236B2A11002ABF81 /* InlineBotMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InlineBotMessageAttribute.swift; sourceTree = ""; }; + A701F803236B2A11002ABF81 /* AuthorSignatureMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorSignatureMessageAttribute.swift; sourceTree = ""; }; + A701F804236B2A11002ABF81 /* ChannelState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelState.swift; sourceTree = ""; }; + A701F805236B2A11002ABF81 /* TelegramMediaImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaImage.swift; sourceTree = ""; }; + A701F806236B2A11002ABF81 /* ReplyMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMessageAttribute.swift; sourceTree = ""; }; + A701F807236B2A11002ABF81 /* ReactionsMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReactionsMessageAttribute.swift; sourceTree = ""; }; + A701F808236B2A11002ABF81 /* TemporaryTwoStepPasswordToken.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TemporaryTwoStepPasswordToken.swift; sourceTree = ""; }; + A701F809236B2A11002ABF81 /* TelegramTheme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramTheme.swift; sourceTree = ""; }; + A701F80A236B2A11002ABF81 /* ConsumePersonalMessageAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumePersonalMessageAction.swift; sourceTree = ""; }; + A701F80B236B2A11002ABF81 /* SavedStickerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SavedStickerItem.swift; sourceTree = ""; }; + A701F80C236B2A11002ABF81 /* CacheStorageSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CacheStorageSettings.swift; sourceTree = ""; }; + A701F80D236B2A11002ABF81 /* UnauthorizedAccountState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnauthorizedAccountState.swift; sourceTree = ""; }; + A701F80E236B2A11002ABF81 /* TelegramMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaResource.swift; sourceTree = ""; }; + A701F80F236B2A11002ABF81 /* JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = ""; }; + A701F810236B2A11002ABF81 /* NetworkSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkSettings.swift; sourceTree = ""; }; + A701F811236B2A11002ABF81 /* TelegramMediaInvoice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaInvoice.swift; sourceTree = ""; }; + A701F812236B2A11002ABF81 /* SuggestedLocalizationEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuggestedLocalizationEntry.swift; sourceTree = ""; }; + A701F813236B2A11002ABF81 /* LocalizationListState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationListState.swift; sourceTree = ""; }; + A701F814236B2A11002ABF81 /* SynchronizeSavedStickersOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedStickersOperation.swift; sourceTree = ""; }; + A701F815236B2A11002ABF81 /* SynchronizeableChatInputState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeableChatInputState.swift; sourceTree = ""; }; + A701F816236B2A11002ABF81 /* SecretChatSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatSettings.swift; sourceTree = ""; }; + A701F817236B2A11002ABF81 /* SecretChatState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatState.swift; sourceTree = ""; }; + A701F818236B2A11002ABF81 /* ContentPrivacySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentPrivacySettings.swift; sourceTree = ""; }; + A701F819236B2A11002ABF81 /* CachedWallpapersConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedWallpapersConfiguration.swift; sourceTree = ""; }; + A701F81A236B2A11002ABF81 /* VoipConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VoipConfiguration.swift; sourceTree = ""; }; + A701F81B236B2A11002ABF81 /* OutgoingChatContextResultMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingChatContextResultMessageAttribute.swift; sourceTree = ""; }; + A701F81C236B2A11002ABF81 /* PeerGroupMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerGroupMessageStateVersionAttribute.swift; sourceTree = ""; }; + A701F81D236B2A11002ABF81 /* ChannelMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMessageStateVersionAttribute.swift; sourceTree = ""; }; + A701F81E236B2A11002ABF81 /* SourceReferenceMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SourceReferenceMessageAttribute.swift; sourceTree = ""; }; + A701F81F236B2A11002ABF81 /* AutodownloadSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutodownloadSettings.swift; sourceTree = ""; }; + A701F820236B2A11002ABF81 /* SecureIdFileReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdFileReference.swift; sourceTree = ""; }; + A701F821236B2A11002ABF81 /* TelegramMediaAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaAction.swift; sourceTree = ""; }; + A701F822236B2A11002ABF81 /* TelegramChatAdminRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChatAdminRights.swift; sourceTree = ""; }; + A701F823236B2A11002ABF81 /* StandaloneAccountTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StandaloneAccountTransaction.swift; sourceTree = ""; }; + A701F824236B2A11002ABF81 /* TelegramMediaMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaMap.swift; sourceTree = ""; }; + A701F825236B2A11002ABF81 /* SuggestedLocalizationUpdatesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuggestedLocalizationUpdatesOperation.swift; sourceTree = ""; }; + A701F826236B2A11002ABF81 /* SecretChatKeychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeychain.swift; sourceTree = ""; }; + A701F827236B2A11002ABF81 /* SecretChatEncryptionConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatEncryptionConfig.swift; sourceTree = ""; }; + A701F828236B2A11002ABF81 /* PeerStatusSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerStatusSettings.swift; sourceTree = ""; }; + A701F829236B2A11002ABF81 /* SecureFileMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureFileMediaResource.swift; sourceTree = ""; }; + A701F82A236B2A11002ABF81 /* SearchBotsConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchBotsConfiguration.swift; sourceTree = ""; }; + A701F82B236B2A11002ABF81 /* PeerAccessRestrictionInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAccessRestrictionInfo.swift; sourceTree = ""; }; + A701F82C236B2A11002ABF81 /* TelegramMediaContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaContact.swift; sourceTree = ""; }; + A701F82D236B2A11002ABF81 /* SynchronizeSavedGifsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedGifsOperation.swift; sourceTree = ""; }; + A701F82E236B2A11002ABF81 /* ContentRequiresValidationMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentRequiresValidationMessageAttribute.swift; sourceTree = ""; }; + A701F82F236B2A11002ABF81 /* WalletCollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletCollection.swift; sourceTree = ""; }; + A701F830236B2A11002ABF81 /* SecretChatFileReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatFileReference.swift; sourceTree = ""; }; + A701F831236B2A11002ABF81 /* EmojiKeywordItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiKeywordItem.swift; sourceTree = ""; }; + A701F832236B2A11002ABF81 /* CachedRecentPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedRecentPeers.swift; sourceTree = ""; }; + A701F833236B2A11002ABF81 /* ContactsSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsSettings.swift; sourceTree = ""; }; + A701F834236B2A11002ABF81 /* SynchronizeRecentlyUsedMediaOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeRecentlyUsedMediaOperation.swift; sourceTree = ""; }; + A701F835236B2A11002ABF81 /* ExportedInvitation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportedInvitation.swift; sourceTree = ""; }; + A701F836236B2A11002ABF81 /* SynchronizeChatInputStateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeChatInputStateOperation.swift; sourceTree = ""; }; + A701F837236B2A11002ABF81 /* SynchronizeGroupedPeersOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeGroupedPeersOperation.swift; sourceTree = ""; }; + A701F838236B2A11002ABF81 /* SecretChatIncomingEncryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingEncryptedOperation.swift; sourceTree = ""; }; + A701F839236B2A11002ABF81 /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; + A701F83A236B2A11002ABF81 /* SynchronizePinnedChatsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePinnedChatsOperation.swift; sourceTree = ""; }; + A701F83B236B2A11002ABF81 /* ConsumablePersonalMentionMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumablePersonalMentionMessageAttribute.swift; sourceTree = ""; }; + A701F83C236B2A11002ABF81 /* LocalizationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationSettings.swift; sourceTree = ""; }; + A701F83D236B2A11002ABF81 /* MediaReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaReference.swift; sourceTree = ""; }; + A701F83E236B2A11002ABF81 /* SynchronizeConsumeMessageContentsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeConsumeMessageContentsOperation.swift; sourceTree = ""; }; + A701F83F236B2A11002ABF81 /* StickerPackItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackItem.swift; sourceTree = ""; }; + A701F840236B2A11002ABF81 /* CloudChatRemoveMessagesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudChatRemoveMessagesOperation.swift; sourceTree = ""; }; + A701F841236B2A11002ABF81 /* RichText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RichText.swift; sourceTree = ""; }; + A701F842236B2A11002ABF81 /* WasScheduledMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WasScheduledMessageAttribute.swift; sourceTree = ""; }; + A701F843236B2A11002ABF81 /* RecentHashtagItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentHashtagItem.swift; sourceTree = ""; }; + A701F844236B2A11002ABF81 /* RecentMediaItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentMediaItem.swift; sourceTree = ""; }; + A701F845236B2A11002ABF81 /* CachedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedStickerPack.swift; sourceTree = ""; }; + A701F846236B2A11002ABF81 /* InstantPage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstantPage.swift; sourceTree = ""; }; + A701F847236B2A11002ABF81 /* AppChangelogState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppChangelogState.swift; sourceTree = ""; }; + A701F848236B2A11002ABF81 /* CloudFileMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudFileMediaResource.swift; sourceTree = ""; }; + A701F849236B2A11002ABF81 /* CachedSecureIdConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedSecureIdConfiguration.swift; sourceTree = ""; }; + A701F84A236B2A11002ABF81 /* TelegramChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannel.swift; sourceTree = ""; }; + A701F84B236B2A11002ABF81 /* TelegramMediaExpiredContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaExpiredContent.swift; sourceTree = ""; }; + A701F84C236B2A11002ABF81 /* RegularChatState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; + A701F84D236B2A11002ABF81 /* CachedUserData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedUserData.swift; sourceTree = ""; }; + A701F84E236B2A11002ABF81 /* SecretFileEncryptionKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretFileEncryptionKey.swift; sourceTree = ""; }; + A701F84F236B2A11002ABF81 /* GlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalNotificationSettings.swift; sourceTree = ""; }; + A701F850236B2A11002ABF81 /* TelegramUserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUserPresence.swift; sourceTree = ""; }; + A701F851236B2A11002ABF81 /* TelegramMediaFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaFile.swift; sourceTree = ""; }; + A701F852236B2A11002ABF81 /* PeerReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReference.swift; sourceTree = ""; }; + A701F853236B2A11002ABF81 /* ReplyMarkupMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMarkupMessageAttribute.swift; sourceTree = ""; }; + A701F854236B2A11002ABF81 /* AuthorizedAccountState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizedAccountState.swift; sourceTree = ""; }; + A701F855236B2A11002ABF81 /* SynchronizeInstalledStickerPacksOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeInstalledStickerPacksOperations.swift; sourceTree = ""; }; + A701F8E4236B2A71002ABF81 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F8E6236B2A78002ABF81 /* PostboxMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PostboxMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F8EB236B2E30002ABF81 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F929236C1AF7002ABF81 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28200236C379D0000A9BF /* PixelDimensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PixelDimensions.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A701F7B2236B295F002ABF81 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F92A236C1AF7002ABF81 /* SwiftSignalKit.framework in Frameworks */, + A701F8EC236B2E30002ABF81 /* Postbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A701F7AB236B295F002ABF81 = { + isa = PBXGroup; + children = ( + A701F7C8236B2A11002ABF81 /* Sources */, + A701F7B7236B295F002ABF81 /* SyncCore */, + A701F7B6236B295F002ABF81 /* Products */, + A701F8E3236B2A71002ABF81 /* Frameworks */, + ); + sourceTree = ""; + }; + A701F7B6236B295F002ABF81 /* Products */ = { + isa = PBXGroup; + children = ( + A701F7B5236B295F002ABF81 /* SyncCore.framework */, + ); + name = Products; + sourceTree = ""; + }; + A701F7B7236B295F002ABF81 /* SyncCore */ = { + isa = PBXGroup; + children = ( + A701F7B8236B295F002ABF81 /* SyncCore.h */, + A701F7B9236B295F002ABF81 /* Info.plist */, + ); + path = SyncCore; + sourceTree = ""; + }; + A701F7C8236B2A11002ABF81 /* Sources */ = { + isa = PBXGroup; + children = ( + A701F7C9236B2A11002ABF81 /* TelegramGroup.swift */, + A701F7CA236B2A11002ABF81 /* OutgoingContentInfoMessageAttribute.swift */, + A701F7CB236B2A11002ABF81 /* TelegramPeerNotificationSettings.swift */, + A701F7CC236B2A11002ABF81 /* EmojiKeywordCollectionInfo.swift */, + A701F7CD236B2A11002ABF81 /* OutgoingMessageInfoAttribute.swift */, + A701F7CE236B2A11002ABF81 /* TelegramChatBannedRights.swift */, + A701F7CF236B2A11002ABF81 /* TelegramWallpaper.swift */, + A701F7D0236B2A11002ABF81 /* AccountBackupDataAttribute.swift */, + A701F7D1236B2A11002ABF81 /* LoggingSettings.swift */, + A701F7D2236B2A11002ABF81 /* TelegramUser.swift */, + A701F7D3236B2A11002ABF81 /* CachedStickerQueryResult.swift */, + A701F7D4236B2A11002ABF81 /* LimitsConfiguration.swift */, + A701F7D5236B2A11002ABF81 /* OutgoingScheduleInfoMessageAttribute.swift */, + A701F7D6236B2A11002ABF81 /* SecretChatOutgoingOperation.swift */, + A701F7D7236B2A11002ABF81 /* SecretChatIncomingDecryptedOperation.swift */, + A701F7D8236B2A11002ABF81 /* TelegramMediaUnsupported.swift */, + A701F7D9236B2A11002ABF81 /* Namespaces.swift */, + A701F7DA236B2A11002ABF81 /* ThemeSettings.swift */, + A701F7DB236B2A11002ABF81 /* CachedLocalizationInfos.swift */, + A701F7DC236B2A11002ABF81 /* BotInfo.swift */, + A701F7DD236B2A11002ABF81 /* CachedResolvedByNamePeer.swift */, + A701F7DE236B2A11002ABF81 /* CachedGroupParticipants.swift */, + A701F7DF236B2A11002ABF81 /* ViewCountMessageAttribute.swift */, + A701F7E0236B2A11002ABF81 /* AccountEnvironmentAttribute.swift */, + A701F7E1236B2A11002ABF81 /* TelegramDeviceContactImportedData.swift */, + A701F7E2236B2A11002ABF81 /* SynchronizeEmojiKeywordsOperation.swift */, + A701F7E3236B2A11002ABF81 /* Localization.swift */, + A701F7E4236B2A11002ABF81 /* CachedThemesConfiguration.swift */, + A701F7E5236B2A11002ABF81 /* StickerPackCollectionInfo.swift */, + A701F7E6236B2A11002ABF81 /* ImportableDeviceContactData.swift */, + A701F7E7236B2A11002ABF81 /* AppConfiguration.swift */, + A701F7E8236B2A11002ABF81 /* SendScheduledMessageImmediatelyAction.swift */, + A701F7E9236B2A11002ABF81 /* SynchronizeAppLogEventsOperation.swift */, + A701F7EA236B2A11002ABF81 /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */, + A701F7EB236B2A11002ABF81 /* ProxySettings.swift */, + A701F7EC236B2A11002ABF81 /* TextEntitiesMessageAttribute.swift */, + A701F7ED236B2A11002ABF81 /* AccountSortOrderAttribute.swift */, + A701F7EE236B2A11002ABF81 /* TelegramMediaWebpage.swift */, + A701F7EF236B2A11002ABF81 /* AutoremoveTimeoutMessageAttribute.swift */, + A701F7F0236B2A11002ABF81 /* UpdateMessageReactionsAction.swift */, + A701F7F1236B2A11002ABF81 /* TelegramMediaWebFile.swift */, + A701F7F2236B2A11002ABF81 /* FeaturedStickerPack.swift */, + A701F7F3236B2A11002ABF81 /* EditedMessageAttribute.swift */, + A701F7F4236B2A11002ABF81 /* RecentPeerItem.swift */, + A701F7F5236B2A11002ABF81 /* ArchivedStickerPacksInfo.swift */, + A701F7F6236B2A11002ABF81 /* RestrictedContentMessageAttribute.swift */, + A701F7F7236B2A11002ABF81 /* TelegramMediaGame.swift */, + A701F7F8236B2A11002ABF81 /* ForwardSourceInfoAttribute.swift */, + A701F7F9236B2A11002ABF81 /* TelegramSecretChat.swift */, + A701F7FA236B2A11002ABF81 /* NotificationInfoMessageAttribute.swift */, + A701F7FB236B2A11002ABF81 /* CachedChannelData.swift */, + A701F7FC236B2A11002ABF81 /* TelegramMediaPoll.swift */, + A701F7FD236B2A11002ABF81 /* ConsumableContentMessageAttribute.swift */, + A701F7FE236B2A11002ABF81 /* RemoteStorageConfiguration.swift */, + A701F7FF236B2A11002ABF81 /* PeerAccessHash.swift */, + A701F800236B2A11002ABF81 /* LocalizationInfo.swift */, + A701F801236B2A11002ABF81 /* CachedGroupData.swift */, + A701F802236B2A11002ABF81 /* InlineBotMessageAttribute.swift */, + A701F803236B2A11002ABF81 /* AuthorSignatureMessageAttribute.swift */, + A701F804236B2A11002ABF81 /* ChannelState.swift */, + A701F805236B2A11002ABF81 /* TelegramMediaImage.swift */, + A701F806236B2A11002ABF81 /* ReplyMessageAttribute.swift */, + A701F807236B2A11002ABF81 /* ReactionsMessageAttribute.swift */, + A701F808236B2A11002ABF81 /* TemporaryTwoStepPasswordToken.swift */, + A701F809236B2A11002ABF81 /* TelegramTheme.swift */, + A701F80A236B2A11002ABF81 /* ConsumePersonalMessageAction.swift */, + A701F80B236B2A11002ABF81 /* SavedStickerItem.swift */, + A701F80C236B2A11002ABF81 /* CacheStorageSettings.swift */, + A701F80D236B2A11002ABF81 /* UnauthorizedAccountState.swift */, + A701F80E236B2A11002ABF81 /* TelegramMediaResource.swift */, + A701F80F236B2A11002ABF81 /* JSON.swift */, + A701F810236B2A11002ABF81 /* NetworkSettings.swift */, + A701F811236B2A11002ABF81 /* TelegramMediaInvoice.swift */, + A701F812236B2A11002ABF81 /* SuggestedLocalizationEntry.swift */, + A701F813236B2A11002ABF81 /* LocalizationListState.swift */, + A701F814236B2A11002ABF81 /* SynchronizeSavedStickersOperation.swift */, + A701F815236B2A11002ABF81 /* SynchronizeableChatInputState.swift */, + A701F816236B2A11002ABF81 /* SecretChatSettings.swift */, + A701F817236B2A11002ABF81 /* SecretChatState.swift */, + A701F818236B2A11002ABF81 /* ContentPrivacySettings.swift */, + A701F819236B2A11002ABF81 /* CachedWallpapersConfiguration.swift */, + A701F81A236B2A11002ABF81 /* VoipConfiguration.swift */, + A701F81B236B2A11002ABF81 /* OutgoingChatContextResultMessageAttribute.swift */, + A701F81C236B2A11002ABF81 /* PeerGroupMessageStateVersionAttribute.swift */, + A701F81D236B2A11002ABF81 /* ChannelMessageStateVersionAttribute.swift */, + A701F81E236B2A11002ABF81 /* SourceReferenceMessageAttribute.swift */, + A701F81F236B2A11002ABF81 /* AutodownloadSettings.swift */, + A701F820236B2A11002ABF81 /* SecureIdFileReference.swift */, + A701F821236B2A11002ABF81 /* TelegramMediaAction.swift */, + A701F822236B2A11002ABF81 /* TelegramChatAdminRights.swift */, + A701F823236B2A11002ABF81 /* StandaloneAccountTransaction.swift */, + A701F824236B2A11002ABF81 /* TelegramMediaMap.swift */, + A701F825236B2A11002ABF81 /* SuggestedLocalizationUpdatesOperation.swift */, + A701F826236B2A11002ABF81 /* SecretChatKeychain.swift */, + A701F827236B2A11002ABF81 /* SecretChatEncryptionConfig.swift */, + A701F828236B2A11002ABF81 /* PeerStatusSettings.swift */, + A701F829236B2A11002ABF81 /* SecureFileMediaResource.swift */, + A701F82A236B2A11002ABF81 /* SearchBotsConfiguration.swift */, + A701F82B236B2A11002ABF81 /* PeerAccessRestrictionInfo.swift */, + A701F82C236B2A11002ABF81 /* TelegramMediaContact.swift */, + A701F82D236B2A11002ABF81 /* SynchronizeSavedGifsOperation.swift */, + A701F82E236B2A11002ABF81 /* ContentRequiresValidationMessageAttribute.swift */, + A701F82F236B2A11002ABF81 /* WalletCollection.swift */, + A701F830236B2A11002ABF81 /* SecretChatFileReference.swift */, + A701F831236B2A11002ABF81 /* EmojiKeywordItem.swift */, + A701F832236B2A11002ABF81 /* CachedRecentPeers.swift */, + A701F833236B2A11002ABF81 /* ContactsSettings.swift */, + A701F834236B2A11002ABF81 /* SynchronizeRecentlyUsedMediaOperation.swift */, + A701F835236B2A11002ABF81 /* ExportedInvitation.swift */, + A701F836236B2A11002ABF81 /* SynchronizeChatInputStateOperation.swift */, + A701F837236B2A11002ABF81 /* SynchronizeGroupedPeersOperation.swift */, + A701F838236B2A11002ABF81 /* SecretChatIncomingEncryptedOperation.swift */, + A701F839236B2A11002ABF81 /* LoggedOutAccountAttribute.swift */, + A701F83A236B2A11002ABF81 /* SynchronizePinnedChatsOperation.swift */, + A701F83B236B2A11002ABF81 /* ConsumablePersonalMentionMessageAttribute.swift */, + A701F83C236B2A11002ABF81 /* LocalizationSettings.swift */, + A701F83D236B2A11002ABF81 /* MediaReference.swift */, + A701F83E236B2A11002ABF81 /* SynchronizeConsumeMessageContentsOperation.swift */, + A701F83F236B2A11002ABF81 /* StickerPackItem.swift */, + A701F840236B2A11002ABF81 /* CloudChatRemoveMessagesOperation.swift */, + A701F841236B2A11002ABF81 /* RichText.swift */, + A701F842236B2A11002ABF81 /* WasScheduledMessageAttribute.swift */, + A701F843236B2A11002ABF81 /* RecentHashtagItem.swift */, + A701F844236B2A11002ABF81 /* RecentMediaItem.swift */, + A701F845236B2A11002ABF81 /* CachedStickerPack.swift */, + A701F846236B2A11002ABF81 /* InstantPage.swift */, + A701F847236B2A11002ABF81 /* AppChangelogState.swift */, + A701F848236B2A11002ABF81 /* CloudFileMediaResource.swift */, + A701F849236B2A11002ABF81 /* CachedSecureIdConfiguration.swift */, + A701F84A236B2A11002ABF81 /* TelegramChannel.swift */, + A701F84B236B2A11002ABF81 /* TelegramMediaExpiredContent.swift */, + A701F84C236B2A11002ABF81 /* RegularChatState.swift */, + A701F84D236B2A11002ABF81 /* CachedUserData.swift */, + A701F84E236B2A11002ABF81 /* SecretFileEncryptionKey.swift */, + A701F84F236B2A11002ABF81 /* GlobalNotificationSettings.swift */, + A701F850236B2A11002ABF81 /* TelegramUserPresence.swift */, + A701F851236B2A11002ABF81 /* TelegramMediaFile.swift */, + A701F852236B2A11002ABF81 /* PeerReference.swift */, + A701F853236B2A11002ABF81 /* ReplyMarkupMessageAttribute.swift */, + A701F854236B2A11002ABF81 /* AuthorizedAccountState.swift */, + A701F855236B2A11002ABF81 /* SynchronizeInstalledStickerPacksOperations.swift */, + A7D28200236C379D0000A9BF /* PixelDimensions.swift */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/SyncCore/Sources"; + sourceTree = ""; + }; + A701F8E3236B2A71002ABF81 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A701F929236C1AF7002ABF81 /* SwiftSignalKit.framework */, + A701F8EB236B2E30002ABF81 /* Postbox.framework */, + A701F8E6236B2A78002ABF81 /* PostboxMac.framework */, + A701F8E4236B2A71002ABF81 /* SwiftSignalKitMac.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A701F7B0236B295F002ABF81 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F7BA236B295F002ABF81 /* SyncCore.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A701F7B4236B295F002ABF81 /* SyncCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = A701F7BD236B295F002ABF81 /* Build configuration list for PBXNativeTarget "SyncCore" */; + buildPhases = ( + A701F7B0236B295F002ABF81 /* Headers */, + A701F7B1236B295F002ABF81 /* Sources */, + A701F7B2236B295F002ABF81 /* Frameworks */, + A701F7B3236B295F002ABF81 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SyncCore; + productName = SyncCore; + productReference = A701F7B5236B295F002ABF81 /* SyncCore.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A701F7AC236B295F002ABF81 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A701F7B4236B295F002ABF81 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A701F7AF236B295F002ABF81 /* Build configuration list for PBXProject "SyncCore_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A701F7AB236B295F002ABF81; + productRefGroup = A701F7B6236B295F002ABF81 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A701F7B4236B295F002ABF81 /* SyncCore */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A701F7B3236B295F002ABF81 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A701F7B1236B295F002ABF81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F879236B2A11002ABF81 /* TextEntitiesMessageAttribute.swift in Sources */, + A701F8BB236B2A12002ABF81 /* ContentRequiresValidationMessageAttribute.swift in Sources */, + A701F87B236B2A11002ABF81 /* TelegramMediaWebpage.swift in Sources */, + A701F8A1236B2A11002ABF81 /* SynchronizeSavedStickersOperation.swift in Sources */, + A701F85D236B2A11002ABF81 /* AccountBackupDataAttribute.swift in Sources */, + A701F895236B2A11002ABF81 /* TemporaryTwoStepPasswordToken.swift in Sources */, + A701F882236B2A11002ABF81 /* ArchivedStickerPacksInfo.swift in Sources */, + A701F8C8236B2A12002ABF81 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */, + A701F8DE236B2A12002ABF81 /* TelegramMediaFile.swift in Sources */, + A701F8C0236B2A12002ABF81 /* ContactsSettings.swift in Sources */, + A701F88B236B2A11002ABF81 /* RemoteStorageConfiguration.swift in Sources */, + A701F859236B2A11002ABF81 /* EmojiKeywordCollectionInfo.swift in Sources */, + A701F88D236B2A11002ABF81 /* LocalizationInfo.swift in Sources */, + A701F861236B2A11002ABF81 /* LimitsConfiguration.swift in Sources */, + A701F87A236B2A11002ABF81 /* AccountSortOrderAttribute.swift in Sources */, + A701F8A2236B2A11002ABF81 /* SynchronizeableChatInputState.swift in Sources */, + A701F865236B2A11002ABF81 /* TelegramMediaUnsupported.swift in Sources */, + A701F8D6236B2A12002ABF81 /* CachedSecureIdConfiguration.swift in Sources */, + A701F868236B2A11002ABF81 /* CachedLocalizationInfos.swift in Sources */, + A701F85E236B2A11002ABF81 /* LoggingSettings.swift in Sources */, + A701F8CC236B2A12002ABF81 /* StickerPackItem.swift in Sources */, + A701F8DC236B2A12002ABF81 /* GlobalNotificationSettings.swift in Sources */, + A701F86C236B2A11002ABF81 /* ViewCountMessageAttribute.swift in Sources */, + A701F8B1236B2A12002ABF81 /* TelegramMediaMap.swift in Sources */, + A701F8D0236B2A12002ABF81 /* RecentHashtagItem.swift in Sources */, + A701F8D5236B2A12002ABF81 /* CloudFileMediaResource.swift in Sources */, + A701F880236B2A11002ABF81 /* EditedMessageAttribute.swift in Sources */, + A701F899236B2A11002ABF81 /* CacheStorageSettings.swift in Sources */, + A701F86F236B2A11002ABF81 /* SynchronizeEmojiKeywordsOperation.swift in Sources */, + A701F8C9236B2A12002ABF81 /* LocalizationSettings.swift in Sources */, + A701F86A236B2A11002ABF81 /* CachedResolvedByNamePeer.swift in Sources */, + A701F8DF236B2A12002ABF81 /* PeerReference.swift in Sources */, + A701F8BF236B2A12002ABF81 /* CachedRecentPeers.swift in Sources */, + A701F864236B2A11002ABF81 /* SecretChatIncomingDecryptedOperation.swift in Sources */, + A701F890236B2A11002ABF81 /* AuthorSignatureMessageAttribute.swift in Sources */, + A701F887236B2A11002ABF81 /* NotificationInfoMessageAttribute.swift in Sources */, + A701F872236B2A11002ABF81 /* StickerPackCollectionInfo.swift in Sources */, + A701F88C236B2A11002ABF81 /* PeerAccessHash.swift in Sources */, + A701F85B236B2A11002ABF81 /* TelegramChatBannedRights.swift in Sources */, + A701F8A3236B2A11002ABF81 /* SecretChatSettings.swift in Sources */, + A701F8BD236B2A12002ABF81 /* SecretChatFileReference.swift in Sources */, + A701F8B7236B2A12002ABF81 /* SearchBotsConfiguration.swift in Sources */, + A701F86B236B2A11002ABF81 /* CachedGroupParticipants.swift in Sources */, + A701F8CA236B2A12002ABF81 /* MediaReference.swift in Sources */, + A701F8B9236B2A12002ABF81 /* TelegramMediaContact.swift in Sources */, + A701F89A236B2A11002ABF81 /* UnauthorizedAccountState.swift in Sources */, + A701F885236B2A11002ABF81 /* ForwardSourceInfoAttribute.swift in Sources */, + A701F88A236B2A11002ABF81 /* ConsumableContentMessageAttribute.swift in Sources */, + A701F857236B2A11002ABF81 /* OutgoingContentInfoMessageAttribute.swift in Sources */, + A701F8A6236B2A12002ABF81 /* CachedWallpapersConfiguration.swift in Sources */, + A701F88F236B2A11002ABF81 /* InlineBotMessageAttribute.swift in Sources */, + A701F883236B2A11002ABF81 /* RestrictedContentMessageAttribute.swift in Sources */, + A701F8C1236B2A12002ABF81 /* SynchronizeRecentlyUsedMediaOperation.swift in Sources */, + A701F8E2236B2A12002ABF81 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */, + A701F8AC236B2A12002ABF81 /* AutodownloadSettings.swift in Sources */, + A701F85A236B2A11002ABF81 /* OutgoingMessageInfoAttribute.swift in Sources */, + A701F858236B2A11002ABF81 /* TelegramPeerNotificationSettings.swift in Sources */, + A701F888236B2A11002ABF81 /* CachedChannelData.swift in Sources */, + A701F8D1236B2A12002ABF81 /* RecentMediaItem.swift in Sources */, + A701F8AE236B2A12002ABF81 /* TelegramMediaAction.swift in Sources */, + A701F8AA236B2A12002ABF81 /* ChannelMessageStateVersionAttribute.swift in Sources */, + A701F8CE236B2A12002ABF81 /* RichText.swift in Sources */, + A701F8C6236B2A12002ABF81 /* LoggedOutAccountAttribute.swift in Sources */, + A701F897236B2A11002ABF81 /* ConsumePersonalMessageAction.swift in Sources */, + A701F89D236B2A11002ABF81 /* NetworkSettings.swift in Sources */, + A701F8BC236B2A12002ABF81 /* WalletCollection.swift in Sources */, + A701F86E236B2A11002ABF81 /* TelegramDeviceContactImportedData.swift in Sources */, + A701F8C7236B2A12002ABF81 /* SynchronizePinnedChatsOperation.swift in Sources */, + A701F8A0236B2A11002ABF81 /* LocalizationListState.swift in Sources */, + A701F8D4236B2A12002ABF81 /* AppChangelogState.swift in Sources */, + A701F896236B2A11002ABF81 /* TelegramTheme.swift in Sources */, + A701F860236B2A11002ABF81 /* CachedStickerQueryResult.swift in Sources */, + A701F8AB236B2A12002ABF81 /* SourceReferenceMessageAttribute.swift in Sources */, + A701F863236B2A11002ABF81 /* SecretChatOutgoingOperation.swift in Sources */, + A701F8B4236B2A12002ABF81 /* SecretChatEncryptionConfig.swift in Sources */, + A701F886236B2A11002ABF81 /* TelegramSecretChat.swift in Sources */, + A701F8CB236B2A12002ABF81 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */, + A701F8DD236B2A12002ABF81 /* TelegramUserPresence.swift in Sources */, + A701F8AD236B2A12002ABF81 /* SecureIdFileReference.swift in Sources */, + A701F8BE236B2A12002ABF81 /* EmojiKeywordItem.swift in Sources */, + A701F8C5236B2A12002ABF81 /* SecretChatIncomingEncryptedOperation.swift in Sources */, + A701F878236B2A11002ABF81 /* ProxySettings.swift in Sources */, + A701F889236B2A11002ABF81 /* TelegramMediaPoll.swift in Sources */, + A701F87D236B2A11002ABF81 /* UpdateMessageReactionsAction.swift in Sources */, + A701F884236B2A11002ABF81 /* TelegramMediaGame.swift in Sources */, + A701F8E1236B2A12002ABF81 /* AuthorizedAccountState.swift in Sources */, + A701F8A7236B2A12002ABF81 /* VoipConfiguration.swift in Sources */, + A701F874236B2A11002ABF81 /* AppConfiguration.swift in Sources */, + A701F88E236B2A11002ABF81 /* CachedGroupData.swift in Sources */, + A701F89C236B2A11002ABF81 /* JSON.swift in Sources */, + A701F869236B2A11002ABF81 /* BotInfo.swift in Sources */, + A701F8A9236B2A12002ABF81 /* PeerGroupMessageStateVersionAttribute.swift in Sources */, + A701F8D7236B2A12002ABF81 /* TelegramChannel.swift in Sources */, + A701F8B6236B2A12002ABF81 /* SecureFileMediaResource.swift in Sources */, + A701F89B236B2A11002ABF81 /* TelegramMediaResource.swift in Sources */, + A701F89F236B2A11002ABF81 /* SuggestedLocalizationEntry.swift in Sources */, + A701F867236B2A11002ABF81 /* ThemeSettings.swift in Sources */, + A701F891236B2A11002ABF81 /* ChannelState.swift in Sources */, + A701F894236B2A11002ABF81 /* ReactionsMessageAttribute.swift in Sources */, + A701F85F236B2A11002ABF81 /* TelegramUser.swift in Sources */, + A701F893236B2A11002ABF81 /* ReplyMessageAttribute.swift in Sources */, + A701F877236B2A11002ABF81 /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */, + A701F8D9236B2A12002ABF81 /* RegularChatState.swift in Sources */, + A701F8CF236B2A12002ABF81 /* WasScheduledMessageAttribute.swift in Sources */, + A701F866236B2A11002ABF81 /* Namespaces.swift in Sources */, + A701F8B0236B2A12002ABF81 /* StandaloneAccountTransaction.swift in Sources */, + A701F875236B2A11002ABF81 /* SendScheduledMessageImmediatelyAction.swift in Sources */, + A701F87C236B2A11002ABF81 /* AutoremoveTimeoutMessageAttribute.swift in Sources */, + A701F8B2236B2A12002ABF81 /* SuggestedLocalizationUpdatesOperation.swift in Sources */, + A701F876236B2A11002ABF81 /* SynchronizeAppLogEventsOperation.swift in Sources */, + A701F8B8236B2A12002ABF81 /* PeerAccessRestrictionInfo.swift in Sources */, + A701F8A5236B2A12002ABF81 /* ContentPrivacySettings.swift in Sources */, + A701F8E0236B2A12002ABF81 /* ReplyMarkupMessageAttribute.swift in Sources */, + A701F862236B2A11002ABF81 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */, + A701F881236B2A11002ABF81 /* RecentPeerItem.swift in Sources */, + A7D28201236C379D0000A9BF /* PixelDimensions.swift in Sources */, + A701F870236B2A11002ABF81 /* Localization.swift in Sources */, + A701F873236B2A11002ABF81 /* ImportableDeviceContactData.swift in Sources */, + A701F871236B2A11002ABF81 /* CachedThemesConfiguration.swift in Sources */, + A701F892236B2A11002ABF81 /* TelegramMediaImage.swift in Sources */, + A701F8CD236B2A12002ABF81 /* CloudChatRemoveMessagesOperation.swift in Sources */, + A701F8D2236B2A12002ABF81 /* CachedStickerPack.swift in Sources */, + A701F8B5236B2A12002ABF81 /* PeerStatusSettings.swift in Sources */, + A701F87E236B2A11002ABF81 /* TelegramMediaWebFile.swift in Sources */, + A701F8AF236B2A12002ABF81 /* TelegramChatAdminRights.swift in Sources */, + A701F8A8236B2A12002ABF81 /* OutgoingChatContextResultMessageAttribute.swift in Sources */, + A701F87F236B2A11002ABF81 /* FeaturedStickerPack.swift in Sources */, + A701F8DA236B2A12002ABF81 /* CachedUserData.swift in Sources */, + A701F8B3236B2A12002ABF81 /* SecretChatKeychain.swift in Sources */, + A701F8C3236B2A12002ABF81 /* SynchronizeChatInputStateOperation.swift in Sources */, + A701F8D3236B2A12002ABF81 /* InstantPage.swift in Sources */, + A701F8C2236B2A12002ABF81 /* ExportedInvitation.swift in Sources */, + A701F8DB236B2A12002ABF81 /* SecretFileEncryptionKey.swift in Sources */, + A701F8D8236B2A12002ABF81 /* TelegramMediaExpiredContent.swift in Sources */, + A701F8C4236B2A12002ABF81 /* SynchronizeGroupedPeersOperation.swift in Sources */, + A701F856236B2A11002ABF81 /* TelegramGroup.swift in Sources */, + A701F8BA236B2A12002ABF81 /* SynchronizeSavedGifsOperation.swift in Sources */, + A701F898236B2A11002ABF81 /* SavedStickerItem.swift in Sources */, + A701F86D236B2A11002ABF81 /* AccountEnvironmentAttribute.swift in Sources */, + A701F8A4236B2A12002ABF81 /* SecretChatState.swift in Sources */, + A701F85C236B2A11002ABF81 /* TelegramWallpaper.swift in Sources */, + A701F89E236B2A11002ABF81 /* TelegramMediaInvoice.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A701F7BB236B295F002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A701F7BC236B295F002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A701F7BE236B295F002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SyncCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SyncCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = DebugAppStore; + }; + A701F7BF236B295F002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SyncCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SyncCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = HockeyappMacAlpha; + }; + A701F7C2236B29CC002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A701F7C3236B29CC002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SyncCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SyncCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = ReleaseHockeyapp; + }; + A701F7C4236B29E0002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A701F7C5236B29E0002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SyncCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SyncCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = ReleaseAppStore; + }; + A701F7C6236B29E6002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A701F7C7236B29E6002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SyncCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.SyncCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = DebugHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A701F7AF236B295F002ABF81 /* Build configuration list for PBXProject "SyncCore_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F7BB236B295F002ABF81 /* DebugAppStore */, + A701F7BC236B295F002ABF81 /* HockeyappMacAlpha */, + A701F7C2236B29CC002ABF81 /* ReleaseHockeyapp */, + A701F7C4236B29E0002ABF81 /* ReleaseAppStore */, + A701F7C6236B29E6002ABF81 /* DebugHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = HockeyappMacAlpha; + }; + A701F7BD236B295F002ABF81 /* Build configuration list for PBXNativeTarget "SyncCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F7BE236B295F002ABF81 /* DebugAppStore */, + A701F7BF236B295F002ABF81 /* HockeyappMacAlpha */, + A701F7C3236B29CC002ABF81 /* ReleaseHockeyapp */, + A701F7C5236B29E0002ABF81 /* ReleaseAppStore */, + A701F7C7236B29E6002ABF81 /* DebugHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = HockeyappMacAlpha; + }; +/* End XCConfigurationList section */ + }; + rootObject = A701F7AC236B295F002ABF81 /* Project object */; +} diff --git a/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..e4dcf5bbf --- /dev/null +++ b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/SyncCore/SyncCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..34bea761a6572de768853b334d1dcc95b0318777 GIT binary patch literal 9452 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 DuoS SchemeUserState - RLottieMac.xcscheme_^#shared#^_ + SyncCore.xcscheme_^#shared#^_ orderHint - 32 + 28 diff --git a/RLottieMac/RLottieMacTests/Info.plist b/core-xprojects/TelegramApi/TelegramApi/Info.plist similarity index 90% rename from RLottieMac/RLottieMacTests/Info.plist rename to core-xprojects/TelegramApi/TelegramApi/Info.plist index 6c40a6cd0..e1fe4cfb7 100644 --- a/RLottieMac/RLottieMacTests/Info.plist +++ b/core-xprojects/TelegramApi/TelegramApi/Info.plist @@ -13,10 +13,10 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - BNDL + FMWK CFBundleShortVersionString 1.0 CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) diff --git a/core-xprojects/TelegramApi/TelegramApi/TelegramApi.h b/core-xprojects/TelegramApi/TelegramApi/TelegramApi.h new file mode 100644 index 000000000..64322dc58 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi/TelegramApi.h @@ -0,0 +1,19 @@ +// +// TelegramApi.h +// TelegramApi +// +// Created by Peter on 6/16/19. +// Copyright © 2019 Telegram LLP. All rights reserved. +// + +#import + +//! Project version number for TelegramApi. +FOUNDATION_EXPORT double TelegramApiVersionNumber; + +//! Project version string for TelegramApi. +FOUNDATION_EXPORT const unsigned char TelegramApiVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..11f12f5dc --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,692 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A701F93A236C210C002ABF81 /* TelegramApi.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F939236C210C002ABF81 /* TelegramApi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F93B236C21AE002ABF81 /* SecretApiLayer8.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */; }; + A701F93C236C21AE002ABF81 /* SecretApiLayer46.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */; }; + A701F93D236C21AE002ABF81 /* SecretApiLayer73.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */; }; + A701F93E236C21AE002ABF81 /* SecretApiLayer101.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */; }; + A701F93F236C21AE002ABF81 /* DeserializeFunctionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */; }; + A701F940236C21AE002ABF81 /* TelegramApiLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733A22B5C31400F0920D /* TelegramApiLogger.swift */; }; + A701F941236C21AE002ABF81 /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733822B5C2E200F0920D /* Buffer.swift */; }; + A701F942236C21AE002ABF81 /* Api0.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733022B5C29900F0920D /* Api0.swift */; }; + A701F943236C21AE002ABF81 /* Api1.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733222B5C29900F0920D /* Api1.swift */; }; + A701F944236C21AE002ABF81 /* Api2.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733122B5C29900F0920D /* Api2.swift */; }; + A701F945236C21AE002ABF81 /* Api3.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733322B5C29900F0920D /* Api3.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer101.swift; sourceTree = ""; }; + A701F937236C1FFB002ABF81 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A701F939236C210C002ABF81 /* TelegramApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramApi.h; sourceTree = ""; }; + D035733022B5C29900F0920D /* Api0.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api0.swift; sourceTree = ""; }; + D035733122B5C29900F0920D /* Api2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api2.swift; sourceTree = ""; }; + D035733222B5C29900F0920D /* Api1.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api1.swift; sourceTree = ""; }; + D035733322B5C29900F0920D /* Api3.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api3.swift; sourceTree = ""; }; + D035733822B5C2E200F0920D /* Buffer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Buffer.swift; sourceTree = ""; }; + D035733A22B5C31400F0920D /* TelegramApiLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramApiLogger.swift; sourceTree = ""; }; + D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeserializeFunctionResponse.swift; sourceTree = ""; }; + D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer46.swift; sourceTree = ""; }; + D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer8.swift; sourceTree = ""; }; + D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer73.swift; sourceTree = ""; }; + D0CC4AD922BA46F30088F36D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0CC4AD022BA46F30088F36D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A701F936236C1FFB002ABF81 /* TelegramApi */ = { + isa = PBXGroup; + children = ( + A701F939236C210C002ABF81 /* TelegramApi.h */, + A701F937236C1FFB002ABF81 /* Info.plist */, + ); + path = TelegramApi; + sourceTree = SOURCE_ROOT; + }; + D035731522B5C1FC00F0920D /* TelegramApi */ = { + isa = PBXGroup; + children = ( + A701F936236C1FFB002ABF81 /* TelegramApi */, + D035732122B5C1FC00F0920D /* Sources */, + D035732022B5C1FC00F0920D /* Products */, + ); + name = TelegramApi; + sourceTree = ""; + }; + D035732022B5C1FC00F0920D /* Products */ = { + isa = PBXGroup; + children = ( + D0CC4AD922BA46F30088F36D /* TelegramApi.framework */, + ); + name = Products; + sourceTree = ""; + }; + D035732122B5C1FC00F0920D /* Sources */ = { + isa = PBXGroup; + children = ( + D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */, + D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */, + D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */, + 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */, + D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */, + D035733A22B5C31400F0920D /* TelegramApiLogger.swift */, + D035733822B5C2E200F0920D /* Buffer.swift */, + D035733022B5C29900F0920D /* Api0.swift */, + D035733222B5C29900F0920D /* Api1.swift */, + D035733122B5C29900F0920D /* Api2.swift */, + D035733322B5C29900F0920D /* Api3.swift */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/TelegramApi/Sources"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D0CC4AC322BA46F30088F36D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F93A236C210C002ABF81 /* TelegramApi.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D0CC4AC222BA46F30088F36D /* TelegramApi */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0CC4AD222BA46F30088F36D /* Build configuration list for PBXNativeTarget "TelegramApi" */; + buildPhases = ( + D0CC4AC322BA46F30088F36D /* Headers */, + D0CC4AC522BA46F30088F36D /* Sources */, + D0CC4AD022BA46F30088F36D /* Frameworks */, + D0CC4AD122BA46F30088F36D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TelegramApi; + productName = TelegramApi; + productReference = D0CC4AD922BA46F30088F36D /* TelegramApi.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D035731622B5C1FC00F0920D /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "Telegram LLP"; + }; + buildConfigurationList = D035731922B5C1FC00F0920D /* Build configuration list for PBXProject "TelegramApi_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D035731522B5C1FC00F0920D /* TelegramApi */; + productRefGroup = D035732022B5C1FC00F0920D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0CC4AC222BA46F30088F36D /* TelegramApi */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0CC4AD122BA46F30088F36D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0CC4AC522BA46F30088F36D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F93B236C21AE002ABF81 /* SecretApiLayer8.swift in Sources */, + A701F93C236C21AE002ABF81 /* SecretApiLayer46.swift in Sources */, + A701F93D236C21AE002ABF81 /* SecretApiLayer73.swift in Sources */, + A701F93E236C21AE002ABF81 /* SecretApiLayer101.swift in Sources */, + A701F93F236C21AE002ABF81 /* DeserializeFunctionResponse.swift in Sources */, + A701F940236C21AE002ABF81 /* TelegramApiLogger.swift in Sources */, + A701F941236C21AE002ABF81 /* Buffer.swift in Sources */, + A701F942236C21AE002ABF81 /* Api0.swift in Sources */, + A701F943236C21AE002ABF81 /* Api1.swift in Sources */, + A701F944236C21AE002ABF81 /* Api2.swift in Sources */, + A701F945236C21AE002ABF81 /* Api3.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D0276B8422C17FAA003155D8 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0276B8622C17FAA003155D8 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = TelegramApi/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = macosx; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStore; + }; + D0276B8722C17FB2003155D8 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D0276B8922C17FB2003155D8 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = TelegramApi/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = macosx; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyapp; + }; + D035732522B5C1FC00F0920D /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D0CC4AA522BA44AD0088F36D /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0CC4AA722BA44B70088F36D /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0CC4AD322BA46F30088F36D /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = TelegramApi/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D0CC4AD422BA46F30088F36D /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = TelegramApi/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = HockeyappMacAlpha; + }; + D0CC4AD522BA46F30088F36D /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = TelegramApi/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D035731922B5C1FC00F0920D /* Build configuration list for PBXProject "TelegramApi_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D035732522B5C1FC00F0920D /* DebugHockeyapp */, + D0CC4AA722BA44B70088F36D /* HockeyappMacAlpha */, + D0CC4AA522BA44AD0088F36D /* DebugAppStore */, + D0276B8422C17FAA003155D8 /* ReleaseAppStore */, + D0276B8722C17FB2003155D8 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + D0CC4AD222BA46F30088F36D /* Build configuration list for PBXNativeTarget "TelegramApi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0CC4AD322BA46F30088F36D /* DebugHockeyapp */, + D0CC4AD422BA46F30088F36D /* HockeyappMacAlpha */, + D0CC4AD522BA46F30088F36D /* DebugAppStore */, + D0276B8622C17FAA003155D8 /* ReleaseAppStore */, + D0276B8922C17FB2003155D8 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D035731622B5C1FC00F0920D /* Project object */; +} diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..94b2795e2 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,4 @@ + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..8134c0d9ba0e90a45c51b50af0cea5e4856ba591 GIT binary patch literal 33254 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 literal 0 HcmV?d00001 diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramApi.xcscheme b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramApi.xcscheme new file mode 100644 index 000000000..49a8e70e5 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramApi.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApi.xcscheme b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApi.xcscheme new file mode 100644 index 000000000..1e4494387 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApi.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApiMac.xcscheme b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApiMac.xcscheme new file mode 100644 index 000000000..5b61f11b6 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramApiMac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..1b05dc260 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,46 @@ + + + + + SchemeUserState + + TelegramApi copy 2.xcscheme_^#shared#^_ + + orderHint + 43 + + TelegramApi copy.xcscheme_^#shared#^_ + + orderHint + 42 + + TelegramApi.xcscheme + + isShown + + orderHint + 50 + + TelegramApiMac.xcscheme + + isShown + + orderHint + 52 + + + SuppressBuildableAutocreation + + D035731E22B5C1FC00F0920D + + primary + + + D0CC4AC222BA46F30088F36D + + primary + + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..60d336eeb --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + TelegramApi.xcscheme_^#shared#^_ + + orderHint + 30 + + TelegramApiMac.xcscheme_^#shared#^_ + + orderHint + 31 + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..8098b7881 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + TelegramApi.xcscheme_^#shared#^_ + + orderHint + 12 + + + SuppressBuildableAutocreation + + D0CC4AC222BA46F30088F36D + + primary + + + + + diff --git a/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..eb013ad37 --- /dev/null +++ b/core-xprojects/TelegramApi/TelegramApi_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + TelegramApi.xcscheme_^#shared#^_ + + orderHint + 36 + + TelegramApiMac.xcscheme_^#shared#^_ + + orderHint + 37 + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore/Info.plist b/core-xprojects/TelegramCore/TelegramCore/Info.plist new file mode 100644 index 000000000..6c6dba7bb --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2016 Peter. All rights reserved. + NSPrincipalClass + + + diff --git a/core-xprojects/TelegramCore/TelegramCore/TelegramCore.h b/core-xprojects/TelegramCore/TelegramCore/TelegramCore.h new file mode 100644 index 000000000..28689c618 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore/TelegramCore.h @@ -0,0 +1,22 @@ +// +// TelegramCoreMac.h +// TelegramCoreMac +// +// Created by Peter on 9/5/16. +// Copyright © 2016 Peter. All rights reserved. +// + +#import + +//! Project version number for TelegramCoreMac. +FOUNDATION_EXPORT double TelegramCoreVersionNumber; + +//! Project version string for TelegramCoreMac. +FOUNDATION_EXPORT const unsigned char TelegramCoreVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import +#import +#import diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..0d898f3b8 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,2363 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9F06831121A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */; }; + 9F10CE8C20613CDB002DD61A /* TelegramDeviceContactImportInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */; }; + 9F153D1021E8E0A200B95D82 /* Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0900555521E4A96D0030924C /* Wallpaper.swift */; }; + 9F1BC1AB2244CFED00F21815 /* EmojiKeywords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */; }; + 9F1BC1AC2244CFED00F21815 /* SynchronizeEmojiKeywordsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */; }; + 9F1BC1AD2244CFED00F21815 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */; }; + 9F4EEF9B21DCF66F002C3B33 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66C21B5C56F00245FD9 /* JSON.swift */; }; + 9F4EEF9C21DCF66F002C3B33 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66E21B6147600245FD9 /* AppConfiguration.swift */; }; + 9F4EEF9E21DCF6E7002C3B33 /* ManagedVoipConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */; }; + 9F4EEF9F21DCF6E7002C3B33 /* ManagedAppConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */; }; + 9F4EEFA021DCF6E7002C3B33 /* SynchronizeAppLogEventsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */; }; + 9F4EEFA121DCF6E7002C3B33 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */; }; + 9F7D42262223FF49007B68BB /* AutodownloadSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */; }; + 9F7D42272223FF49007B68BB /* ManagedAutodownloadSettingsUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */; }; + 9FAA268820D457A300D26CF3 /* RemoteStorageConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */; }; + 9FC8ADA9206BBD000094F7B4 /* SaveSecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D805206539D000BC3599 /* SaveSecureIdValue.swift */; }; + 9FC8ADAC206BC00A0094F7B4 /* RecentWebSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */; }; + A7D281DE236C25500000A9BF /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D281DD236C25500000A9BF /* SwiftSignalKit.framework */; }; + A7D281E2236C25710000A9BF /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D281E1236C25710000A9BF /* Postbox.framework */; }; + A7D281E4236C257C0000A9BF /* TelegramApi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D281E3236C257C0000A9BF /* TelegramApi.framework */; }; + A7D281EA236C27030000A9BF /* MtProtoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D281E9236C27030000A9BF /* MtProtoKit.framework */; }; + A7D281EC236C2FAD0000A9BF /* SyncCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D281EB236C2FAD0000A9BF /* SyncCore.framework */; }; + A7D281F0236C32900000A9BF /* NetworkLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D281EE236C32900000A9BF /* NetworkLogging.m */; }; + A7D281F1236C32900000A9BF /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D281EF236C32900000A9BF /* NetworkLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D281F4236C32A00000A9BF /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D281F2236C32A00000A9BF /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D281F5236C32A00000A9BF /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D281F3236C32A00000A9BF /* Reachability.m */; }; + A7D281F8236C32AA0000A9BF /* Crypto.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D281F6236C32AA0000A9BF /* Crypto.m */; }; + A7D281F9236C32AA0000A9BF /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D281F7236C32AA0000A9BF /* Crypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D281FB236C34670000A9BF /* SynchronizeInstalledStickerPacksOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D281FA236C34660000A9BF /* SynchronizeInstalledStickerPacksOperation.swift */; }; + A7D281FD236C35E30000A9BF /* TelegramMediaWebFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D281FC236C35E30000A9BF /* TelegramMediaWebFile.swift */; }; + C205FEA91EB3B75900455808 /* ExportMessageLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205FEA71EB3B75900455808 /* ExportMessageLink.swift */; }; + C22EE61C1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */; }; + C230BEB71EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */; }; + C2366C841E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */; }; + C2366C871E4F403C0097CCFF /* AddressNames.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C851E4F403C0097CCFF /* AddressNames.swift */; }; + C2366C8A1E4F40480097CCFF /* SupportPeerId.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C881E4F40480097CCFF /* SupportPeerId.swift */; }; + C239BE981E62F0D200C2C453 /* LoadMessagesIfNecessary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */; }; + C239BE9D1E630CB300C2C453 /* UpdatePinnedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */; }; + C23BC3881E9BE3CB00D79F92 /* ImportContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */; }; + C251D7441E65E50500283EDE /* StickerSetInstallation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C251D7421E65E50500283EDE /* StickerSetInstallation.swift */; }; + C25638021E79E7FC00311607 /* TwoStepVerification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */; }; + C26A37EF1E5E0C41006977AC /* ChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */; }; + C28D3CF120D3DAA30027F4D6 /* DeepLinkInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */; }; + C29340F41F5081280074991E /* UpdateGroupSpecificStickerset.swift in Sources */ = {isa = PBXBuildFile; fileRef = C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */; }; + C2A315C01E2E776A00D89000 /* RequestStartBot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749581E1092BC0057C89A /* RequestStartBot.swift */; }; + C2E0646E1ECF171E00387BB8 /* TelegramMediaWebDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */; }; + C2F4ED1E1EC60064005F2696 /* RateCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F4ED1C1EC60064005F2696 /* RateCall.swift */; }; + C2FD33E21E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */; }; + C2FD33E51E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */; }; + C2FD33EC1E696C79008D13D4 /* GroupsInCommon.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */; }; + D001F3E81E128A1C007A8C60 /* ChannelState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CFF1D62255C00955575 /* ChannelState.swift */; }; + D001F3EA1E128A1C007A8C60 /* TelegramPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */; }; + D001F3EB1E128A1C007A8C60 /* EnqueueMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D001D62255C00955575 /* EnqueueMessage.swift */; }; + D001F3EC1E128A1C007A8C60 /* Holes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D011D62255C00955575 /* Holes.swift */; }; + D001F3EE1E128A1C007A8C60 /* AccountStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495D1E118F790057C89A /* AccountStateManager.swift */; }; + D001F3EF1E128A1C007A8C60 /* AccountIntermediateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495F1E118FC30057C89A /* AccountIntermediateState.swift */; }; + D001F3F01E128A1C007A8C60 /* AccountStateManagementUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */; }; + D001F3F11E128A1C007A8C60 /* SynchronizePeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */; }; + D001F3F21E128A1C007A8C60 /* UpdateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D051D62255C00955575 /* UpdateGroup.swift */; }; + D001F3F31E128A1C007A8C60 /* UpdateMessageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D061D62255C00955575 /* UpdateMessageService.swift */; }; + D001F3F41E128A1C007A8C60 /* UpdatesApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */; }; + D001F3F51E128A1C007A8C60 /* PendingMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */; }; + D001F3F61E128A1C007A8C60 /* PendingMessageUploadedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */; }; + D001F3F71E128A1C007A8C60 /* ApplyUpdateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */; }; + D00422D421677F4500719B67 /* ManagedAccountPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00422D221677F4500719B67 /* ManagedAccountPresence.swift */; }; + D00BDA1A1EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */; }; + D00BDA1D1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */; }; + D00C7CCD1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */; }; + D00C7CE11E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */; }; + D00C7CEC1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */; }; + D00D343D1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */; }; + D00D34431E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */; }; + D00D34461E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */; }; + D00D97C81E32901700E5C2B6 /* PeerInputActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */; }; + D00D97CB1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */; }; + D00DBBD81E64E41100DB5485 /* CreateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */; }; + D00DBBDB1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */; }; + D0119CB120CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */; }; + D013630A208F6E2800EB3653 /* SecureIdValueContentError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */; }; + D014193922AE6B85008667CB /* ChannelOwnershipTransfer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */; }; + D014193A22AE6B85008667CB /* PeersNearby.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778F22AAABC600CD99F5 /* PeersNearby.swift */; }; + D015E00F225CA61100CB9E8A /* FindChannelById.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E00D225CA61100CB9E8A /* FindChannelById.swift */; }; + D01843A92190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */; }; + D018D3381E648ACF00C5E089 /* ChannelCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3361E648ACF00C5E089 /* ChannelCreation.swift */; }; + D018EE0320458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */; }; + D018EE062045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */; }; + D019B1CD1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */; }; + D01A21A71F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */; }; + D01A21AA1F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */; }; + D01B264A23324CF900A6448B /* Wallets.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B264823324CF800A6448B /* Wallets.swift */; }; + D01C06B81FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */; }; + D01C7ED41EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */; }; + D01C7ED71EF5E468008305F1 /* ProxySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED51EF5E468008305F1 /* ProxySettings.swift */; }; + D01C7F051EFC1C49008305F1 /* DeviceContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F031EFC1C49008305F1 /* DeviceContact.swift */; }; + D01D6BFA1E42A718006151C6 /* SearchStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BF81E42A713006151C6 /* SearchStickers.swift */; }; + D020F00722F19C8F00BE699A /* ManagedAnimatedEmojiUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */; }; + D021E7E92306EC03002F8BD1 /* ScheduledMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */; }; + D021E7EA2306EC03002F8BD1 /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; + D0223A991EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */; }; + D02395D71F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */; }; + D023E67921540624008C27D1 /* UpdateMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023E67721540624008C27D1 /* UpdateMessageMedia.swift */; }; + D026099F20C695AF006C34AC /* Wallpapers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D026099D20C695AF006C34AC /* Wallpapers.swift */; }; + D02ABC7C1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */; }; + D02ABC7F1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */; }; + D02ABC821E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */; }; + D02D60A8206BA5F900FEFE1E /* SecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */; }; + D02D60AC206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */; }; + D02DADC22139A1FC00116225 /* ContactSyncManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02DADC02139A1FC00116225 /* ContactSyncManager.swift */; }; + D0329EA322FC5A7C00F9F071 /* MessageReactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */; }; + D0329EA622FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */; }; + D032F5BD20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */; }; + D0338744223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */; }; + D033FEB11E61EB0200644997 /* PeerContactSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */; }; + D033FEB41E61F3C000644997 /* ReportPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB21E61F3C000644997 /* ReportPeer.swift */; }; + D033FEB71E61F3F900644997 /* BlockedPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB51E61F3F900644997 /* BlockedPeers.swift */; }; + D03413F1231323CE00B555F3 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B5230FBB2B005C2E08 /* Theme.swift */; }; + D03413F3231325B300B555F3 /* Themes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B3230FB70B005C2E08 /* Themes.swift */; }; + D0380DBB204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */; }; + D03C53671DAD5CA9004C17B3 /* ApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDA1D62245F00955575 /* ApiUtils.swift */; }; + D03C53681DAD5CA9004C17B3 /* PeerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD81D62245B00955575 /* PeerUtils.swift */; }; + D03C53691DAD5CA9004C17B3 /* PeerAccessRestrictionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */; }; + D03C536A1DAD5CA9004C17B3 /* TelegramUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD41D62245300955575 /* TelegramUser.swift */; }; + D03C536B1DAD5CA9004C17B3 /* TelegramGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD51D62245300955575 /* TelegramGroup.swift */; }; + D03C536C1DAD5CA9004C17B3 /* TelegramChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */; }; + D03C536D1DAD5CA9004C17B3 /* ApiGroupOrChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */; }; + D03C536E1DAD5CA9004C17B3 /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003702A1DA42586004308D3 /* PhoneNumber.swift */; }; + D03C536F1DAD5CA9004C17B3 /* BotInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */; }; + D03C53701DAD5CA9004C17B3 /* ExportedInvitation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */; }; + D03C53711DAD5CA9004C17B3 /* CachedGroupParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */; }; + D03C53741DAD5CA9004C17B3 /* CachedChannelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */; }; + D03C53751DAD5CA9004C17B3 /* TelegramUserPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */; }; + D03DC9111F82E344001D584C /* AccountStateReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC90F1F82E344001D584C /* AccountStateReset.swift */; }; + D041E3F61E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; + D041E3F91E535A88008C24B4 /* RemovePeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */; }; + D042C6841E8D9DF800C863B0 /* Unixtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = D042C6821E8D9DF800C863B0 /* Unixtime.swift */; }; + D0439B5E228ECB270067E026 /* RequestPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */; }; + D0448C8F1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */; }; + D0448C921E251F96005A61A7 /* SecretChatEncryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */; }; + D0448CA01E27F5EB005A61A7 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C9E1E27F5EB005A61A7 /* Random.swift */; }; + D0448CA31E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */; }; + D0448CA61E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */; }; + D04554A721B43440007A6DD9 /* CancelAccountReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04554A521B43440007A6DD9 /* CancelAccountReset.swift */; }; + D0467D0C20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */; }; + D0467D1620D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */; }; + D048B4AD20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */; }; + D049EAD91E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */; }; + D049EAEC1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */; }; + D049EAF61E44DF3300A2CD3A /* AccountState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAF41E44DF3300A2CD3A /* AccountState.swift */; }; + D04CAA5B1E83310D0047E51F /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04CAA591E83310D0047E51F /* MD5.swift */; }; + D04D21372306EC9A00609388 /* MacInternalUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D21362306EC9A00609388 /* MacInternalUpdater.swift */; }; + D04D8FF5209A4B0700865719 /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D8FF3209A4B0700865719 /* NetworkSettings.swift */; }; + D050F2521E4A59C200988324 /* JoinLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F2501E4A59C200988324 /* JoinLink.swift */; }; + D050F2611E4A5AE700988324 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */; }; + D050F2621E4A5AE700988324 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */; }; + D050F2641E4A5AEB00988324 /* ManagedSynchronizePinnedChatsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */; }; + D050F26A1E4A5B6D00988324 /* ManagedGlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */; }; + D050F26B1E4A5B6D00988324 /* ApplyMaxReadIndexInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */; }; + D050F26C1E4A5B6D00988324 /* UpdatePeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */; }; + D050F26D1E4A5B6D00988324 /* CreateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */; }; + D050F26E1E4A5B6D00988324 /* RemovePeerChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */; }; + D051DB15215EC5A300F30F92 /* AppChangelogState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB13215EC5A300F30F92 /* AppChangelogState.swift */; }; + D051DB18215ECC4D00F30F92 /* AppChangelog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB16215ECC4D00F30F92 /* AppChangelog.swift */; }; + D0528E5B1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */; }; + D0528E611E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */; }; + D0528E661E65C82400E2FEF5 /* UpdateContactName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */; }; + D0528E6B1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */; }; + D0529D2521A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */; }; + D0529D2821A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */; }; + D05452081E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */; }; + D054648C2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */; }; + D054648F20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */; }; + D054649220738653002ECC1E /* SecureIdIDCardValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649020738653002ECC1E /* SecureIdIDCardValue.swift */; }; + D0546495207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */; }; + D05464982073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */; }; + D054649B20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */; }; + D0561DE41E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */; }; + D0561DEB1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */; }; + D0575AF21E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */; }; + D0575AF51E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */; }; + D0575C2E22B922DF00A71A0E /* DeleteAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */; }; + D058E0D21E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */; }; + D05A32E21E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */; }; + D05A32E51E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */; }; + D05A32E81E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */; }; + D05D8B382192F8AF0064586F /* LocalizationListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B362192F8AF0064586F /* LocalizationListState.swift */; }; + D05FDC3922CA45070060BFE3 /* AppUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EC0DE822C6825D00E7185B /* AppUpdate.swift */; }; + D0613FCB1E60440600202CDB /* InvitationLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FC91E60440600202CDB /* InvitationLinks.swift */; }; + D0613FD01E60520700202CDB /* ChannelMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FCE1E60520700202CDB /* ChannelMembers.swift */; }; + D0613FD81E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */; }; + D0633CD32253A528003DD95F /* ChatOnlineMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */; }; + D0633CDC2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */; }; + D0642EFA1F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */; }; + D06CA13622772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */; }; + D06ECFC920B810D300C576C2 /* TermsOfService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC720B810D300C576C2 /* TermsOfService.swift */; }; + D07047B81F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */; }; + D072F358231542740009E66F /* MessageReactionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D072F356231542740009E66F /* MessageReactionList.swift */; }; + D073CE6C1DCBCF17007511FD /* TextEntitiesMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */; }; + D073CEA11DCBF3D3007511FD /* StickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DE1DB539FC00C6B04F /* StickerPack.swift */; }; + D073CEA41DCBF3EA007511FD /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */; }; + D073CEA51DCBF3F5007511FD /* StickerManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0E11DB5401A00C6B04F /* StickerManagement.swift */; }; + D0754D2B1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */; }; + D076F88A2296D8F6004F895A /* ManageChannelDiscussionGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */; }; + D07E4140208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */; }; + D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E109217F5ADE003CD921 /* LocalizationPreview.swift */; }; + D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */; }; + D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; }; + D08984F621187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; }; + D08CAA811ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */; }; + D08CAA881ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */; }; + D08CAA8D1ED81EDF0000FDA8 /* Localizations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */; }; + D08F4A6A1E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */; }; + D093D7EF206413F600BC3599 /* SecureIdDataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */; }; + D093D7F620641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */; }; + D093D7FA20641AA500BC3599 /* SecureIdEmailValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */; }; + D098908022942E3B0053F151 /* ActiveSessionsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */; }; + D099D74A1EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */; }; + D099E223229420D600561B75 /* BlockedPeersContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E221229420D600561B75 /* BlockedPeersContext.swift */; }; + D0A3E448214802C7008ACEF6 /* VoipConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */; }; + D0A472B71F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */; }; + D0A89990217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */; }; + D0AAD1B91E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */; }; + D0AB262721C2F991008F6685 /* TelegramMediaPoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */; }; + D0AB262C21C3CE80008F6685 /* Polls.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262A21C3CE80008F6685 /* Polls.swift */; }; + D0AD02E41FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */; }; + D0ADF912212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */; }; + D0AF32231FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */; }; + D0AF32321FACEDEC0097362B /* CoreSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32301FACEDEC0097362B /* CoreSettings.swift */; }; + D0B1671E1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */; }; + D0B167241F9F972E00976B40 /* LoggingSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B167221F9F972E00976B40 /* LoggingSettings.swift */; }; + D0B4186B1D7E03D5004562A4 /* TelegramCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B418691D7E03D5004562A4 /* TelegramCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0B4188E1D7E0578004562A4 /* StoreMessage_Telegram.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */; }; + D0B418941D7E0580004562A4 /* TelegramMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */; }; + D0B418961D7E0580004562A4 /* TelegramMediaFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */; }; + D0B418971D7E0580004562A4 /* TelegramMediaImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */; }; + D0B418991D7E0580004562A4 /* TelegramMediaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF11D62250800955575 /* TelegramMediaMap.swift */; }; + D0B4189B1D7E0580004562A4 /* TelegramMediaWebpage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */; }; + D0B418A61D7E0592004562A4 /* CloudFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */; }; + D0B418A71D7E0592004562A4 /* Fetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D391D6319E200955575 /* Fetch.swift */; }; + D0B418AA1D7E0597004562A4 /* Download.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D561D631A6900955575 /* Download.swift */; }; + D0B418AB1D7E0597004562A4 /* MultipartFetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D571D631A6900955575 /* MultipartFetch.swift */; }; + D0B418AC1D7E0597004562A4 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D581D631A6900955575 /* Network.swift */; }; + D0B418AD1D7E0597004562A4 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D591D631A6900955575 /* Serialization.swift */; }; + D0B418B81D7E05A6004562A4 /* ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D6C1D631AA300955575 /* ContactManagement.swift */; }; + D0B8440D1DAB91CD005F29E1 /* ImageRepresentationsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */; }; + D0B8440E1DAB91CD005F29E1 /* MessageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */; }; + D0B8440F1DAB91CD005F29E1 /* Either.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CB81D62233400955575 /* Either.swift */; }; + D0B844111DAB91CD005F29E1 /* Regex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBC1D62234300955575 /* Regex.swift */; }; + D0B844121DAB91CD005F29E1 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBE1D62234A00955575 /* Log.swift */; }; + D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CC01D62235000955575 /* StringFormat.swift */; }; + D0B844431DAB91FD005F29E1 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D611D631A8B00955575 /* Account.swift */; }; + D0B844451DAB91FD005F29E1 /* AccountViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D631D631A8B00955575 /* AccountViewTracker.swift */; }; + D0B844461DAB91FD005F29E1 /* RecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D641D631A8B00955575 /* RecentPeers.swift */; }; + D0B844471DAB91FD005F29E1 /* ManagedServiceViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */; }; + D0B844481DAB91FD005F29E1 /* ManagedMessageHistoryHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */; }; + D0B844491DAB91FD005F29E1 /* ManagedChatListHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */; }; + D0B8444B1DAB91FD005F29E1 /* ManagedSynchronizePeerReadStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */; }; + D0B8444C1DAB91FD005F29E1 /* UpdateCachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */; }; + D0B85AC61F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */; }; + D0BAAA15230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */; }; + D0BC387C1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */; }; + D0BE303B20619EE800FBE6D8 /* SecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */; }; + D0BE303E2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */; }; + D0BE304C20627D9800FBE6D8 /* AccessSecureId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */; }; + D0BEAF5E1E54941B00BD963D /* Authorization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5C1E54941B00BD963D /* Authorization.swift */; }; + D0BEAF611E54ACF900BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */; }; + D0C0B58B1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */; }; + D0C0B58E1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */; }; + D0C26D671FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */; }; + D0C26D6A1FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */; }; + D0C26D6D1FE286C3004ABF18 /* FetchChatList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */; }; + D0C27B401F4B51D000A4E170 /* CachedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */; }; + D0C27B431F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */; }; + D0C44B621FC616E200227BE0 /* SearchGroupMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */; }; + D0C48F3D1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */; }; + D0C50E351E93A86600F62E39 /* CallSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E331E93A86600F62E39 /* CallSessionManager.swift */; }; + D0CA3F85207391560042D2B6 /* SecureIdPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */; }; + D0CA8E4C227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */; }; + D0D376E722DCCFD600FA7D7C /* SlowMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D376E522DCCFD600FA7D7C /* SlowMode.swift */; }; + D0D748031E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */; }; + D0DA1D331F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */; }; + D0DB7F041F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */; }; + D0DC35511DE36908000195EB /* RequestChatContextResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */; }; + D0DC35521DE36908000195EB /* ChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354F1DE36900000195EB /* ChatContextResult.swift */; }; + D0DFD5E01FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */; }; + D0E23DDB1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */; }; + D0E23DE01E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */; }; + D0E305A81E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */; }; + D0E305AB1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */; }; + D0E35A141DE4C69C00BC6096 /* FetchHttpResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */; }; + D0E35A151DE4C6A200BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */; }; + D0E412D8206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */; }; + D0E412DD206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */; }; + D0E412E2206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */; }; + D0E412E8206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */; }; + D0E412EB206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */; }; + D0E412EF206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */; }; + D0E412F2206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */; }; + D0E412F5206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */; }; + D0E41302206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */; }; + D0E652201E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */; }; + D0E8174A2010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */; }; + D0E8B8B42044706300605593 /* ForwardGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8B22044706300605593 /* ForwardGame.swift */; }; + D0EC559B2101ED0800D1992C /* DeleteMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55992101ED0800D1992C /* DeleteMessages.swift */; }; + D0EE7FC220986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */; }; + D0EE7FC520986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */; }; + D0EE7FC82098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */; }; + D0F02CE61E9926C50065DEE2 /* ManagedConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */; }; + D0F19F6720E6621000EEC860 /* MultiplexedRequestManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */; }; + D0F3A8A01E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */; }; + D0F3A8A31E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */; }; + D0F3A8A91E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */; }; + D0F3CC791DDE2859008148FA /* SearchMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D711D631ABA00955575 /* SearchMessages.swift */; }; + D0F3CC7A1DDE2859008148FA /* RequestMessageActionCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */; }; + D0F3CC7B1DDE2859008148FA /* RequestEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */; }; + D0F53BEA1E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */; }; + D0F760D922202FE20074F7E5 /* ChannelStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760D722202FE20074F7E5 /* ChannelStats.swift */; }; + D0F7AB301DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */; }; + D0F7B1E31E045C7B007EB8A5 /* RichText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827CA1E02F5B200071108 /* RichText.swift */; }; + D0F7B1E41E045C7B007EB8A5 /* InstantPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C81E02F59C00071108 /* InstantPage.swift */; }; + D0F7B1E71E045C87007EB8A5 /* JoinChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */; }; + D0F7B1E81E045C87007EB8A5 /* PeerParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */; }; + D0F7B1E91E045C87007EB8A5 /* PeerCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */; }; + D0F7B1EA1E045C87007EB8A5 /* ChangePeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */; }; + D0F7B1EB1E045C87007EB8A5 /* ResolvePeerByName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */; }; + D0F7B1EC1E045C87007EB8A5 /* SearchPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827BA1E00451F00071108 /* SearchPeers.swift */; }; + D0F8C3A12017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */; }; + D0FA08BC2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */; }; + D0FA35061EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */; }; + D0FA35091EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */; }; + D0FA8B991E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */; }; + D0FA8B9F1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */; }; + D0FA8BA21E1F99E1001E855B /* SecretChatFileReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */; }; + D0FA8BAB1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */; }; + D0FA8BAE1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */; }; + D0FA8BB11E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */; }; + D0FA8BB41E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0900555521E4A96D0030924C /* Wallpaper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallpaper.swift; sourceTree = ""; }; + 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedVoipConfigurationUpdates.swift; sourceTree = ""; }; + 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransfer.swift; sourceTree = ""; }; + 090E778F22AAABC600CD99F5 /* PeersNearby.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeersNearby.swift; sourceTree = ""; }; + 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAnimatedEmojiUpdates.swift; sourceTree = ""; }; + 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeEmojiKeywordsOperations.swift; sourceTree = ""; }; + 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeEmojiKeywordsOperation.swift; sourceTree = ""; }; + 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiKeywords.swift; sourceTree = ""; }; + 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAppConfigurationUpdates.swift; sourceTree = ""; }; + 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeAppLogEventsOperation.swift; sourceTree = ""; }; + 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeAppLogEventsOperations.swift; sourceTree = ""; }; + 0962E66C21B5C56F00245FD9 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = ""; }; + 0962E66E21B6147600245FD9 /* AppConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfiguration.swift; sourceTree = ""; }; + 0962E67421B6437600245FD9 /* SplitTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitTest.swift; sourceTree = ""; }; + 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBotsConfiguration.swift; sourceTree = ""; }; + 09B4A9B3230FB70B005C2E08 /* Themes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themes.swift; sourceTree = ""; }; + 09B4A9B5230FBB2B005C2E08 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; + 09EC0DE822C6825D00E7185B /* AppUpdate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdate.swift; sourceTree = ""; }; + 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadSettings.swift; sourceTree = ""; }; + 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAutodownloadSettingsUpdates.swift; sourceTree = ""; }; + 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingScheduleInfoMessageAttribute.swift; sourceTree = ""; }; + 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduledMessages.swift; sourceTree = ""; }; + 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationExceptionsList.swift; sourceTree = ""; }; + 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentWebSessions.swift; sourceTree = ""; }; + A7D281D7236C25370000A9BF /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281D9236C253C0000A9BF /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281DB236C25440000A9BF /* MtProtoKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281DD236C25500000A9BF /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281DF236C25580000A9BF /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281E1236C25710000A9BF /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281E3236C257C0000A9BF /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281E9236C27030000A9BF /* MtProtoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281EB236C2FAD0000A9BF /* SyncCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SyncCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D281EE236C32900000A9BF /* NetworkLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NetworkLogging.m; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/NetworkLogging.m"; sourceTree = ""; }; + A7D281EF236C32900000A9BF /* NetworkLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkLogging.h; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/NetworkLogging.h"; sourceTree = ""; }; + A7D281F2236C32A00000A9BF /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/Reachability.h"; sourceTree = ""; }; + A7D281F3236C32A00000A9BF /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/Reachability.m"; sourceTree = ""; }; + A7D281F6236C32AA0000A9BF /* Crypto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Crypto.m; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/Crypto.m"; sourceTree = ""; }; + A7D281F7236C32AA0000A9BF /* Crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Crypto.h; path = "../../../submodules/telegram-ios/submodules/TelegramCore/Sources/Crypto.h"; sourceTree = ""; }; + A7D281FA236C34660000A9BF /* SynchronizeInstalledStickerPacksOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeInstalledStickerPacksOperation.swift; sourceTree = ""; }; + A7D281FC236C35E30000A9BF /* TelegramMediaWebFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebFile.swift; sourceTree = ""; }; + C205FEA71EB3B75900455808 /* ExportMessageLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportMessageLink.swift; sourceTree = ""; }; + C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceReferenceMessageAttribute.swift; sourceTree = ""; }; + C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToggleChannelSignatures.swift; sourceTree = ""; }; + C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminEventLogs.swift; sourceTree = ""; }; + C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupReturnAndLeft.swift; sourceTree = ""; }; + C2366C851E4F403C0097CCFF /* AddressNames.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressNames.swift; sourceTree = ""; }; + C2366C881E4F40480097CCFF /* SupportPeerId.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SupportPeerId.swift; sourceTree = ""; }; + C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadMessagesIfNecessary.swift; sourceTree = ""; }; + C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePinnedMessage.swift; sourceTree = ""; }; + C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportContact.swift; sourceTree = ""; }; + C251D7421E65E50500283EDE /* StickerSetInstallation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerSetInstallation.swift; sourceTree = ""; }; + C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationInfoMessageAttribute.swift; sourceTree = ""; }; + C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkInfo.swift; sourceTree = ""; }; + C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateGroupSpecificStickerset.swift; sourceTree = ""; }; + C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaInvoice.swift; sourceTree = ""; }; + C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebDocument.swift; sourceTree = ""; }; + C2F4ED1C1EC60064005F2696 /* RateCall.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RateCall.swift; sourceTree = ""; }; + C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestUserPhotos.swift; sourceTree = ""; }; + C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPhotoUpdater.swift; sourceTree = ""; }; + C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommon.swift; sourceTree = ""; }; + D003702A1DA42586004308D3 /* PhoneNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumber.swift; sourceTree = ""; }; + D00422D221677F4500719B67 /* ManagedAccountPresence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAccountPresence.swift; sourceTree = ""; }; + D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountEnvironmentAttribute.swift; sourceTree = ""; }; + D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannelAdminRights.swift; sourceTree = ""; }; + D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannelBannedRights.swift; sourceTree = ""; }; + D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedChannelParticipants.swift; sourceTree = ""; }; + D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkMessageContentAsConsumedInteractively.swift; sourceTree = ""; }; + D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetSecretChatMessageAutoremoveTimeoutInteractively.swift; sourceTree = ""; }; + D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TeleramMediaUnsupported.swift; sourceTree = ""; }; + D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaGame.swift; sourceTree = ""; }; + D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumableContentMessageAttribute.swift; sourceTree = ""; }; + D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeConsumeMessageContentsOperations.swift; sourceTree = ""; }; + D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeConsumeMessageContentsOperation.swift; sourceTree = ""; }; + D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInputActivity.swift; sourceTree = ""; }; + D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInputActivityManager.swift; sourceTree = ""; }; + D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateSecretChat.swift; sourceTree = ""; }; + D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateSecretChat.swift; sourceTree = ""; }; + D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkAllChatsAsRead.swift; sourceTree = ""; }; + D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValueContentError.swift; sourceTree = ""; }; + D015E00D225CA61100CB9E8A /* FindChannelById.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FindChannelById.swift; sourceTree = ""; }; + D01749581E1092BC0057C89A /* RequestStartBot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestStartBot.swift; sourceTree = ""; }; + D017495D1E118F790057C89A /* AccountStateManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountStateManager.swift; sourceTree = ""; }; + D017495F1E118FC30057C89A /* AccountIntermediateState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountIntermediateState.swift; sourceTree = ""; }; + D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatState.swift; sourceTree = ""; }; + D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmTwoStepRecoveryEmail.swift; sourceTree = ""; }; + D018D3361E648ACF00C5E089 /* ChannelCreation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelCreation.swift; sourceTree = ""; }; + D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatLayerNegotiation.swift; sourceTree = ""; }; + D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckPeerChatServiceActions.swift; sourceTree = ""; }; + D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatRekeySession.swift; sourceTree = ""; }; + D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedStickersOperation.swift; sourceTree = ""; }; + D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeSavedStickersOperations.swift; sourceTree = ""; }; + D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SavedStickerItem.swift; sourceTree = ""; }; + D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestMessageActionCallback.swift; sourceTree = ""; }; + D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestEditMessage.swift; sourceTree = ""; }; + D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplyUpdateMessage.swift; sourceTree = ""; }; + D01B264823324CF800A6448B /* Wallets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallets.swift; sourceTree = ""; }; + D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivacySettings.swift; sourceTree = ""; }; + D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CanSendMessagesToPeer.swift; sourceTree = ""; }; + D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LimitsConfiguration.swift; sourceTree = ""; }; + D01C7ED51EF5E468008305F1 /* ProxySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProxySettings.swift; sourceTree = ""; }; + D01C7F031EFC1C49008305F1 /* DeviceContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceContact.swift; sourceTree = ""; }; + D01D6BF81E42A713006151C6 /* SearchStickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchStickers.swift; sourceTree = ""; }; + D0208AF32306E92B00A23503 /* libphonenumbermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumbermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D021E0DE1DB539FC00C6B04F /* StickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPack.swift; sourceTree = ""; }; + D021E0E11DB5401A00C6B04F /* StickerManagement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerManagement.swift; sourceTree = ""; }; + D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceNetworkStatsTag.swift; sourceTree = ""; }; + D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaResource.swift; sourceTree = ""; }; + D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelHistoryAvailabilitySettings.swift; sourceTree = ""; }; + D023E67721540624008C27D1 /* UpdateMessageMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageMedia.swift; sourceTree = ""; }; + D026099D20C695AF006C34AC /* Wallpapers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallpapers.swift; sourceTree = ""; }; + D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteMessagesInteractively.swift; sourceTree = ""; }; + D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudChatRemoveMessagesOperation.swift; sourceTree = ""; }; + D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedCloudChatRemoveMessagesOperations.swift; sourceTree = ""; }; + D02B198F21FB1D520094A764 /* RegisterNotificationToken.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterNotificationToken.swift; sourceTree = ""; }; + D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValue.swift; sourceTree = ""; }; + D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifySecureIdValue.swift; sourceTree = ""; }; + D02DADC02139A1FC00116225 /* ContactSyncManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactSyncManager.swift; sourceTree = ""; }; + D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramPeerNotificationSettings.swift; sourceTree = ""; }; + D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactions.swift; sourceTree = ""; }; + D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionsMessageAttribute.swift; sourceTree = ""; }; + D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedMediaResource.swift; sourceTree = ""; }; + D033873F223BD48B007A2CE4 /* ContactsSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsSettings.swift; sourceTree = ""; }; + D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitializeAccountAfterLogin.swift; sourceTree = ""; }; + D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerContactSettings.swift; sourceTree = ""; }; + D033FEB21E61F3C000644997 /* ReportPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportPeer.swift; sourceTree = ""; }; + D033FEB51E61F3F900644997 /* BlockedPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlockedPeers.swift; sourceTree = ""; }; + D035732E22B5C24F00F0920D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageMediaPreuploadManager.swift; sourceTree = ""; }; + D03B0CB81D62233400955575 /* Either.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Either.swift; sourceTree = ""; }; + D03B0CBC1D62234300955575 /* Regex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Regex.swift; sourceTree = ""; }; + D03B0CBE1D62234A00955575 /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; + D03B0CC01D62235000955575 /* StringFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringFormat.swift; sourceTree = ""; }; + D03B0CCD1D62239600955575 /* PhoneNumbers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumbers.swift; sourceTree = ""; }; + D03B0CD21D62244300955575 /* Namespaces.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Namespaces.swift; sourceTree = ""; }; + D03B0CD41D62245300955575 /* TelegramUser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUser.swift; sourceTree = ""; }; + D03B0CD51D62245300955575 /* TelegramGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramGroup.swift; sourceTree = ""; }; + D03B0CD81D62245B00955575 /* PeerUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerUtils.swift; sourceTree = ""; }; + D03B0CDA1D62245F00955575 /* ApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiUtils.swift; sourceTree = ""; }; + D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreMessage_Telegram.swift; sourceTree = ""; }; + D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InlineBotMessageAttribute.swift; sourceTree = ""; }; + D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextEntitiesMessageAttribute.swift; sourceTree = ""; }; + D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMessageAttribute.swift; sourceTree = ""; }; + D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewCountMessageAttribute.swift; sourceTree = ""; }; + D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaAction.swift; sourceTree = ""; }; + D03B0CED1D62250800955575 /* TelegramMediaContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaContact.swift; sourceTree = ""; }; + D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaFile.swift; sourceTree = ""; }; + D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaImage.swift; sourceTree = ""; }; + D03B0CF11D62250800955575 /* TelegramMediaMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaMap.swift; sourceTree = ""; }; + D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebpage.swift; sourceTree = ""; }; + D03B0CFF1D62255C00955575 /* ChannelState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelState.swift; sourceTree = ""; }; + D03B0D001D62255C00955575 /* EnqueueMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnqueueMessage.swift; sourceTree = ""; }; + D03B0D011D62255C00955575 /* Holes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Holes.swift; sourceTree = ""; }; + D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountStateManagementUtils.swift; sourceTree = ""; }; + D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePeerReadState.swift; sourceTree = ""; }; + D03B0D051D62255C00955575 /* UpdateGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateGroup.swift; sourceTree = ""; }; + D03B0D061D62255C00955575 /* UpdateMessageService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateMessageService.swift; sourceTree = ""; }; + D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatesApiUtils.swift; sourceTree = ""; }; + D03B0D391D6319E200955575 /* Fetch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Fetch.swift; sourceTree = ""; }; + D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudFileMediaResource.swift; sourceTree = ""; }; + D03B0D561D631A6900955575 /* Download.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Download.swift; sourceTree = ""; }; + D03B0D571D631A6900955575 /* MultipartFetch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultipartFetch.swift; sourceTree = ""; }; + D03B0D581D631A6900955575 /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = ""; }; + D03B0D591D631A6900955575 /* Serialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Serialization.swift; sourceTree = ""; }; + D03B0D611D631A8B00955575 /* Account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; }; + D03B0D631D631A8B00955575 /* AccountViewTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountViewTracker.swift; sourceTree = ""; }; + D03B0D641D631A8B00955575 /* RecentPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeers.swift; sourceTree = ""; }; + D03B0D6C1D631AA300955575 /* ContactManagement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactManagement.swift; sourceTree = ""; }; + D03B0D711D631ABA00955575 /* SearchMessages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchMessages.swift; sourceTree = ""; }; + D03B0E571D631EB900955575 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + D03B0E591D63215200955575 /* TelegramCore.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramCore.xcconfig; path = "../../submodules/telegram-ios/submodules/TelegramCore/Sources/Config/TelegramCore.xcconfig"; sourceTree = ""; }; + D03B0E5D1D6327F600955575 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03B0E5F1D6327FF00955575 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + D03B0E611D63281A00955575 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "third-party/FFmpeg-iOS/lib/libavcodec.a"; sourceTree = ""; }; + D03B0E621D63281A00955575 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = "third-party/FFmpeg-iOS/lib/libavformat.a"; sourceTree = ""; }; + D03B0E631D63281A00955575 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "third-party/FFmpeg-iOS/lib/libavutil.a"; sourceTree = ""; }; + D03B0E641D63281A00955575 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "third-party/FFmpeg-iOS/lib/libswresample.a"; sourceTree = ""; }; + D03B0E691D63283000955575 /* libwebp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libwebp.a; path = "third-party/libwebp/lib/libwebp.a"; sourceTree = ""; }; + D03B0E6B1D63283C00955575 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; + D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultipartUpload.swift; sourceTree = ""; }; + D03DC90F1F82E344001D584C /* AccountStateReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountStateReset.swift; sourceTree = ""; }; + D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; + D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; + D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E45D32305D44A0049C28B /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; + D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = ""; }; + D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = ""; }; + D042C6821E8D9DF800C863B0 /* Unixtime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Unixtime.swift; sourceTree = ""; }; + D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestPhoneNumber.swift; sourceTree = ""; }; + D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentRequiresValidationMessageAttribute.swift; sourceTree = ""; }; + D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProcessSecretChatIncomingDecryptedOperations.swift; sourceTree = ""; }; + D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatEncryption.swift; sourceTree = ""; }; + D0448C9E1E27F5EB005A61A7 /* Random.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Random.swift; sourceTree = ""; }; + D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchSecretFileResource.swift; sourceTree = ""; }; + D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceApiUtils.swift; sourceTree = ""; }; + D04554A521B43440007A6DD9 /* CancelAccountReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CancelAccountReset.swift; sourceTree = ""; }; + D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingContentInfoMessageAttribute.swift; sourceTree = ""; }; + D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeMarkAllUnseenPersonalMessagesOperation.swift; sourceTree = ""; }; + D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift; sourceTree = ""; }; + D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedProxyInfoUpdates.swift; sourceTree = ""; }; + D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentMediaItem.swift; sourceTree = ""; }; + D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedRecentStickers.swift; sourceTree = ""; }; + D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeerItem.swift; sourceTree = ""; }; + D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentlySearchedPeerIds.swift; sourceTree = ""; }; + D049EAF41E44DF3300A2CD3A /* AccountState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountState.swift; sourceTree = ""; }; + D04CAA591E83310D0047E51F /* MD5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MD5.swift; sourceTree = ""; }; + D04D21362306EC9A00609388 /* MacInternalUpdater.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MacInternalUpdater.swift; sourceTree = ""; }; + D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WasScheduledMessageAttribute.swift; sourceTree = ""; }; + D04D8FF3209A4B0700865719 /* NetworkSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSettings.swift; sourceTree = ""; }; + D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InteractivePhoneFormatter.swift; sourceTree = ""; }; + D050F2501E4A59C200988324 /* JoinLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinLink.swift; sourceTree = ""; }; + D051DB13215EC5A300F30F92 /* AppChangelogState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppChangelogState.swift; sourceTree = ""; }; + D051DB16215ECC4D00F30F92 /* AppChangelog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppChangelog.swift; sourceTree = ""; }; + D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedLocalInputActivities.swift; sourceTree = ""; }; + D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleMessageView.swift; sourceTree = ""; }; + D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateContactName.swift; sourceTree = ""; }; + D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebpagePreview.swift; sourceTree = ""; }; + D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; + D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; + D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorSignatureMessageAttribute.swift; sourceTree = ""; }; + D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaExpiredContent.swift; sourceTree = ""; }; + D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadedStickerPack.swift; sourceTree = ""; }; + D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPersonalDetailsValue.swift; sourceTree = ""; }; + D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdDriversLicenseValue.swift; sourceTree = ""; }; + D054649020738653002ECC1E /* SecureIdIDCardValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdIDCardValue.swift; sourceTree = ""; }; + D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdUtilityBillValue.swift; sourceTree = ""; }; + D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdBankStatementValue.swift; sourceTree = ""; }; + D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdRentalAgreementValue.swift; sourceTree = ""; }; + D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeerInfo.swift; sourceTree = ""; }; + D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdmins.swift; sourceTree = ""; }; + D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedGifsOperation.swift; sourceTree = ""; }; + D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeSavedGifsOperations.swift; sourceTree = ""; }; + D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteAccount.swift; sourceTree = ""; }; + D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StandaloneSendMessage.swift; sourceTree = ""; }; + D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatedAccountPrivacySettings.swift; sourceTree = ""; }; + D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentAccountSessions.swift; sourceTree = ""; }; + D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentAccountSession.swift; sourceTree = ""; }; + D05D8B362192F8AF0064586F /* LocalizationListState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationListState.swift; sourceTree = ""; }; + D0613FC91E60440600202CDB /* InvitationLinks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvitationLinks.swift; sourceTree = ""; }; + D0613FCE1E60520700202CDB /* ChannelMembers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembers.swift; sourceTree = ""; }; + D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertGroupToSupergroup.swift; sourceTree = ""; }; + D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatOnlineMembers.swift; sourceTree = ""; }; + D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudMediaResourceParameters.swift; sourceTree = ""; }; + D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EarliestUnseenPersonalMentionMessage.swift; sourceTree = ""; }; + D06706641D512ADB00DED3E3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D06706651D512ADB00DED3E3 /* Display.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D06706671D512ADB00DED3E3 /* Postbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D06706681D512ADB00DED3E3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D067066E1D512AEB00DED3E3 /* MtProtoKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D069257022D8B526002FC021 /* SecretChatSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatSettings.swift; sourceTree = ""; }; + D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedNotificationSettingsBehaviors.swift; sourceTree = ""; }; + D06ECFC720B810D300C576C2 /* TermsOfService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfService.swift; sourceTree = ""; }; + D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumablePersonalMentionMessageAttribute.swift; sourceTree = ""; }; + D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConsumePersonalMessagesActions.swift; sourceTree = ""; }; + D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumePersonalMessageAction.swift; sourceTree = ""; }; + D072F356231542740009E66F /* MessageReactionList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionList.swift; sourceTree = ""; }; + D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardSourceInfoAttribute.swift; sourceTree = ""; }; + D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingMessageInfoAttribute.swift; sourceTree = ""; }; + D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerAccessHash.swift; sourceTree = ""; }; + D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotPaymentForm.swift; sourceTree = ""; }; + D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageChannelDiscussionGroup.swift; sourceTree = ""; }; + D07827BA1E00451F00071108 /* SearchPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchPeers.swift; sourceTree = ""; }; + D07827C81E02F59C00071108 /* InstantPage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstantPage.swift; sourceTree = ""; }; + D07827CA1E02F5B200071108 /* RichText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RichText.swift; sourceTree = ""; }; + D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServersStatuses.swift; sourceTree = ""; }; + D081E109217F5ADE003CD921 /* LocalizationPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationPreview.swift; sourceTree = ""; }; + D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedGlobalNotificationSettings.swift; sourceTree = ""; }; + D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalNotificationSettings.swift; sourceTree = ""; }; + D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRepresentationWithReference.swift; sourceTree = ""; }; + D08984F12114B97400918162 /* ClearCloudDrafts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearCloudDrafts.swift; sourceTree = ""; }; + D08984F421187ECA00918162 /* NetworkType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkType.swift; sourceTree = ""; }; + D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationSettings.swift; sourceTree = ""; }; + D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuggestedLocalizationEntry.swift; sourceTree = ""; }; + D08CAA831ED8164B0000FDA8 /* Localization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = ""; }; + D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationInfo.swift; sourceTree = ""; }; + D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localizations.swift; sourceTree = ""; }; + D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeInstalledStickerPacksOperations.swift; sourceTree = ""; }; + D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeInstalledStickerPacksOperations.swift; sourceTree = ""; }; + D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdDataTypes.swift; sourceTree = ""; }; + D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPhoneValue.swift; sourceTree = ""; }; + D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdEmailValue.swift; sourceTree = ""; }; + D093D805206539D000BC3599 /* SaveSecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveSecureIdValue.swift; sourceTree = ""; }; + D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActiveSessionsContext.swift; sourceTree = ""; }; + D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMessageStateVersionAttribute.swift; sourceTree = ""; }; + D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoryViewStateValidation.swift; sourceTree = ""; }; + D099E221229420D600561B75 /* BlockedPeersContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockedPeersContext.swift; sourceTree = ""; }; + D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerCommands.swift; sourceTree = ""; }; + D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannel.swift; sourceTree = ""; }; + D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAccessRestrictionInfo.swift; sourceTree = ""; }; + D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageManager.swift; sourceTree = ""; }; + D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageUploadedContent.swift; sourceTree = ""; }; + D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoipConfiguration.swift; sourceTree = ""; }; + D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadedPeer.swift; sourceTree = ""; }; + D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationAutolockReportManager.swift; sourceTree = ""; }; + D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutoremoveTimeoutMessageAttribute.swift; sourceTree = ""; }; + D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplyMaxReadIndexInteractively.swift; sourceTree = ""; }; + D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedAutoremoveMessageOperations.swift; sourceTree = ""; }; + D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedServiceViews.swift; sourceTree = ""; }; + D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedMessageHistoryHoles.swift; sourceTree = ""; }; + D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedChatListHoles.swift; sourceTree = ""; }; + D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizePeerReadStates.swift; sourceTree = ""; }; + D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramMediaPoll.swift; sourceTree = ""; }; + D0AB262A21C3CE80008F6685 /* Polls.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Polls.swift; sourceTree = ""; }; + D0AC49491D7097A400AA55DA /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerLiveLocationsContext.swift; sourceTree = ""; }; + D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdConfiguration.swift; sourceTree = ""; }; + D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandaloneUploadedMedia.swift; sourceTree = ""; }; + D0AF32301FACEDEC0097362B /* CoreSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreSettings.swift; sourceTree = ""; }; + D0AF32341FAE8C6B0097362B /* MultipeerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipeerManager.swift; sourceTree = ""; }; + D0AF32371FAE8C910097362B /* MultipeerConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MultipeerConnectivity.framework; path = System/Library/Frameworks/MultipeerConnectivity.framework; sourceTree = SDKROOT; }; + D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatHistoryPreloadManager.swift; sourceTree = ""; }; + D0B167221F9F972E00976B40 /* LoggingSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingSettings.swift; sourceTree = ""; }; + D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramDeviceContactImportInfo.swift; sourceTree = ""; }; + D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiGroupOrChannel.swift; sourceTree = ""; }; + D0B418671D7E03D5004562A4 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B418691D7E03D5004562A4 /* TelegramCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramCore.h; sourceTree = ""; }; + D0B4186A1D7E03D5004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0B418701D7E0409004562A4 /* PostboxMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = PostboxMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B418711D7E0409004562A4 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B4187E1D7E054E004562A4 /* MtProtoKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedUserData.swift; sourceTree = ""; }; + D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupData.swift; sourceTree = ""; }; + D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedChannelData.swift; sourceTree = ""; }; + D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateCachedPeerData.swift; sourceTree = ""; }; + D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportedInvitation.swift; sourceTree = ""; }; + D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotInfo.swift; sourceTree = ""; }; + D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupParticipants.swift; sourceTree = ""; }; + D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePeerNotificationSettings.swift; sourceTree = ""; }; + D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUserPresence.swift; sourceTree = ""; }; + D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentlyUsedHashtags.swift; sourceTree = ""; }; + D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProcessRemovedMedia.swift; sourceTree = ""; }; + D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelParticipants.swift; sourceTree = ""; }; + D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateGroup.swift; sourceTree = ""; }; + D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeers.swift; sourceTree = ""; }; + D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerChat.swift; sourceTree = ""; }; + D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizePinnedChatsOperations.swift; sourceTree = ""; }; + D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePinnedChatsOperation.swift; sourceTree = ""; }; + D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TogglePeerChatPinned.swift; sourceTree = ""; }; + D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdForm.swift; sourceTree = ""; }; + D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestSecureIdForm.swift; sourceTree = ""; }; + D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessSecureId.swift; sourceTree = ""; }; + D0BEAF5C1E54941B00BD963D /* Authorization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Authorization.swift; sourceTree = ""; }; + D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManager.swift; sourceTree = ""; }; + D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedLocalizationUpdatesOperations.swift; sourceTree = ""; }; + D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeLocalizationUpdatesOperation.swift; sourceTree = ""; }; + D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeGroupedPeersOperation.swift; sourceTree = ""; }; + D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeGroupedPeersOperations.swift; sourceTree = ""; }; + D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchChatList.swift; sourceTree = ""; }; + D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedStickerPack.swift; sourceTree = ""; }; + D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSpecificStickerPack.swift; sourceTree = ""; }; + D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchGroupMembers.swift; sourceTree = ""; }; + D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacksInfo.swift; sourceTree = ""; }; + D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadedPeerFromMessage.swift; sourceTree = ""; }; + D0C50E331E93A86600F62E39 /* CallSessionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallSessionManager.swift; sourceTree = ""; }; + D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPadding.swift; sourceTree = ""; }; + D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeGroupMessageStats.swift; sourceTree = ""; }; + D0CAF2E91D75EC600011F558 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0CC4AA322BA44960088F36D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApiMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSortOrderAttribute.swift; sourceTree = ""; }; + D0D376E522DCCFD600FA7D7C /* SlowMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlowMode.swift; sourceTree = ""; }; + D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackInteractiveOperations.swift; sourceTree = ""; }; + D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedPendingPeerNotificationSettings.swift; sourceTree = ""; }; + D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstallInteractiveReadMessagesAction.swift; sourceTree = ""; }; + D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestChatContextResults.swift; sourceTree = ""; }; + D0DC354F1DE36900000195EB /* ChatContextResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatContextResult.swift; sourceTree = ""; }; + D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinChannel.swift; sourceTree = ""; }; + D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageRepresentationsUtils.swift; sourceTree = ""; }; + D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageUtils.swift; sourceTree = ""; }; + D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerParticipants.swift; sourceTree = ""; }; + D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedSentMediaReferences.swift; sourceTree = ""; }; + D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeaturedStickerPack.swift; sourceTree = ""; }; + D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift; sourceTree = ""; }; + D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacks.swift; sourceTree = ""; }; + D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAdmins.swift; sourceTree = ""; }; + D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklist.swift; sourceTree = ""; }; + D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchHttpResource.swift; sourceTree = ""; }; + D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingMessageWithChatContextResult.swift; sourceTree = ""; }; + D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingChatContextResultMessageAttribute.swift; sourceTree = ""; }; + D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadSecureIdFile.swift; sourceTree = ""; }; + D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValueAccessContext.swift; sourceTree = ""; }; + D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureFileMediaResource.swift; sourceTree = ""; }; + D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedMediaResource.swift; sourceTree = ""; }; + D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptedResourceData.swift; sourceTree = ""; }; + D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrantSecureIdAccess.swift; sourceTree = ""; }; + D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPassportValue.swift; sourceTree = ""; }; + D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdVerificationDocumentReference.swift; sourceTree = ""; }; + D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdAddressValue.swift; sourceTree = ""; }; + D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateAccountPeerName.swift; sourceTree = ""; }; + D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelAdminEventLogContext.swift; sourceTree = ""; }; + D0E8B8B22044706300605593 /* ForwardGame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForwardGame.swift; sourceTree = ""; }; + D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteStorageConfiguration.swift; sourceTree = ""; }; + D0EC55992101ED0800D1992C /* DeleteMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessages.swift; sourceTree = ""; }; + D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdInternalPassportValue.swift; sourceTree = ""; }; + D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPassportRegistrationValue.swift; sourceTree = ""; }; + D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdTemporaryRegistrationValue.swift; sourceTree = ""; }; + D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConfigurationUpdates.swift; sourceTree = ""; }; + D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiplexedRequestManager.swift; sourceTree = ""; }; + D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeChatInputStateOperation.swift; sourceTree = ""; }; + D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeChatInputStateOperations.swift; sourceTree = ""; }; + D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeableChatInputState.swift; sourceTree = ""; }; + D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeerChatInterfaceState.swift; sourceTree = ""; }; + D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResolvePeerByName.swift; sourceTree = ""; }; + D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeAccountPhoneNumber.swift; sourceTree = ""; }; + D0F760D722202FE20074F7E5 /* ChannelStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStats.swift; sourceTree = ""; }; + D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditedMessageAttribute.swift; sourceTree = ""; }; + D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMarkupMessageAttribute.swift; sourceTree = ""; }; + D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalTelegramCoreConfiguration.swift; sourceTree = ""; }; + D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentPrivacySettings.swift; sourceTree = ""; }; + D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoStepVerification.swift; sourceTree = ""; }; + D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CacheStorageSettings.swift; sourceTree = ""; }; + D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectCacheUsageStats.swift; sourceTree = ""; }; + D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatOutgoingOperation.swift; sourceTree = ""; }; + D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingEncryptedOperation.swift; sourceTree = ""; }; + D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatFileReference.swift; sourceTree = ""; }; + D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeychain.swift; sourceTree = ""; }; + D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramSecretChat.swift; sourceTree = ""; }; + D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSecretChatOutgoingOperations.swift; sourceTree = ""; }; + D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemoryBufferExtensions.swift; sourceTree = ""; }; + D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatEncryptionConfig.swift; sourceTree = ""; }; + D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProcessSecretChatIncomingEncryptedOperations.swift; sourceTree = ""; }; + D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingDecryptedOperation.swift; sourceTree = ""; }; + D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerGroupMessageStateVersionAttribute.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0B418631D7E03D5004562A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D281EC236C2FAD0000A9BF /* SyncCore.framework in Frameworks */, + A7D281EA236C27030000A9BF /* MtProtoKit.framework in Frameworks */, + A7D281E4236C257C0000A9BF /* TelegramApi.framework in Frameworks */, + A7D281E2236C25710000A9BF /* Postbox.framework in Frameworks */, + A7D281DE236C25500000A9BF /* SwiftSignalKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A7D281ED236C327B0000A9BF /* thrid-party */ = { + isa = PBXGroup; + children = ( + A7D281F7236C32AA0000A9BF /* Crypto.h */, + A7D281F6236C32AA0000A9BF /* Crypto.m */, + A7D281F2236C32A00000A9BF /* Reachability.h */, + A7D281F3236C32A00000A9BF /* Reachability.m */, + A7D281EF236C32900000A9BF /* NetworkLogging.h */, + A7D281EE236C32900000A9BF /* NetworkLogging.m */, + ); + path = "thrid-party"; + sourceTree = ""; + }; + D01B264723324CE600A6448B /* Wallet */ = { + isa = PBXGroup; + children = ( + D01B264823324CF800A6448B /* Wallets.swift */, + ); + name = Wallet; + sourceTree = ""; + }; + D01B27A01E394D7B0022A4C0 /* Settings */ = { + isa = PBXGroup; + children = ( + 0900555521E4A96D0030924C /* Wallpaper.swift */, + D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */, + D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */, + D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */, + D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */, + D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */, + D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */, + D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */, + D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */, + D01C7ED51EF5E468008305F1 /* ProxySettings.swift */, + D04D8FF3209A4B0700865719 /* NetworkSettings.swift */, + D0B167221F9F972E00976B40 /* LoggingSettings.swift */, + D0AF32301FACEDEC0097362B /* CoreSettings.swift */, + D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */, + D051DB13215EC5A300F30F92 /* AppChangelogState.swift */, + 0962E66E21B6147600245FD9 /* AppConfiguration.swift */, + 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */, + 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */, + 09B4A9B5230FBB2B005C2E08 /* Theme.swift */, + ); + name = Settings; + sourceTree = ""; + }; + D021E0DD1DB539E800C6B04F /* Item Collections */ = { + isa = PBXGroup; + children = ( + D021E0DE1DB539FC00C6B04F /* StickerPack.swift */, + D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */, + D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */, + D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */, + D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */, + D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */, + ); + name = "Item Collections"; + sourceTree = ""; + }; + D021E0E01DB5400200C6B04F /* Sticker Management */ = { + isa = PBXGroup; + children = ( + A7D281FA236C34660000A9BF /* SynchronizeInstalledStickerPacksOperation.swift */, + D021E0E11DB5401A00C6B04F /* StickerManagement.swift */, + D01D6BF81E42A713006151C6 /* SearchStickers.swift */, + D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */, + C251D7421E65E50500283EDE /* StickerSetInstallation.swift */, + D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */, + D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */, + D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */, + D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */, + D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */, + C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */, + ); + name = "Sticker Management"; + sourceTree = ""; + }; + D03B0CB71D62232000955575 /* Utils */ = { + isa = PBXGroup; + children = ( + A7D281FC236C35E30000A9BF /* TelegramMediaWebFile.swift */, + D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */, + D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */, + D03B0CB81D62233400955575 /* Either.swift */, + D03B0CBC1D62234300955575 /* Regex.swift */, + D03B0CBE1D62234A00955575 /* Log.swift */, + D03B0CC01D62235000955575 /* StringFormat.swift */, + D03B0CCD1D62239600955575 /* PhoneNumbers.swift */, + D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */, + D0448C9E1E27F5EB005A61A7 /* Random.swift */, + D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */, + D04CAA591E83310D0047E51F /* MD5.swift */, + D042C6821E8D9DF800C863B0 /* Unixtime.swift */, + D01C7F031EFC1C49008305F1 /* DeviceContact.swift */, + D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */, + D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */, + D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */, + C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */, + 0962E66C21B5C56F00245FD9 /* JSON.swift */, + 0962E67421B6437600245FD9 /* SplitTest.swift */, + ); + name = Utils; + sourceTree = ""; + }; + D03B0CCF1D62242200955575 /* Objects */ = { + isa = PBXGroup; + children = ( + D03B0CD21D62244300955575 /* Namespaces.swift */, + D03E5E0A1E55E0220029569A /* Accounts */, + D03B0CD01D62242C00955575 /* Peers */, + D03B0CD11D62242F00955575 /* Messages */, + D0FA8B961E1E952D001E855B /* Secret Chats */, + D021E0DD1DB539E800C6B04F /* Item Collections */, + D01B27A01E394D7B0022A4C0 /* Settings */, + D08CAA821ED816290000FDA8 /* Localization */, + ); + name = Objects; + sourceTree = ""; + }; + D03B0CD01D62242C00955575 /* Peers */ = { + isa = PBXGroup; + children = ( + D03B0CDA1D62245F00955575 /* ApiUtils.swift */, + D03B0CD81D62245B00955575 /* PeerUtils.swift */, + D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */, + D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */, + D03B0CD41D62245300955575 /* TelegramUser.swift */, + D03B0CD51D62245300955575 /* TelegramGroup.swift */, + D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */, + D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */, + D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */, + D003702A1DA42586004308D3 /* PhoneNumber.swift */, + D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */, + D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */, + D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */, + D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */, + D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */, + D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */, + D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */, + D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */, + D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */, + D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */, + D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */, + D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */, + D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */, + ); + name = Peers; + sourceTree = ""; + }; + D03B0CD11D62242F00955575 /* Messages */ = { + isa = PBXGroup; + children = ( + D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */, + D03B0CDC1D62247800955575 /* Attributes */, + D03B0CDD1D62247D00955575 /* Media */, + ); + name = Messages; + sourceTree = ""; + }; + D03B0CDC1D62247800955575 /* Attributes */ = { + isa = PBXGroup; + children = ( + D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */, + D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */, + D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */, + D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */, + D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */, + D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */, + D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */, + D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */, + D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */, + D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */, + D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */, + D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */, + D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */, + D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */, + D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */, + D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */, + C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */, + C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */, + D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */, + 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */, + D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */, + D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */, + D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */, + ); + name = Attributes; + sourceTree = ""; + }; + D03B0CDD1D62247D00955575 /* Media */ = { + isa = PBXGroup; + children = ( + D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */, + D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */, + D03B0CED1D62250800955575 /* TelegramMediaContact.swift */, + D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */, + D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */, + D03B0CF11D62250800955575 /* TelegramMediaMap.swift */, + D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */, + D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */, + D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */, + D07827CA1E02F5B200071108 /* RichText.swift */, + D07827C81E02F59C00071108 /* InstantPage.swift */, + C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */, + C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */, + D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */, + ); + name = Media; + sourceTree = ""; + }; + D03B0CFE1D62252200955575 /* State */ = { + isa = PBXGroup; + children = ( + D03B0CFF1D62255C00955575 /* ChannelState.swift */, + D03DC9121F82F89D001D584C /* RegularChatState.swift */, + D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */, + D03B0D001D62255C00955575 /* EnqueueMessage.swift */, + D03B0D011D62255C00955575 /* Holes.swift */, + D017495D1E118F790057C89A /* AccountStateManager.swift */, + D017495F1E118FC30057C89A /* AccountIntermediateState.swift */, + D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */, + D03B0D051D62255C00955575 /* UpdateGroup.swift */, + D03DC90F1F82E344001D584C /* AccountStateReset.swift */, + D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */, + D03B0D061D62255C00955575 /* UpdateMessageService.swift */, + D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */, + D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */, + D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */, + D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */, + D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */, + D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */, + D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */, + D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */, + D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */, + D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */, + D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */, + D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */, + D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */, + D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */, + D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */, + D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */, + D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */, + D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */, + D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */, + D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */, + D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */, + D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */, + D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */, + D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */, + D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */, + D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */, + D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */, + D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */, + D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */, + D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */, + D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */, + D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */, + D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */, + D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */, + D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */, + D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */, + D00422D221677F4500719B67 /* ManagedAccountPresence.swift */, + D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */, + 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */, + D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */, + D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */, + 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */, + 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */, + 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */, + 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */, + 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */, + 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */, + D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */, + D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */, + 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */, + ); + name = State; + sourceTree = ""; + }; + D03B0D111D62256B00955575 /* Media */ = { + isa = PBXGroup; + children = ( + D03B0D121D62257600955575 /* Resources */, + D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */, + D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */, + D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */, + ); + name = Media; + sourceTree = ""; + }; + D03B0D121D62257600955575 /* Resources */ = { + isa = PBXGroup; + children = ( + D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */, + D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */, + D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */, + D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */, + D03B0D391D6319E200955575 /* Fetch.swift */, + D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */, + D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */, + D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */, + D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */, + D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */, + D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */, + ); + name = Resources; + sourceTree = ""; + }; + D03B0D531D631A4400955575 /* Network */ = { + isa = PBXGroup; + children = ( + D03B0D561D631A6900955575 /* Download.swift */, + D03B0D571D631A6900955575 /* MultipartFetch.swift */, + D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */, + D03B0D581D631A6900955575 /* Network.swift */, + D03B0D591D631A6900955575 /* Serialization.swift */, + D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */, + D08984F421187ECA00918162 /* NetworkType.swift */, + ); + name = Network; + sourceTree = ""; + }; + D03B0D601D631A7200955575 /* Account */ = { + isa = PBXGroup; + children = ( + D03B0D611D631A8B00955575 /* Account.swift */, + D049EAF41E44DF3300A2CD3A /* AccountState.swift */, + D03B0D631D631A8B00955575 /* AccountViewTracker.swift */, + D03B0D641D631A8B00955575 /* RecentPeers.swift */, + D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */, + D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */, + D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */, + D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */, + D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */, + D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */, + D0BEAF5C1E54941B00BD963D /* Authorization.swift */, + D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */, + D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */, + D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */, + D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */, + D06ECFC720B810D300C576C2 /* TermsOfService.swift */, + D051DB16215ECC4D00F30F92 /* AppChangelog.swift */, + D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */, + D02B198F21FB1D520094A764 /* RegisterNotificationToken.swift */, + D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */, + D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */, + 09EC0DE822C6825D00E7185B /* AppUpdate.swift */, + ); + name = Account; + sourceTree = ""; + }; + D03B0D691D631A9200955575 /* Contacts */ = { + isa = PBXGroup; + children = ( + D03B0D6C1D631AA300955575 /* ContactManagement.swift */, + D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */, + D02DADC02139A1FC00116225 /* ContactSyncManager.swift */, + D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */, + ); + name = Contacts; + sourceTree = ""; + }; + D03B0D6E1D631AA900955575 /* Messages */ = { + isa = PBXGroup; + children = ( + D03B0D711D631ABA00955575 /* SearchMessages.swift */, + D0EC55992101ED0800D1992C /* DeleteMessages.swift */, + D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */, + D0AB262A21C3CE80008F6685 /* Polls.swift */, + D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */, + D072F356231542740009E66F /* MessageReactionList.swift */, + D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */, + D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */, + D0DC354F1DE36900000195EB /* ChatContextResult.swift */, + D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */, + D01749581E1092BC0057C89A /* RequestStartBot.swift */, + D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */, + D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */, + D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */, + C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */, + D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */, + D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */, + D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */, + D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */, + D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */, + D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */, + D0E8B8B22044706300605593 /* ForwardGame.swift */, + D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */, + D023E67721540624008C27D1 /* UpdateMessageMedia.swift */, + 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */, + ); + name = Messages; + sourceTree = ""; + }; + D03E5E0A1E55E0220029569A /* Accounts */ = { + isa = PBXGroup; + children = ( + D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */, + D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */, + D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */, + ); + name = Accounts; + sourceTree = ""; + }; + D04D21352306EC8700609388 /* Mac Internal Updater */ = { + isa = PBXGroup; + children = ( + D04D21362306EC9A00609388 /* MacInternalUpdater.swift */, + ); + name = "Mac Internal Updater"; + sourceTree = ""; + }; + D05A32DF1E6F096B002760B4 /* Settings */ = { + isa = PBXGroup; + children = ( + D026099D20C695AF006C34AC /* Wallpapers.swift */, + D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */, + D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */, + D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */, + D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */, + 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */, + D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */, + D08984F12114B97400918162 /* ClearCloudDrafts.swift */, + D04554A521B43440007A6DD9 /* CancelAccountReset.swift */, + D033873F223BD48B007A2CE4 /* ContactsSettings.swift */, + D099E221229420D600561B75 /* BlockedPeersContext.swift */, + D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */, + D069257022D8B526002FC021 /* SecretChatSettings.swift */, + 09B4A9B3230FB70B005C2E08 /* Themes.swift */, + ); + name = Settings; + sourceTree = ""; + }; + D06706631D512ADA00DED3E3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7D281EB236C2FAD0000A9BF /* SyncCore.framework */, + A7D281E9236C27030000A9BF /* MtProtoKit.framework */, + A7D281E3236C257C0000A9BF /* TelegramApi.framework */, + A7D281E1236C25710000A9BF /* Postbox.framework */, + A7D281DF236C25580000A9BF /* libphonenumber.framework */, + A7D281DD236C25500000A9BF /* SwiftSignalKit.framework */, + A7D281DB236C25440000A9BF /* MtProtoKitMac.framework */, + A7D281D9236C253C0000A9BF /* TelegramApi.framework */, + A7D281D7236C25370000A9BF /* libphonenumber.framework */, + D0208AF32306E92B00A23503 /* libphonenumbermac.framework */, + D03E45D32305D44A0049C28B /* libphonenumber.framework */, + D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */, + D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */, + D0CC4AA322BA44960088F36D /* TelegramApi.framework */, + D035732E22B5C24F00F0920D /* TelegramApi.framework */, + D0AF32371FAE8C910097362B /* MultipeerConnectivity.framework */, + D0B4187E1D7E054E004562A4 /* MtProtoKitMac.framework */, + D0B418701D7E0409004562A4 /* PostboxMac.framework */, + D0B418711D7E0409004562A4 /* SwiftSignalKitMac.framework */, + D0CAF2E91D75EC600011F558 /* MtProtoKitDynamic.framework */, + D0AC49491D7097A400AA55DA /* SSignalKit.framework */, + D03B0E6B1D63283C00955575 /* libiconv.tbd */, + D03B0E691D63283000955575 /* libwebp.a */, + D03B0E611D63281A00955575 /* libavcodec.a */, + D03B0E621D63281A00955575 /* libavformat.a */, + D03B0E631D63281A00955575 /* libavutil.a */, + D03B0E641D63281A00955575 /* libswresample.a */, + D03B0E5F1D6327FF00955575 /* libz.tbd */, + D03B0E5D1D6327F600955575 /* SSignalKit.framework */, + D03B0E571D631EB900955575 /* CoreMedia.framework */, + D067066E1D512AEB00DED3E3 /* MtProtoKit.framework */, + D06706641D512ADB00DED3E3 /* AsyncDisplayKit.framework */, + D06706651D512ADB00DED3E3 /* Display.framework */, + D06706671D512ADB00DED3E3 /* Postbox.framework */, + D06706681D512ADB00DED3E3 /* SwiftSignalKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D0754D281EEE10D800884F6E /* Bot Payments */ = { + isa = PBXGroup; + children = ( + D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */, + ); + name = "Bot Payments"; + sourceTree = ""; + }; + D08CAA821ED816290000FDA8 /* Localization */ = { + isa = PBXGroup; + children = ( + D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */, + D08CAA831ED8164B0000FDA8 /* Localization.swift */, + D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */, + D05D8B362192F8AF0064586F /* LocalizationListState.swift */, + 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */, + ); + name = Localization; + sourceTree = ""; + }; + D08CAA8A1ED81EA10000FDA8 /* Localization */ = { + isa = PBXGroup; + children = ( + D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */, + D081E109217F5ADE003CD921 /* LocalizationPreview.swift */, + ); + name = Localization; + sourceTree = ""; + }; + D093D7E82064135300BC3599 /* Values */ = { + isa = PBXGroup; + children = ( + D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */, + D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */, + D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */, + D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */, + D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */, + D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */, + D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */, + D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */, + D054649020738653002ECC1E /* SecureIdIDCardValue.swift */, + D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */, + D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */, + D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */, + D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */, + D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */, + D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */, + D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */, + D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */, + ); + name = Values; + sourceTree = ""; + }; + D09D8BF71D4FAB1D0081DBEC = { + isa = PBXGroup; + children = ( + A7D281ED236C327B0000A9BF /* thrid-party */, + D03B0E591D63215200955575 /* TelegramCore.xcconfig */, + D09D8C031D4FAB1D0081DBEC /* Sources */, + D0B418681D7E03D5004562A4 /* TelegramCore */, + D09D8C021D4FAB1D0081DBEC /* Products */, + D06706631D512ADA00DED3E3 /* Frameworks */, + ); + sourceTree = ""; + }; + D09D8C021D4FAB1D0081DBEC /* Products */ = { + isa = PBXGroup; + children = ( + D0B418671D7E03D5004562A4 /* TelegramCore.framework */, + ); + name = Products; + sourceTree = ""; + }; + D09D8C031D4FAB1D0081DBEC /* Sources */ = { + isa = PBXGroup; + children = ( + D01B264723324CE600A6448B /* Wallet */, + D04D21352306EC8700609388 /* Mac Internal Updater */, + D03B0CB71D62232000955575 /* Utils */, + D03B0CCF1D62242200955575 /* Objects */, + D03B0CFE1D62252200955575 /* State */, + D03B0D111D62256B00955575 /* Media */, + D03B0D531D631A4400955575 /* Network */, + D03B0D601D631A7200955575 /* Account */, + D03B0D691D631A9200955575 /* Contacts */, + D03B0D6E1D631AA900955575 /* Messages */, + D0DF0C881D819C5F008AEB01 /* Peers */, + D0754D281EEE10D800884F6E /* Bot Payments */, + D0BE303820619E9E00FBE6D8 /* Secure ID */, + D0C50E2F1E93A83B00F62E39 /* Calls */, + D021E0E01DB5400200C6B04F /* Sticker Management */, + D05A32DF1E6F096B002760B4 /* Settings */, + D08CAA8A1ED81EA10000FDA8 /* Localization */, + D0AD02E61FFFA15C00C1DCFF /* Live Location */, + D0AF32331FAE8C540097362B /* Multipeer */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/TelegramCore/Sources"; + sourceTree = ""; + }; + D0AD02E61FFFA15C00C1DCFF /* Live Location */ = { + isa = PBXGroup; + children = ( + D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */, + ); + name = "Live Location"; + sourceTree = ""; + }; + D0AF32331FAE8C540097362B /* Multipeer */ = { + isa = PBXGroup; + children = ( + D0AF32341FAE8C6B0097362B /* MultipeerManager.swift */, + ); + name = Multipeer; + sourceTree = ""; + }; + D0B418681D7E03D5004562A4 /* TelegramCore */ = { + isa = PBXGroup; + children = ( + D0B418691D7E03D5004562A4 /* TelegramCore.h */, + D0B4186A1D7E03D5004562A4 /* Info.plist */, + ); + path = TelegramCore; + sourceTree = ""; + }; + D0BE303820619E9E00FBE6D8 /* Secure ID */ = { + isa = PBXGroup; + children = ( + D0CA3F82207391450042D2B6 /* Utils */, + D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */, + D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */, + D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */, + D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */, + D093D805206539D000BC3599 /* SaveSecureIdValue.swift */, + D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */, + D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */, + D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */, + D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */, + D093D7E82064135300BC3599 /* Values */, + ); + name = "Secure ID"; + sourceTree = ""; + }; + D0C50E2F1E93A83B00F62E39 /* Calls */ = { + isa = PBXGroup; + children = ( + D0C50E331E93A86600F62E39 /* CallSessionManager.swift */, + C2F4ED1C1EC60064005F2696 /* RateCall.swift */, + ); + name = Calls; + sourceTree = ""; + }; + D0CA3F82207391450042D2B6 /* Utils */ = { + isa = PBXGroup; + children = ( + D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */, + ); + name = Utils; + sourceTree = ""; + }; + D0DF0C881D819C5F008AEB01 /* Peers */ = { + isa = PBXGroup; + children = ( + D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */, + D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */, + D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */, + D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */, + D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */, + D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */, + D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */, + D07827BA1E00451F00071108 /* SearchPeers.swift */, + D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */, + D018D3361E648ACF00C5E089 /* ChannelCreation.swift */, + D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */, + D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */, + D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */, + D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */, + D050F2501E4A59C200988324 /* JoinLink.swift */, + C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */, + C2366C851E4F403C0097CCFF /* AddressNames.swift */, + D0613FC91E60440600202CDB /* InvitationLinks.swift */, + C2366C881E4F40480097CCFF /* SupportPeerId.swift */, + D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */, + D041E3F41E535464008C24B4 /* AddPeerMember.swift */, + D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */, + D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */, + D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */, + D0613FCE1E60520700202CDB /* ChannelMembers.swift */, + D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */, + D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */, + D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */, + D033FEB21E61F3C000644997 /* ReportPeer.swift */, + D033FEB51E61F3F900644997 /* BlockedPeers.swift */, + C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */, + D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */, + C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */, + C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */, + C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */, + C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */, + D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */, + D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */, + C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */, + C205FEA71EB3B75900455808 /* ExportMessageLink.swift */, + C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */, + D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */, + D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */, + D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */, + D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */, + D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */, + D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */, + 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */, + D0F760D722202FE20074F7E5 /* ChannelStats.swift */, + D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */, + D015E00D225CA61100CB9E8A /* FindChannelById.swift */, + D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */, + 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */, + 090E778F22AAABC600CD99F5 /* PeersNearby.swift */, + D0D376E522DCCFD600FA7D7C /* SlowMode.swift */, + D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */, + ); + name = Peers; + sourceTree = ""; + }; + D0FA8B961E1E952D001E855B /* Secret Chats */ = { + isa = PBXGroup; + children = ( + D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */, + D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */, + D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */, + D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */, + D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */, + D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */, + D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */, + D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */, + D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */, + D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */, + D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */, + D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */, + D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */, + D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */, + ); + name = "Secret Chats"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D0B418641D7E03D5004562A4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D281F9236C32AA0000A9BF /* Crypto.h in Headers */, + A7D281F1236C32900000A9BF /* NetworkLogging.h in Headers */, + A7D281F4236C32A00000A9BF /* Reachability.h in Headers */, + D0B4186B1D7E03D5004562A4 /* TelegramCore.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D0B418661D7E03D5004562A4 /* TelegramCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0B4186C1D7E03D5004562A4 /* Build configuration list for PBXNativeTarget "TelegramCore" */; + buildPhases = ( + D0B418621D7E03D5004562A4 /* Sources */, + D0B418631D7E03D5004562A4 /* Frameworks */, + D0B418641D7E03D5004562A4 /* Headers */, + D0B418651D7E03D5004562A4 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TelegramCore; + productName = TelegramCoreMac; + productReference = D0B418671D7E03D5004562A4 /* TelegramCore.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D09D8BF81D4FAB1D0081DBEC /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0800; + ORGANIZATIONNAME = Peter; + TargetAttributes = { + D0B418661D7E03D5004562A4 = { + CreatedOnToolsVersion = 8.0; + LastSwiftMigration = 1030; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = D09D8BFB1D4FAB1D0081DBEC /* Build configuration list for PBXProject "TelegramCore_Xcode" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = D09D8BF71D4FAB1D0081DBEC; + productRefGroup = D09D8C021D4FAB1D0081DBEC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0B418661D7E03D5004562A4 /* TelegramCore */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0B418651D7E03D5004562A4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0B418621D7E03D5004562A4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03413F3231325B300B555F3 /* Themes.swift in Sources */, + D03413F1231323CE00B555F3 /* Theme.swift in Sources */, + D021E7E92306EC03002F8BD1 /* ScheduledMessages.swift in Sources */, + D021E7EA2306EC03002F8BD1 /* ValidateAddressNameInteractive.swift in Sources */, + D020F00722F19C8F00BE699A /* ManagedAnimatedEmojiUpdates.swift in Sources */, + D05FDC3922CA45070060BFE3 /* AppUpdate.swift in Sources */, + D014193922AE6B85008667CB /* ChannelOwnershipTransfer.swift in Sources */, + D014193A22AE6B85008667CB /* PeersNearby.swift in Sources */, + D076F88A2296D8F6004F895A /* ManageChannelDiscussionGroup.swift in Sources */, + 9F1BC1AB2244CFED00F21815 /* EmojiKeywords.swift in Sources */, + 9F1BC1AC2244CFED00F21815 /* SynchronizeEmojiKeywordsOperation.swift in Sources */, + 9F1BC1AD2244CFED00F21815 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */, + 9F7D42262223FF49007B68BB /* AutodownloadSettings.swift in Sources */, + 9F7D42272223FF49007B68BB /* ManagedAutodownloadSettingsUpdates.swift in Sources */, + 9F153D1021E8E0A200B95D82 /* Wallpaper.swift in Sources */, + 9F4EEF9E21DCF6E7002C3B33 /* ManagedVoipConfigurationUpdates.swift in Sources */, + 9F4EEF9F21DCF6E7002C3B33 /* ManagedAppConfigurationUpdates.swift in Sources */, + 9F4EEFA021DCF6E7002C3B33 /* SynchronizeAppLogEventsOperation.swift in Sources */, + 9F4EEFA121DCF6E7002C3B33 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */, + D0329EA622FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */, + 9F4EEF9B21DCF66F002C3B33 /* JSON.swift in Sources */, + 9F4EEF9C21DCF66F002C3B33 /* AppConfiguration.swift in Sources */, + 9FAA268820D457A300D26CF3 /* RemoteStorageConfiguration.swift in Sources */, + C28D3CF120D3DAA30027F4D6 /* DeepLinkInfo.swift in Sources */, + 9FC8ADAC206BC00A0094F7B4 /* RecentWebSessions.swift in Sources */, + 9FC8ADA9206BBD000094F7B4 /* SaveSecureIdValue.swift in Sources */, + 9F10CE8C20613CDB002DD61A /* TelegramDeviceContactImportInfo.swift in Sources */, + C29340F41F5081280074991E /* UpdateGroupSpecificStickerset.swift in Sources */, + C25638021E79E7FC00311607 /* TwoStepVerification.swift in Sources */, + D00DBBD81E64E41100DB5485 /* CreateSecretChat.swift in Sources */, + C2FD33EC1E696C79008D13D4 /* GroupsInCommon.swift in Sources */, + C239BE9D1E630CB300C2C453 /* UpdatePinnedMessage.swift in Sources */, + C239BE981E62F0D200C2C453 /* LoadMessagesIfNecessary.swift in Sources */, + D01C7ED41EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */, + D051DB15215EC5A300F30F92 /* AppChangelogState.swift in Sources */, + C26A37EF1E5E0C41006977AC /* ChannelParticipants.swift in Sources */, + D00D343D1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */, + D0AB262721C2F991008F6685 /* TelegramMediaPoll.swift in Sources */, + D0C26D6A1FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */, + D01C7F051EFC1C49008305F1 /* DeviceContact.swift in Sources */, + D050F26A1E4A5B6D00988324 /* ManagedGlobalNotificationSettings.swift in Sources */, + D050F26B1E4A5B6D00988324 /* ApplyMaxReadIndexInteractively.swift in Sources */, + D033FEB11E61EB0200644997 /* PeerContactSettings.swift in Sources */, + D050F26C1E4A5B6D00988324 /* UpdatePeers.swift in Sources */, + D08984F621187ECA00918162 /* NetworkType.swift in Sources */, + D050F26D1E4A5B6D00988324 /* CreateGroup.swift in Sources */, + D0575AF51E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */, + D00D34461E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */, + D0E412E8206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */, + D050F26E1E4A5B6D00988324 /* RemovePeerChat.swift in Sources */, + D0613FD81E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */, + D0DB7F041F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */, + A7D281F0236C32900000A9BF /* NetworkLogging.m in Sources */, + D01D6BFA1E42A718006151C6 /* SearchStickers.swift in Sources */, + D0D748031E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */, + D0B167241F9F972E00976B40 /* LoggingSettings.swift in Sources */, + D0E41302206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */, + C2A315C01E2E776A00D89000 /* RequestStartBot.swift in Sources */, + D0642EFA1F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */, + D0F7B1EA1E045C87007EB8A5 /* ChangePeerNotificationSettings.swift in Sources */, + D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */, + D0B418A71D7E0592004562A4 /* Fetch.swift in Sources */, + D02ABC7C1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */, + D03DC9111F82E344001D584C /* AccountStateReset.swift in Sources */, + D0B1671E1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */, + D0B418B81D7E05A6004562A4 /* ContactManagement.swift in Sources */, + D0E23DE01E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */, + D02D60AC206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */, + D0119CB120CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */, + D050F2521E4A59C200988324 /* JoinLink.swift in Sources */, + D018EE0320458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */, + D0F7B1E91E045C87007EB8A5 /* PeerCommands.swift in Sources */, + D00D97C81E32901700E5C2B6 /* PeerInputActivity.swift in Sources */, + D0754D2B1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */, + D0E412EF206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */, + C22EE61C1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */, + D0B418AC1D7E0597004562A4 /* Network.swift in Sources */, + D04CAA5B1E83310D0047E51F /* MD5.swift in Sources */, + D0E305AB1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */, + D00D97CB1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */, + D0B844491DAB91FD005F29E1 /* ManagedChatListHoles.swift in Sources */, + D03C53711DAD5CA9004C17B3 /* CachedGroupParticipants.swift in Sources */, + D07047B81F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */, + C2366C841E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */, + C2E0646E1ECF171E00387BB8 /* TelegramMediaWebDocument.swift in Sources */, + D03C53671DAD5CA9004C17B3 /* ApiUtils.swift in Sources */, + D0AAD1B91E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */, + D001F3F21E128A1C007A8C60 /* UpdateGroup.swift in Sources */, + D0338744223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */, + D0F7B1EB1E045C87007EB8A5 /* ResolvePeerByName.swift in Sources */, + D018D3381E648ACF00C5E089 /* ChannelCreation.swift in Sources */, + D0F53BEA1E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */, + D001F3EE1E128A1C007A8C60 /* AccountStateManager.swift in Sources */, + C205FEA91EB3B75900455808 /* ExportMessageLink.swift in Sources */, + D0448CA31E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */, + D0B8444C1DAB91FD005F29E1 /* UpdateCachedPeerData.swift in Sources */, + D0329EA322FC5A7C00F9F071 /* MessageReactions.swift in Sources */, + D0FA8B9F1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */, + D03C536C1DAD5CA9004C17B3 /* TelegramChannel.swift in Sources */, + D0F3CC7A1DDE2859008148FA /* RequestMessageActionCallback.swift in Sources */, + D073CEA11DCBF3D3007511FD /* StickerPack.swift in Sources */, + C230BEB71EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */, + D00DBBDB1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */, + D0BE303E2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */, + D0448C921E251F96005A61A7 /* SecretChatEncryption.swift in Sources */, + D00BDA1D1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */, + D0E35A141DE4C69C00BC6096 /* FetchHttpResource.swift in Sources */, + D0B8440D1DAB91CD005F29E1 /* ImageRepresentationsUtils.swift in Sources */, + D03C536A1DAD5CA9004C17B3 /* TelegramUser.swift in Sources */, + D001F3EA1E128A1C007A8C60 /* TelegramPeerNotificationSettings.swift in Sources */, + D0E412F5206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */, + D0467D0C20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */, + C23BC3881E9BE3CB00D79F92 /* ImportContact.swift in Sources */, + D0B85AC61F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */, + D0E412F2206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */, + D001F3EB1E128A1C007A8C60 /* EnqueueMessage.swift in Sources */, + D01A21A71F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */, + D00C7CEC1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */, + D048B4AD20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */, + D0B844481DAB91FD005F29E1 /* ManagedMessageHistoryHoles.swift in Sources */, + D0F3CC7B1DDE2859008148FA /* RequestEditMessage.swift in Sources */, + D049EAEC1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */, + D0F19F6720E6621000EEC860 /* MultiplexedRequestManager.swift in Sources */, + D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */, + D02D60A8206BA5F900FEFE1E /* SecureIdValue.swift in Sources */, + D0FA8B991E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */, + D001F3F01E128A1C007A8C60 /* AccountStateManagementUtils.swift in Sources */, + D0BEAF611E54ACF900BD963D /* AccountManager.swift in Sources */, + D0CA3F85207391560042D2B6 /* SecureIdPadding.swift in Sources */, + D0F3CC791DDE2859008148FA /* SearchMessages.swift in Sources */, + D093D7EF206413F600BC3599 /* SecureIdDataTypes.swift in Sources */, + D06CA13622772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */, + D0C44B621FC616E200227BE0 /* SearchGroupMembers.swift in Sources */, + D00BDA1A1EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */, + D00D34431E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */, + D026099F20C695AF006C34AC /* Wallpapers.swift in Sources */, + D099E223229420D600561B75 /* BlockedPeersContext.swift in Sources */, + D0FA35091EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */, + D0E412EB206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */, + D001F3F31E128A1C007A8C60 /* UpdateMessageService.swift in Sources */, + D0C50E351E93A86600F62E39 /* CallSessionManager.swift in Sources */, + D0A3E448214802C7008ACEF6 /* VoipConfiguration.swift in Sources */, + D018EE062045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */, + D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */, + D0C27B431F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */, + D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */, + D0C0B58E1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */, + D0B418961D7E0580004562A4 /* TelegramMediaFile.swift in Sources */, + D08CAA881ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */, + D099D74A1EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */, + A7D281F8236C32AA0000A9BF /* Crypto.m in Sources */, + D0AF32231FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */, + D04554A721B43440007A6DD9 /* CancelAccountReset.swift in Sources */, + D001F3EC1E128A1C007A8C60 /* Holes.swift in Sources */, + D0B4189B1D7E0580004562A4 /* TelegramMediaWebpage.swift in Sources */, + D00C7CE11E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */, + D0E23DDB1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */, + D0448C8F1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */, + D093D7F620641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */, + D0C26D6D1FE286C3004ABF18 /* FetchChatList.swift in Sources */, + D093D7FA20641AA500BC3599 /* SecureIdEmailValue.swift in Sources */, + D05A32E21E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */, + D0613FD01E60520700202CDB /* ChannelMembers.swift in Sources */, + D001F3E81E128A1C007A8C60 /* ChannelState.swift in Sources */, + C2366C8A1E4F40480097CCFF /* SupportPeerId.swift in Sources */, + D08CAA811ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */, + D0DA1D331F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */, + D0B844451DAB91FD005F29E1 /* AccountViewTracker.swift in Sources */, + D0C48F3D1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */, + D0F3A8A01E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */, + D07E4140208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */, + D049EAD91E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */, + D0EE7FC220986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */, + D0B418A61D7E0592004562A4 /* CloudFileMediaResource.swift in Sources */, + D073CEA51DCBF3F5007511FD /* StickerManagement.swift in Sources */, + D03C536D1DAD5CA9004C17B3 /* ApiGroupOrChannel.swift in Sources */, + D051DB18215ECC4D00F30F92 /* AppChangelog.swift in Sources */, + D01C06B81FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */, + A7D281FD236C35E30000A9BF /* TelegramMediaWebFile.swift in Sources */, + D0E35A151DE4C6A200BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */, + D02ABC821E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */, + C2FD33E51E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */, + D0BE304C20627D9800FBE6D8 /* AccessSecureId.swift in Sources */, + D019B1CD1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */, + C2F4ED1E1EC60064005F2696 /* RateCall.swift in Sources */, + D0B844121DAB91CD005F29E1 /* Log.swift in Sources */, + D0AF32321FACEDEC0097362B /* CoreSettings.swift in Sources */, + D08F4A6A1E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */, + D0B8444B1DAB91FD005F29E1 /* ManagedSynchronizePeerReadStates.swift in Sources */, + D0529D2521A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */, + D06ECFC920B810D300C576C2 /* TermsOfService.swift in Sources */, + 9F06831121A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */, + D0AB262C21C3CE80008F6685 /* Polls.swift in Sources */, + D073CE6C1DCBCF17007511FD /* TextEntitiesMessageAttribute.swift in Sources */, + D03C53751DAD5CA9004C17B3 /* TelegramUserPresence.swift in Sources */, + D05452081E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */, + D0561DE41E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */, + D042C6841E8D9DF800C863B0 /* Unixtime.swift in Sources */, + D0DC35521DE36908000195EB /* ChatContextResult.swift in Sources */, + D0F7AB301DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */, + D0F02CE61E9926C50065DEE2 /* ManagedConfigurationUpdates.swift in Sources */, + D033FEB71E61F3F900644997 /* BlockedPeers.swift in Sources */, + D0E412D8206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */, + D050F2611E4A5AE700988324 /* PrivacySettings.swift in Sources */, + D0B8440F1DAB91CD005F29E1 /* Either.swift in Sources */, + D0DC35511DE36908000195EB /* RequestChatContextResults.swift in Sources */, + D0FA08BC2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */, + D08CAA8D1ED81EDF0000FDA8 /* Localizations.swift in Sources */, + D013630A208F6E2800EB3653 /* SecureIdValueContentError.swift in Sources */, + D0F7B1EC1E045C87007EB8A5 /* SearchPeers.swift in Sources */, + D02DADC22139A1FC00116225 /* ContactSyncManager.swift in Sources */, + D001F3EF1E128A1C007A8C60 /* AccountIntermediateState.swift in Sources */, + D0223A991EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */, + D00C7CCD1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */, + D0A472B71F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */, + D03C536E1DAD5CA9004C17B3 /* PhoneNumber.swift in Sources */, + A7D281F5236C32A00000A9BF /* Reachability.m in Sources */, + D0BC387C1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */, + D0528E6B1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */, + D0E8B8B42044706300605593 /* ForwardGame.swift in Sources */, + D0B844111DAB91CD005F29E1 /* Regex.swift in Sources */, + D0BEAF5E1E54941B00BD963D /* Authorization.swift in Sources */, + D073CEA41DCBF3EA007511FD /* MultipartUpload.swift in Sources */, + D03C53701DAD5CA9004C17B3 /* ExportedInvitation.swift in Sources */, + D0FA35061EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */, + D05A32E81E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */, + D0F7B1E31E045C7B007EB8A5 /* RichText.swift in Sources */, + D0575C2E22B922DF00A71A0E /* DeleteAccount.swift in Sources */, + D072F358231542740009E66F /* MessageReactionList.swift in Sources */, + D0FA8BB11E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */, + D0B418AA1D7E0597004562A4 /* Download.swift in Sources */, + D001F3F41E128A1C007A8C60 /* UpdatesApiUtils.swift in Sources */, + D0D376E722DCCFD600FA7D7C /* SlowMode.swift in Sources */, + D015E00F225CA61100CB9E8A /* FindChannelById.swift in Sources */, + D04D8FF5209A4B0700865719 /* NetworkSettings.swift in Sources */, + D05464982073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */, + D0B4188E1D7E0578004562A4 /* StoreMessage_Telegram.swift in Sources */, + D0B844461DAB91FD005F29E1 /* RecentPeers.swift in Sources */, + D0E412E2206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */, + D0439B5E228ECB270067E026 /* RequestPhoneNumber.swift in Sources */, + D03C53681DAD5CA9004C17B3 /* PeerUtils.swift in Sources */, + D0BE303B20619EE800FBE6D8 /* SecureIdForm.swift in Sources */, + D0380DBB204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */, + D050F2621E4A5AE700988324 /* GlobalNotificationSettings.swift in Sources */, + D05D8B382192F8AF0064586F /* LocalizationListState.swift in Sources */, + D0DFD5E01FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */, + D0B418991D7E0580004562A4 /* TelegramMediaMap.swift in Sources */, + D0E8174A2010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */, + D054649B20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */, + D0561DEB1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */, + D0AD02E41FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */, + D0613FCB1E60440600202CDB /* InvitationLinks.swift in Sources */, + D0633CD32253A528003DD95F /* ChatOnlineMembers.swift in Sources */, + D0B844471DAB91FD005F29E1 /* ManagedServiceViews.swift in Sources */, + D0F3A8A91E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */, + D03C53691DAD5CA9004C17B3 /* PeerAccessRestrictionInfo.swift in Sources */, + C2FD33E21E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */, + A7D281FB236C34670000A9BF /* SynchronizeInstalledStickerPacksOperation.swift in Sources */, + D0B8440E1DAB91CD005F29E1 /* MessageUtils.swift in Sources */, + D0FA8BAB1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */, + D0C26D671FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */, + D03C536B1DAD5CA9004C17B3 /* TelegramGroup.swift in Sources */, + D0E412DD206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */, + D0B418941D7E0580004562A4 /* TelegramMediaAction.swift in Sources */, + D0EC559B2101ED0800D1992C /* DeleteMessages.swift in Sources */, + D0B418AB1D7E0597004562A4 /* MultipartFetch.swift in Sources */, + D01A21AA1F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */, + D0546495207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */, + D03C53741DAD5CA9004C17B3 /* CachedChannelData.swift in Sources */, + D032F5BD20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */, + D05A32E51E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */, + D02395D71F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */, + D0F7B1E41E045C7B007EB8A5 /* InstantPage.swift in Sources */, + D0B418AD1D7E0597004562A4 /* Serialization.swift in Sources */, + D0F760D922202FE20074F7E5 /* ChannelStats.swift in Sources */, + D0ADF912212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */, + D0A89990217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */, + D054648C2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */, + D0F8C3A12017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */, + D058E0D21E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */, + D03C536F1DAD5CA9004C17B3 /* BotInfo.swift in Sources */, + D033FEB41E61F3C000644997 /* ReportPeer.swift in Sources */, + D0FA8BAE1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */, + D01B264A23324CF900A6448B /* Wallets.swift in Sources */, + D0FA8BB41E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */, + D0F3A8A31E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */, + D098908022942E3B0053F151 /* ActiveSessionsContext.swift in Sources */, + D0448CA61E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */, + D0633CDC2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */, + D001F3F11E128A1C007A8C60 /* SynchronizePeerReadState.swift in Sources */, + D054648F20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */, + D0529D2821A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */, + D050F2641E4A5AEB00988324 /* ManagedSynchronizePinnedChatsOperations.swift in Sources */, + D04D21372306EC9A00609388 /* MacInternalUpdater.swift in Sources */, + D0575AF21E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */, + D0528E661E65C82400E2FEF5 /* UpdateContactName.swift in Sources */, + D0EE7FC82098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */, + D00422D421677F4500719B67 /* ManagedAccountPresence.swift in Sources */, + D023E67921540624008C27D1 /* UpdateMessageMedia.swift in Sources */, + D0F7B1E81E045C87007EB8A5 /* PeerParticipants.swift in Sources */, + D0EE7FC520986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, + D0C0B58B1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */, + D001F3F51E128A1C007A8C60 /* PendingMessageManager.swift in Sources */, + D0C27B401F4B51D000A4E170 /* CachedStickerPack.swift in Sources */, + D001F3F61E128A1C007A8C60 /* PendingMessageUploadedContent.swift in Sources */, + D01C7ED71EF5E468008305F1 /* ProxySettings.swift in Sources */, + C2366C871E4F403C0097CCFF /* AddressNames.swift in Sources */, + D02ABC7F1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */, + D0528E611E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */, + D0CA8E4C227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */, + D0528E5B1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */, + D0F7B1E71E045C87007EB8A5 /* JoinChannel.swift in Sources */, + D0E652201E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */, + D0FA8BA21E1F99E1001E855B /* SecretChatFileReference.swift in Sources */, + D001F3F71E128A1C007A8C60 /* ApplyUpdateMessage.swift in Sources */, + D0B418971D7E0580004562A4 /* TelegramMediaImage.swift in Sources */, + D01843A92190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */, + D041E3F91E535A88008C24B4 /* RemovePeerMember.swift in Sources */, + D0BAAA15230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */, + D049EAF61E44DF3300A2CD3A /* AccountState.swift in Sources */, + D0467D1620D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */, + D041E3F61E535464008C24B4 /* AddPeerMember.swift in Sources */, + D0E305A81E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */, + D0B844431DAB91FD005F29E1 /* Account.swift in Sources */, + D054649220738653002ECC1E /* SecureIdIDCardValue.swift in Sources */, + D0448CA01E27F5EB005A61A7 /* Random.swift in Sources */, + C251D7441E65E50500283EDE /* StickerSetInstallation.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + C22069BE1E8EB4A200E82730 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + C22069C11E8EB4A200E82730 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = TelegramCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/TelegramCore/Sources/module.private.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCore; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseHockeyapp; + }; + D0364D4D22B3E37C002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0364D5022B3E37C002A6EF0 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = TelegramCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/TelegramCore/Sources/module.private.modulemap"; + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCore; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = HockeyappMacAlpha; + }; + D06706551D51162400DED3E3 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D09D8C131D4FAB1D0081DBEC /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D09D8C141D4FAB1D0081DBEC /* DebugAppStore */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0B4186D1D7E03D5004562A4 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + FRAMEWORK_VERSION = A; + GCC_OPTIMIZATION_LEVEL = s; + INFOPLIST_FILE = TelegramCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/TelegramCore/Sources/module.private.modulemap"; + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCore; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = DebugHockeyapp; + }; + D0B4186E1D7E03D5004562A4 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = TelegramCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/TelegramCore/Sources/module.private.modulemap"; + OTHER_SWIFT_FLAGS = "-DDEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCore; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = DebugAppStore; + }; + D0B4186F1D7E03D5004562A4 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = TelegramCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/../../submodules/telegram-ios/submodules/TelegramCore/Sources/module.private.modulemap"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCore; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + }; + name = ReleaseAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D09D8BFB1D4FAB1D0081DBEC /* Build configuration list for PBXProject "TelegramCore_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D09D8C131D4FAB1D0081DBEC /* DebugHockeyapp */, + D0364D4D22B3E37C002A6EF0 /* HockeyappMacAlpha */, + D09D8C141D4FAB1D0081DBEC /* DebugAppStore */, + C22069BE1E8EB4A200E82730 /* ReleaseHockeyapp */, + D06706551D51162400DED3E3 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugAppStore; + }; + D0B4186C1D7E03D5004562A4 /* Build configuration list for PBXNativeTarget "TelegramCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0B4186D1D7E03D5004562A4 /* DebugHockeyapp */, + D0364D5022B3E37C002A6EF0 /* HockeyappMacAlpha */, + D0B4186E1D7E03D5004562A4 /* DebugAppStore */, + C22069C11E8EB4A200E82730 /* ReleaseHockeyapp */, + D0B4186F1D7E03D5004562A4 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugAppStore; + }; +/* End XCConfigurationList section */ + }; + rootObject = D09D8BF81D4FAB1D0081DBEC /* Project object */; +} diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..48eb199cd --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..f648f7bf5dca2014d540e8152c37710773712afa GIT binary patch literal 12336 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 FnfeO${u5n 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCore.xcscheme b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCore.xcscheme new file mode 100644 index 000000000..0eb420f85 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCore.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCoreMac.xcscheme b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCoreMac.xcscheme new file mode 100644 index 000000000..1a95a6716 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/TelegramCoreMac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..eca2fa5bc --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,36 @@ + + + + + SchemeUserState + + TelegramCore.xcscheme + + isShown + + orderHint + 23 + + TelegramCore.xcscheme_^#shared#^_ + + orderHint + 53 + + TelegramCoreMac.xcscheme + + isShown + + orderHint + 38 + + + SuppressBuildableAutocreation + + D0B418661D7E03D5004562A4 + + primary + + + + + diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 000000000..249f7c30c --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + TelegramCore.xcscheme_^#shared#^_ + + orderHint + 23 + + TelegramCoreMac.xcscheme_^#shared#^_ + + orderHint + 36 + + + + diff --git a/RLottieMac/RLottieMac.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 79% rename from RLottieMac/RLottieMac.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist rename to core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist index c6af87356..518dbb3e7 100644 --- a/RLottieMac/RLottieMac.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,10 +4,10 @@ SchemeUserState - RLottieMac.xcscheme_^#shared#^_ + TelegramCore.xcscheme_^#shared#^_ orderHint - 60 + 7 diff --git a/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..c051690e6 --- /dev/null +++ b/core-xprojects/TelegramCore/TelegramCore_Xcode.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + TelegramCore.xcscheme_^#shared#^_ + + orderHint + 35 + + TelegramCoreMac.xcscheme_^#shared#^_ + + orderHint + 42 + + + + diff --git a/core-xprojects/TonBinding/TonBinding/Info.plist b/core-xprojects/TonBinding/TonBinding/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/core-xprojects/TonBinding/TonBinding/TonBinding.h b/core-xprojects/TonBinding/TonBinding/TonBinding.h new file mode 100644 index 000000000..f29f81feb --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding/TonBinding.h @@ -0,0 +1,20 @@ +// +// TonBinding.h +// TonBinding +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for TonBindings. +FOUNDATION_EXPORT double TonBindingVersionNumber; + +//! Project version string for TonBindings. +FOUNDATION_EXPORT const unsigned char TonBindingVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import diff --git a/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.pbxproj b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..2961cac41 --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,801 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A790A3A3236B1E36000451B5 /* TonBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = A790A3A1236B1E36000451B5 /* TonBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A790A405236B1FC1000451B5 /* TON.mm in Sources */ = {isa = PBXBuildFile; fileRef = A790A403236B1FC1000451B5 /* TON.mm */; }; + A790A406236B1FC1000451B5 /* TON.h in Headers */ = {isa = PBXBuildFile; fileRef = A790A404236B1FC1000451B5 /* TON.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D2823F236C6CBA0000A9BF /* libcrc32c.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3EC236B1F6B000451B5 /* libcrc32c.a */; }; + A7D28240236C6CBA0000A9BF /* libadnllite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E4236B1F6A000451B5 /* libadnllite.a */; }; + A7D28241236C6CBA0000A9BF /* libkeys.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E8236B1F6A000451B5 /* libkeys.a */; }; + A7D28242236C6CBA0000A9BF /* liblite-client-common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E3236B1F6A000451B5 /* liblite-client-common.a */; }; + A7D28243236C6CBA0000A9BF /* libsmc-envelope.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E2236B1F6A000451B5 /* libsmc-envelope.a */; }; + A7D28244236C6CBA0000A9BF /* libtdactor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3EF236B1F6B000451B5 /* libtdactor.a */; }; + A7D28245236C6CBA0000A9BF /* libtddb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E9236B1F6B000451B5 /* libtddb.a */; }; + A7D28246236C6CBA0000A9BF /* libtdnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3F0236B1F6B000451B5 /* libtdnet.a */; }; + A7D28247236C6CBA0000A9BF /* libtdutils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E1236B1F6A000451B5 /* libtdutils.a */; }; + A7D28248236C6CBA0000A9BF /* libtl_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E5236B1F6A000451B5 /* libtl_api.a */; }; + A7D28249236C6CBA0000A9BF /* libtl_lite_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E7236B1F6A000451B5 /* libtl_lite_api.a */; }; + A7D2824A236C6CBA0000A9BF /* libtl_tonlib_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E0236B1F6A000451B5 /* libtl_tonlib_api.a */; }; + A7D2824B236C6CBA0000A9BF /* libtl-lite-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3ED236B1F6B000451B5 /* libtl-lite-utils.a */; }; + A7D2824C236C6CBA0000A9BF /* libtl-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3E6236B1F6A000451B5 /* libtl-utils.a */; }; + A7D2824D236C6CBA0000A9BF /* libton_block.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3EA236B1F6B000451B5 /* libton_block.a */; }; + A7D2824E236C6CBA0000A9BF /* libton_crypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3EB236B1F6B000451B5 /* libton_crypto.a */; }; + A7D2824F236C6CBA0000A9BF /* libtonlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A790A3EE236B1F6B000451B5 /* libtonlib.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A790A39E236B1E36000451B5 /* TonBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TonBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A790A3A1236B1E36000451B5 /* TonBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TonBinding.h; sourceTree = ""; }; + A790A3A2236B1E36000451B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A790A3BE236B1F3F000451B5 /* tonlib_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_api.h; sourceTree = ""; }; + A790A3C0236B1F3F000451B5 /* TlObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlObject.h; sourceTree = ""; }; + A790A3C2236B1F3F000451B5 /* tonlib_client_json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_client_json.h; sourceTree = ""; }; + A790A3C3236B1F3F000451B5 /* tonlibjson_export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlibjson_export.h; sourceTree = ""; }; + A790A3C4236B1F3F000451B5 /* Client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Client.h; sourceTree = ""; }; + A790A3C7236B1F3F000451B5 /* Slice-decl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Slice-decl.h"; sourceTree = ""; }; + A790A3C8236B1F3F000451B5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + A790A3C9236B1F3F000451B5 /* SharedSlice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedSlice.h; sourceTree = ""; }; + A790A3CA236B1F3F000451B5 /* Slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Slice.h; sourceTree = ""; }; + A790A3CB236B1F3F000451B5 /* int_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = int_types.h; sourceTree = ""; }; + A790A3CC236B1F3F000451B5 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + A790A3CD236B1F3F000451B5 /* check.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = check.h; sourceTree = ""; }; + A790A3CE236B1F3F000451B5 /* unique_ptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unique_ptr.h; sourceTree = ""; }; + A790A3D0236B1F3F000451B5 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; }; + A790A3E0236B1F6A000451B5 /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = "../../thrid-party/ton/lib/libtl_tonlib_api.a"; sourceTree = ""; }; + A790A3E1236B1F6A000451B5 /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = "../../thrid-party/ton/lib/libtdutils.a"; sourceTree = ""; }; + A790A3E2236B1F6A000451B5 /* libsmc-envelope.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libsmc-envelope.a"; path = "../../thrid-party/ton/lib/libsmc-envelope.a"; sourceTree = ""; }; + A790A3E3236B1F6A000451B5 /* liblite-client-common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "liblite-client-common.a"; path = "../../thrid-party/ton/lib/liblite-client-common.a"; sourceTree = ""; }; + A790A3E4236B1F6A000451B5 /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = "../../thrid-party/ton/lib/libadnllite.a"; sourceTree = ""; }; + A790A3E5236B1F6A000451B5 /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = "../../thrid-party/ton/lib/libtl_api.a"; sourceTree = ""; }; + A790A3E6236B1F6A000451B5 /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "../../thrid-party/ton/lib/libtl-utils.a"; sourceTree = ""; }; + A790A3E7236B1F6A000451B5 /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = "../../thrid-party/ton/lib/libtl_lite_api.a"; sourceTree = ""; }; + A790A3E8236B1F6A000451B5 /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = "../../thrid-party/ton/lib/libkeys.a"; sourceTree = ""; }; + A790A3E9236B1F6B000451B5 /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = "../../thrid-party/ton/lib/libtddb.a"; sourceTree = ""; }; + A790A3EA236B1F6B000451B5 /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = "../../thrid-party/ton/lib/libton_block.a"; sourceTree = ""; }; + A790A3EB236B1F6B000451B5 /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = "../../thrid-party/ton/lib/libton_crypto.a"; sourceTree = ""; }; + A790A3EC236B1F6B000451B5 /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = "../../thrid-party/ton/lib/libcrc32c.a"; sourceTree = ""; }; + A790A3ED236B1F6B000451B5 /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "../../thrid-party/ton/lib/libtl-lite-utils.a"; sourceTree = ""; }; + A790A3EE236B1F6B000451B5 /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = "../../thrid-party/ton/lib/libtonlib.a"; sourceTree = ""; }; + A790A3EF236B1F6B000451B5 /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = "../../thrid-party/ton/lib/libtdactor.a"; sourceTree = ""; }; + A790A3F0236B1F6B000451B5 /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = "../../thrid-party/ton/lib/libtdnet.a"; sourceTree = ""; }; + A790A403236B1FC1000451B5 /* TON.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = TON.mm; sourceTree = ""; }; + A790A404236B1FC1000451B5 /* TON.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TON.h; sourceTree = ""; }; + A790A407236B2013000451B5 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + A790A409236B2019000451B5 /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2821F236C50700000A9BF /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A790A39B236B1E36000451B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D2823F236C6CBA0000A9BF /* libcrc32c.a in Frameworks */, + A7D28240236C6CBA0000A9BF /* libadnllite.a in Frameworks */, + A7D28241236C6CBA0000A9BF /* libkeys.a in Frameworks */, + A7D28242236C6CBA0000A9BF /* liblite-client-common.a in Frameworks */, + A7D28243236C6CBA0000A9BF /* libsmc-envelope.a in Frameworks */, + A7D28244236C6CBA0000A9BF /* libtdactor.a in Frameworks */, + A7D28245236C6CBA0000A9BF /* libtddb.a in Frameworks */, + A7D28246236C6CBA0000A9BF /* libtdnet.a in Frameworks */, + A7D28247236C6CBA0000A9BF /* libtdutils.a in Frameworks */, + A7D28248236C6CBA0000A9BF /* libtl_api.a in Frameworks */, + A7D28249236C6CBA0000A9BF /* libtl_lite_api.a in Frameworks */, + A7D2824A236C6CBA0000A9BF /* libtl_tonlib_api.a in Frameworks */, + A7D2824B236C6CBA0000A9BF /* libtl-lite-utils.a in Frameworks */, + A7D2824C236C6CBA0000A9BF /* libtl-utils.a in Frameworks */, + A7D2824D236C6CBA0000A9BF /* libton_block.a in Frameworks */, + A7D2824E236C6CBA0000A9BF /* libton_crypto.a in Frameworks */, + A7D2824F236C6CBA0000A9BF /* libtonlib.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A790A394236B1E36000451B5 = { + isa = PBXGroup; + children = ( + A790A402236B1FC1000451B5 /* Sources */, + A790A3BB236B1F3F000451B5 /* include */, + A790A3A0236B1E36000451B5 /* TonBinding */, + A790A39F236B1E36000451B5 /* Products */, + A790A3DF236B1F6A000451B5 /* Frameworks */, + ); + sourceTree = ""; + }; + A790A39F236B1E36000451B5 /* Products */ = { + isa = PBXGroup; + children = ( + A790A39E236B1E36000451B5 /* TonBinding.framework */, + ); + name = Products; + sourceTree = ""; + }; + A790A3A0236B1E36000451B5 /* TonBinding */ = { + isa = PBXGroup; + children = ( + A790A3A1236B1E36000451B5 /* TonBinding.h */, + A790A3A2236B1E36000451B5 /* Info.plist */, + ); + path = TonBinding; + sourceTree = ""; + }; + A790A3BB236B1F3F000451B5 /* include */ = { + isa = PBXGroup; + children = ( + A790A3BC236B1F3F000451B5 /* auto */, + A790A3BF236B1F3F000451B5 /* tl */, + A790A3C1236B1F3F000451B5 /* tonlib */, + A790A3C5236B1F3F000451B5 /* td */, + ); + name = include; + path = "../../thrid-party/ton/include"; + sourceTree = ""; + }; + A790A3BC236B1F3F000451B5 /* auto */ = { + isa = PBXGroup; + children = ( + A790A3BD236B1F3F000451B5 /* tl */, + ); + path = auto; + sourceTree = ""; + }; + A790A3BD236B1F3F000451B5 /* tl */ = { + isa = PBXGroup; + children = ( + A790A3BE236B1F3F000451B5 /* tonlib_api.h */, + ); + path = tl; + sourceTree = ""; + }; + A790A3BF236B1F3F000451B5 /* tl */ = { + isa = PBXGroup; + children = ( + A790A3C0236B1F3F000451B5 /* TlObject.h */, + ); + path = tl; + sourceTree = ""; + }; + A790A3C1236B1F3F000451B5 /* tonlib */ = { + isa = PBXGroup; + children = ( + A790A3C2236B1F3F000451B5 /* tonlib_client_json.h */, + A790A3C3236B1F3F000451B5 /* tonlibjson_export.h */, + A790A3C4236B1F3F000451B5 /* Client.h */, + ); + path = tonlib; + sourceTree = ""; + }; + A790A3C5236B1F3F000451B5 /* td */ = { + isa = PBXGroup; + children = ( + A790A3C6236B1F3F000451B5 /* utils */, + ); + path = td; + sourceTree = ""; + }; + A790A3C6236B1F3F000451B5 /* utils */ = { + isa = PBXGroup; + children = ( + A790A3C7236B1F3F000451B5 /* Slice-decl.h */, + A790A3C8236B1F3F000451B5 /* config.h */, + A790A3C9236B1F3F000451B5 /* SharedSlice.h */, + A790A3CA236B1F3F000451B5 /* Slice.h */, + A790A3CB236B1F3F000451B5 /* int_types.h */, + A790A3CC236B1F3F000451B5 /* common.h */, + A790A3CD236B1F3F000451B5 /* check.h */, + A790A3CE236B1F3F000451B5 /* unique_ptr.h */, + A790A3CF236B1F3F000451B5 /* port */, + ); + path = utils; + sourceTree = ""; + }; + A790A3CF236B1F3F000451B5 /* port */ = { + isa = PBXGroup; + children = ( + A790A3D0236B1F3F000451B5 /* platform.h */, + ); + path = port; + sourceTree = ""; + }; + A790A3DF236B1F6A000451B5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7D2821F236C50700000A9BF /* libz.tbd */, + A790A409236B2019000451B5 /* SSignalKit.framework */, + A790A407236B2013000451B5 /* libc++.tbd */, + A790A3E4236B1F6A000451B5 /* libadnllite.a */, + A790A3EC236B1F6B000451B5 /* libcrc32c.a */, + A790A3E8236B1F6A000451B5 /* libkeys.a */, + A790A3E3236B1F6A000451B5 /* liblite-client-common.a */, + A790A3E2236B1F6A000451B5 /* libsmc-envelope.a */, + A790A3EF236B1F6B000451B5 /* libtdactor.a */, + A790A3E9236B1F6B000451B5 /* libtddb.a */, + A790A3F0236B1F6B000451B5 /* libtdnet.a */, + A790A3E1236B1F6A000451B5 /* libtdutils.a */, + A790A3E5236B1F6A000451B5 /* libtl_api.a */, + A790A3E7236B1F6A000451B5 /* libtl_lite_api.a */, + A790A3E0236B1F6A000451B5 /* libtl_tonlib_api.a */, + A790A3ED236B1F6B000451B5 /* libtl-lite-utils.a */, + A790A3E6236B1F6A000451B5 /* libtl-utils.a */, + A790A3EA236B1F6B000451B5 /* libton_block.a */, + A790A3EB236B1F6B000451B5 /* libton_crypto.a */, + A790A3EE236B1F6B000451B5 /* libtonlib.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + A790A402236B1FC1000451B5 /* Sources */ = { + isa = PBXGroup; + children = ( + A790A403236B1FC1000451B5 /* TON.mm */, + A790A404236B1FC1000451B5 /* TON.h */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/TonBinding/Sources"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A790A399236B1E36000451B5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A406236B1FC1000451B5 /* TON.h in Headers */, + A790A3A3236B1E36000451B5 /* TonBinding.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A790A39D236B1E36000451B5 /* TonBinding */ = { + isa = PBXNativeTarget; + buildConfigurationList = A790A3A6236B1E36000451B5 /* Build configuration list for PBXNativeTarget "TonBinding" */; + buildPhases = ( + A790A399236B1E36000451B5 /* Headers */, + A790A39A236B1E36000451B5 /* Sources */, + A790A39B236B1E36000451B5 /* Frameworks */, + A790A39C236B1E36000451B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TonBinding; + productName = TonBindings; + productReference = A790A39E236B1E36000451B5 /* TonBinding.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A790A395236B1E36000451B5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A790A39D236B1E36000451B5 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A790A398236B1E36000451B5 /* Build configuration list for PBXProject "TonBinding_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A790A394236B1E36000451B5; + productRefGroup = A790A39F236B1E36000451B5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A790A39D236B1E36000451B5 /* TonBinding */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A790A39C236B1E36000451B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A790A39A236B1E36000451B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A790A405236B1FC1000451B5 /* TON.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A790A3A5236B1E36000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A790A3A8236B1E36000451B5 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = "../../thrid-party/ton/include/"; + INFOPLIST_FILE = TonBinding/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "../../thrid-party/ton/lib/"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TonBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + }; + name = DebugHockeyapp; + }; + A790A3A9236B1E57000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A790A3AA236B1E57000451B5 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = "../../thrid-party/ton/include/"; + INFOPLIST_FILE = TonBinding/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "../../thrid-party/ton/lib/"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TonBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + }; + name = HockeyappMacAlpha; + }; + A790A3AD236B1E63000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A790A3AE236B1E63000451B5 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = "../../thrid-party/ton/include/"; + INFOPLIST_FILE = TonBinding/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "../../thrid-party/ton/lib/"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TonBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + }; + name = DebugAppStore; + }; + A790A3B1236B1E70000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A790A3B2236B1E70000451B5 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = "../../thrid-party/ton/include/"; + INFOPLIST_FILE = TonBinding/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "../../thrid-party/ton/lib/"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TonBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + }; + name = ReleaseHockeyapp; + }; + A790A3B5236B1E7E000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A790A3B6236B1E7E000451B5 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = "../../thrid-party/ton/include/"; + INFOPLIST_FILE = TonBinding/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "../../thrid-party/ton/lib/"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TonBinding; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + }; + name = ReleaseAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A790A398236B1E36000451B5 /* Build configuration list for PBXProject "TonBinding_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A3A5236B1E36000451B5 /* DebugHockeyapp */, + A790A3A9236B1E57000451B5 /* HockeyappMacAlpha */, + A790A3AD236B1E63000451B5 /* DebugAppStore */, + A790A3B1236B1E70000451B5 /* ReleaseHockeyapp */, + A790A3B5236B1E7E000451B5 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + A790A3A6236B1E36000451B5 /* Build configuration list for PBXNativeTarget "TonBinding" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A790A3A8236B1E36000451B5 /* DebugHockeyapp */, + A790A3AA236B1E57000451B5 /* HockeyappMacAlpha */, + A790A3AE236B1E63000451B5 /* DebugAppStore */, + A790A3B2236B1E70000451B5 /* ReleaseHockeyapp */, + A790A3B6236B1E7E000451B5 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = A790A395236B1E36000451B5 /* Project object */; +} diff --git a/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..e48b38aa5 --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..2e894ce4c5550e6a6de4baeb580299d2284cd6b9 GIT binary patch literal 47743 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..d51cc456b --- /dev/null +++ b/core-xprojects/TonBinding/TonBinding_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + TonBinding.xcscheme_^#shared#^_ + + orderHint + 11 + + + SuppressBuildableAutocreation + + A790A39D236B1E36000451B5 + + primary + + + + + diff --git a/core-xprojects/WalletCore/WalletCore/Info.plist b/core-xprojects/WalletCore/WalletCore/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/core-xprojects/WalletCore/WalletCore/WalletCore.h b/core-xprojects/WalletCore/WalletCore/WalletCore.h new file mode 100644 index 000000000..05d9f8acf --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore/WalletCore.h @@ -0,0 +1,19 @@ +// +// WalletCore.h +// WalletCore +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for WalletCore. +FOUNDATION_EXPORT double WalletCoreVersionNumber; + +//! Project version string for WalletCore. +FOUNDATION_EXPORT const unsigned char WalletCoreVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.pbxproj b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..67b8c5feb --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,675 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A701F783236B25E0002ABF81 /* WalletCore.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F781236B25E0002ABF81 /* WalletCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F78B236B25F6002ABF81 /* WalletCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A701F78A236B25F6002ABF81 /* WalletCore.swift */; }; + A701F7A7236B27CF002ABF81 /* TonBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A701F7A6236B27CF002ABF81 /* TonBinding.framework */; }; + A7D28217236C3DDF0000A9BF /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28216236C3DDF0000A9BF /* SwiftSignalKit.framework */; }; + A7D28219236C3EC80000A9BF /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28218236C3EC80000A9BF /* libcrypto.a */; }; + A7D2821B236C3EEB0000A9BF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D2821A236C3EEB0000A9BF /* libc++.tbd */; }; + A7D28225236C509A0000A9BF /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28224236C509A0000A9BF /* libz.tbd */; }; + A7D2823A236C68810000A9BF /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28239236C68810000A9BF /* SSignalKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A701F77E236B25E0002ABF81 /* WalletCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WalletCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F781236B25E0002ABF81 /* WalletCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WalletCore.h; sourceTree = ""; }; + A701F782236B25E0002ABF81 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A701F78A236B25F6002ABF81 /* WalletCore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletCore.swift; sourceTree = ""; }; + A701F79D236B268E002ABF81 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F79F236B2692002ABF81 /* TonBindings.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TonBindings.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F7A4236B27CB002ABF81 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F7A6236B27CF002ABF81 /* TonBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TonBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28216236C3DDF0000A9BF /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D28218236C3EC80000A9BF /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../thrid-party/openssl/lib/libcrypto.a"; sourceTree = ""; }; + A7D2821A236C3EEB0000A9BF /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + A7D28224236C509A0000A9BF /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + A7D28239236C68810000A9BF /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A701F77B236B25E0002ABF81 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D2823A236C68810000A9BF /* SSignalKit.framework in Frameworks */, + A7D28225236C509A0000A9BF /* libz.tbd in Frameworks */, + A7D2821B236C3EEB0000A9BF /* libc++.tbd in Frameworks */, + A7D28217236C3DDF0000A9BF /* SwiftSignalKit.framework in Frameworks */, + A701F7A7236B27CF002ABF81 /* TonBinding.framework in Frameworks */, + A7D28219236C3EC80000A9BF /* libcrypto.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A701F774236B25E0002ABF81 = { + isa = PBXGroup; + children = ( + A701F789236B25F6002ABF81 /* Sources */, + A701F780236B25E0002ABF81 /* WalletCore */, + A701F77F236B25E0002ABF81 /* Products */, + A701F79C236B268E002ABF81 /* Frameworks */, + ); + sourceTree = ""; + }; + A701F77F236B25E0002ABF81 /* Products */ = { + isa = PBXGroup; + children = ( + A701F77E236B25E0002ABF81 /* WalletCore.framework */, + ); + name = Products; + sourceTree = ""; + }; + A701F780236B25E0002ABF81 /* WalletCore */ = { + isa = PBXGroup; + children = ( + A701F781236B25E0002ABF81 /* WalletCore.h */, + A701F782236B25E0002ABF81 /* Info.plist */, + ); + path = WalletCore; + sourceTree = ""; + }; + A701F789236B25F6002ABF81 /* Sources */ = { + isa = PBXGroup; + children = ( + A701F78A236B25F6002ABF81 /* WalletCore.swift */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/WalletCore/Sources"; + sourceTree = ""; + }; + A701F79C236B268E002ABF81 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7D28239236C68810000A9BF /* SSignalKit.framework */, + A7D28224236C509A0000A9BF /* libz.tbd */, + A7D2821A236C3EEB0000A9BF /* libc++.tbd */, + A7D28218236C3EC80000A9BF /* libcrypto.a */, + A7D28216236C3DDF0000A9BF /* SwiftSignalKit.framework */, + A701F7A6236B27CF002ABF81 /* TonBinding.framework */, + A701F7A4236B27CB002ABF81 /* SwiftSignalKitMac.framework */, + A701F79F236B2692002ABF81 /* TonBindings.framework */, + A701F79D236B268E002ABF81 /* SwiftSignalKitMac.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A701F779236B25E0002ABF81 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F783236B25E0002ABF81 /* WalletCore.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A701F77D236B25E0002ABF81 /* WalletCore */ = { + isa = PBXNativeTarget; + buildConfigurationList = A701F786236B25E0002ABF81 /* Build configuration list for PBXNativeTarget "WalletCore" */; + buildPhases = ( + A701F779236B25E0002ABF81 /* Headers */, + A701F77A236B25E0002ABF81 /* Sources */, + A701F77B236B25E0002ABF81 /* Frameworks */, + A701F77C236B25E0002ABF81 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = WalletCore; + productName = WalletCore; + productReference = A701F77E236B25E0002ABF81 /* WalletCore.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A701F775236B25E0002ABF81 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A701F77D236B25E0002ABF81 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A701F778236B25E0002ABF81 /* Build configuration list for PBXProject "WalletCore_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A701F774236B25E0002ABF81; + productRefGroup = A701F77F236B25E0002ABF81 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A701F77D236B25E0002ABF81 /* WalletCore */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A701F77C236B25E0002ABF81 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A701F77A236B25E0002ABF81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F78B236B25F6002ABF81 /* WalletCore.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A701F785236B25E0002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A701F788236B25E0002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "../../thrid-party/openssl/"; + INFOPLIST_FILE = WalletCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "../../thrid-party/openssl/lib/", + "../../thrid-party/ton/lib/", + ); + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.WalletCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = DebugHockeyapp; + }; + A701F78C236B261D002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A701F78D236B261D002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "../../thrid-party/openssl/"; + INFOPLIST_FILE = WalletCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "../../thrid-party/openssl/lib/", + "../../thrid-party/ton/lib/", + ); + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.WalletCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = HockeyappMacAlpha; + }; + A701F790236B2628002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A701F791236B2628002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "../../thrid-party/openssl/"; + INFOPLIST_FILE = WalletCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "../../thrid-party/openssl/lib/", + "../../thrid-party/ton/lib/", + ); + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.WalletCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = DebugAppStore; + }; + A701F794236B2634002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A701F795236B2634002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "../../thrid-party/openssl/"; + INFOPLIST_FILE = WalletCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "../../thrid-party/openssl/lib/", + "../../thrid-party/ton/lib/", + ); + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.WalletCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = ReleaseHockeyapp; + }; + A701F798236B2643002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A701F799236B2643002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + HEADER_SEARCH_PATHS = "../../thrid-party/openssl/"; + INFOPLIST_FILE = WalletCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "../../thrid-party/openssl/lib/", + "../../thrid-party/ton/lib/", + ); + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.WalletCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = ReleaseAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A701F778236B25E0002ABF81 /* Build configuration list for PBXProject "WalletCore_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F785236B25E0002ABF81 /* DebugHockeyapp */, + A701F78C236B261D002ABF81 /* HockeyappMacAlpha */, + A701F790236B2628002ABF81 /* DebugAppStore */, + A701F794236B2634002ABF81 /* ReleaseHockeyapp */, + A701F798236B2643002ABF81 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + A701F786236B25E0002ABF81 /* Build configuration list for PBXNativeTarget "WalletCore" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F788236B25E0002ABF81 /* DebugHockeyapp */, + A701F78D236B261D002ABF81 /* HockeyappMacAlpha */, + A701F791236B2628002ABF81 /* DebugAppStore */, + A701F795236B2634002ABF81 /* ReleaseHockeyapp */, + A701F799236B2643002ABF81 /* ReleaseAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = A701F775236B25E0002ABF81 /* Project object */; +} diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..ed2c0d4a4 --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c48a1f54986ba3e142b6583b53796c3e38085427 GIT binary patch literal 44254 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 tL|vlRsC8@ literal 0 HcmV?d00001 diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcshareddata/xcschemes/WalletCore.xcscheme b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcshareddata/xcschemes/WalletCore.xcscheme new file mode 100644 index 000000000..000486df3 --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcshareddata/xcschemes/WalletCore.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..0d560590c --- /dev/null +++ b/core-xprojects/WalletCore/WalletCore_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + WalletCore.xcscheme_^#shared#^_ + + orderHint + 25 + + + SuppressBuildableAutocreation + + A701F77D236B25E0002ABF81 + + primary + + + + + diff --git a/core-xprojects/crc32/Crc32/Crc32 b/core-xprojects/crc32/Crc32/Crc32 new file mode 100644 index 000000000..b9b4f486c --- /dev/null +++ b/core-xprojects/crc32/Crc32/Crc32 @@ -0,0 +1,9 @@ +#import + +//! Project version number for crc32mac. +FOUNDATION_EXPORT double crc32VersionNumber; + +//! Project version string for crc32mac. +FOUNDATION_EXPORT const unsigned char crc32VersionString[]; + +uint32_t Crc32(const void *bytes, int length); diff --git a/core-xprojects/crc32/Crc32/Crc32.h b/core-xprojects/crc32/Crc32/Crc32.h new file mode 100644 index 000000000..f890c2c16 --- /dev/null +++ b/core-xprojects/crc32/Crc32/Crc32.h @@ -0,0 +1,9 @@ +#import + +//! Project version number for crc32mac. +FOUNDATION_EXPORT double Crc32VersionNumber; + +//! Project version string for crc32mac. +FOUNDATION_EXPORT const unsigned char Crc32VersionString[]; + +uint32_t Crc32(const void *bytes, int length); diff --git a/core-xprojects/crc32/Crc32/Info.plist b/core-xprojects/crc32/Crc32/Info.plist new file mode 100644 index 000000000..5371a6e10 --- /dev/null +++ b/core-xprojects/crc32/Crc32/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram Messenger LLP. All rights reserved. + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.pbxproj b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..d5f5b89fc --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,896 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A701F930236C1D9E002ABF81 /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F92F236C1D9E002ABF81 /* Crc32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D03E463E2306E22E0049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A701F92F236C1D9E002ABF81 /* Crc32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; }; + D03E45672305CC310049C28B /* Crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; }; + D03E45732305CCD20049C28B /* Crc32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Crc32.m; sourceTree = ""; }; + D03E45762305CCEB0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D03E45782305CCF00049C28B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + D03E46322306E0BB0049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E46352306E0BB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D03E462F2306E0BB0049C28B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D03E455A2305CC310049C28B = { + isa = PBXGroup; + children = ( + D03E45662305CC310049C28B /* Sources */, + D03E46332306E0BB0049C28B /* Crc32 */, + D03E45652305CC310049C28B /* Products */, + D03E45752305CCEB0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E45652305CC310049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D03E46322306E0BB0049C28B /* Crc32.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E45662305CC310049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E45732305CCD20049C28B /* Crc32.m */, + D03E45672305CC310049C28B /* Crc32.h */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/Crc32/Sources"; + sourceTree = ""; + }; + D03E45752305CCEB0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E45782305CCF00049C28B /* libz.tbd */, + D03E45762305CCEB0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D03E46332306E0BB0049C28B /* Crc32 */ = { + isa = PBXGroup; + children = ( + A701F92F236C1D9E002ABF81 /* Crc32.h */, + D03E46352306E0BB0049C28B /* Info.plist */, + ); + path = Crc32; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D03E462D2306E0BB0049C28B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F930236C1D9E002ABF81 /* Crc32.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D03E46312306E0BB0049C28B /* Crc32 */ = { + isa = PBXNativeTarget; + buildConfigurationList = D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "Crc32" */; + buildPhases = ( + D03E462D2306E0BB0049C28B /* Headers */, + D03E462E2306E0BB0049C28B /* Sources */, + D03E462F2306E0BB0049C28B /* Frameworks */, + D03E46302306E0BB0049C28B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Crc32; + productName = crc32mac; + productReference = D03E46322306E0BB0049C28B /* Crc32.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E455B2305CC310049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D03E46312306E0BB0049C28B = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E455A2305CC310049C28B; + productRefGroup = D03E45652305CC310049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D03E46312306E0BB0049C28B /* Crc32 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D03E46302306E0BB0049C28B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D03E462E2306E0BB0049C28B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D03E463E2306E22E0049C28B /* Crc32.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = crc32/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0208AAF2306E7F700A23503 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0208AB12306E7F700A23503 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = crc32/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0208AB22306E7FD00A23503 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0208AB42306E7FD00A23503 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = crc32/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0208AB52306E80300A23503 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D0208AB72306E80300A23503 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = crc32/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D03E456F2305CC4E0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D03E46382306E0BB0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + FRAMEWORK_VERSION = A; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = crc32/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E456F2305CC4E0049C28B /* DebugHockeyapp */, + D0208AAF2306E7F700A23503 /* DebugAppStore */, + D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */, + D0208AB22306E7FD00A23503 /* ReleaseAppStore */, + D0208AB52306E80300A23503 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "Crc32" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E46382306E0BB0049C28B /* DebugHockeyapp */, + D0208AB12306E7F700A23503 /* DebugAppStore */, + D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */, + D0208AB42306E7FD00A23503 /* ReleaseAppStore */, + D0208AB72306E80300A23503 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E455B2305CC310049C28B /* Project object */; +} diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..37cfdeee1baca8cbd9a95fcb2552462e4ce1c01b GIT binary patch literal 26466 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 L(RcZ)Z2$iN$y1zs literal 0 HcmV?d00001 diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Crc32.xcscheme b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Crc32.xcscheme new file mode 100644 index 000000000..418ab0432 --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/Crc32.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/crc32mac.xcscheme b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/crc32mac.xcscheme new file mode 100644 index 000000000..6af0c92ac --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/crc32mac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..1dd720508 --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,41 @@ + + + + + SchemeUserState + + Crc32.xcscheme + + isShown + + orderHint + 36 + + Crc32Mac.xcscheme_^#shared#^_ + + orderHint + 30 + + crc32mac.xcscheme + + isShown + + orderHint + 39 + + + SuppressBuildableAutocreation + + D03E45632305CC310049C28B + + primary + + + D03E46312306E0BB0049C28B + + primary + + + + + diff --git a/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..ac50275be --- /dev/null +++ b/core-xprojects/crc32/Crc32_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Crc32.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + D03E46312306E0BB0049C28B + + primary + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber/Info.plist b/core-xprojects/libphonenumber/libphonenumber/Info.plist new file mode 100644 index 000000000..5371a6e10 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram Messenger LLP. All rights reserved. + + diff --git a/core-xprojects/libphonenumber/libphonenumber/libphonenumber.h b/core-xprojects/libphonenumber/libphonenumber/libphonenumber.h new file mode 100644 index 000000000..798e6a43e --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber/libphonenumber.h @@ -0,0 +1,12 @@ +#import + +//! Project version number for libphonenumber_Mac. +FOUNDATION_EXPORT double libphonenumber_VersionNumber; + +//! Project version string for libphonenumber_Mac. +FOUNDATION_EXPORT const unsigned char libphonenumber_VersionString[]; + +#import +#import +#import +#import diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..47ab04cc5 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,735 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D0208ABF2306E85800A23503 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */; }; + D0208AC02306E85800A23503 /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */; }; + D0208AC12306E85800A23503 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45992305D1EF0049C28B /* NBNumberFormat.h */; }; + D0208AC32306E85800A23503 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0208AC42306E85800A23503 /* libphonenumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0208AB92306E84F00A23503 /* libphonenumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0208AC52306E85800A23503 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */; }; + D0208AC62306E85800A23503 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0208AC72306E85800A23503 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0208AC82306E85800A23503 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D0208AC92306E85800A23503 /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459E2305D1EF0049C28B /* NBMetadataCore.h */; }; + D0208ACA2306E85800A23503 /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */; }; + D0208ACB2306E85800A23503 /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */; }; + D0208ACC2306E85800A23503 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */; }; + D0208ACD2306E85800A23503 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */; }; + D0208ACF2306E85800A23503 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */; }; + D0208AD02306E85800A23503 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */; }; + D0208AD12306E85800A23503 /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */; }; + D0208AD22306E85800A23503 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AE2305D1F10049C28B /* NBNumberFormat.m */; }; + D0208AD32306E85800A23503 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */; }; + D0208AD42306E85800A23503 /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A92305D1F00049C28B /* NBMetadataCore.m */; }; + D0208AD52306E85800A23503 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */; }; + D0208AD62306E85800A23503 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */; }; + D0208AD72306E85800A23503 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */; }; + D0208AD82306E85800A23503 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */; }; + D0208AD92306E85800A23503 /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */; }; + D0208ADA2306E85800A23503 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */; }; + D0208ADB2306E85800A23503 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */; }; + D0208ADD2306E85800A23503 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45CE2305D32D0049C28B /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D0208AB92306E84F00A23503 /* libphonenumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libphonenumber.h; sourceTree = ""; }; + D0208ABA2306E84F00A23503 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0208AE52306E85800A23503 /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D03E458D2305CE840049C28B /* libphonenumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libphonenumber.h; sourceTree = ""; }; + D03E45992305D1EF0049C28B /* NBNumberFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBNumberFormat.h; sourceTree = ""; }; + D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataHelper.h; sourceTree = ""; }; + D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTest.h; sourceTree = ""; }; + D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDefines.h; sourceTree = ""; }; + D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBAsYouTypeFormatter.h; sourceTree = ""; }; + D03E459E2305D1EF0049C28B /* NBMetadataCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCore.h; sourceTree = ""; }; + D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDesc.m; sourceTree = ""; }; + D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreMapper.h; sourceTree = ""; }; + D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDefines.m; sourceTree = ""; }; + D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaDataGenerator.h; sourceTree = ""; }; + D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTestMapper.m; sourceTree = ""; }; + D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreMapper.m; sourceTree = ""; }; + D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberUtil.m; sourceTree = ""; }; + D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberUtil.h; sourceTree = ""; }; + D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDesc.h; sourceTree = ""; }; + D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTestMapper.h; sourceTree = ""; }; + D03E45A92305D1F00049C28B /* NBMetadataCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCore.m; sourceTree = ""; }; + D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumber.h; sourceTree = ""; }; + D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaDataGenerator.m; sourceTree = ""; }; + D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataHelper.m; sourceTree = ""; }; + D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumber.m; sourceTree = ""; }; + D03E45AE2305D1F10049C28B /* NBNumberFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBNumberFormat.m; sourceTree = ""; }; + D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaData.m; sourceTree = ""; }; + D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaData.h; sourceTree = ""; }; + D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBAsYouTypeFormatter.m; sourceTree = ""; }; + D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTest.m; sourceTree = ""; }; + D03E45CE2305D32D0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0208ADC2306E85800A23503 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D0208ADD2306E85800A23503 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D0208AB82306E84F00A23503 /* libphonenumber */ = { + isa = PBXGroup; + children = ( + D0208AB92306E84F00A23503 /* libphonenumber.h */, + D0208ABA2306E84F00A23503 /* Info.plist */, + ); + path = libphonenumber; + sourceTree = ""; + }; + D03E45802305CE830049C28B = { + isa = PBXGroup; + children = ( + D0208AB82306E84F00A23503 /* libphonenumber */, + D03E458C2305CE840049C28B /* Sources */, + D03E458B2305CE830049C28B /* Products */, + D03E45CD2305D32D0049C28B /* Frameworks */, + ); + sourceTree = ""; + }; + D03E458B2305CE830049C28B /* Products */ = { + isa = PBXGroup; + children = ( + D0208AE52306E85800A23503 /* libphonenumber.framework */, + ); + name = Products; + sourceTree = ""; + }; + D03E458C2305CE840049C28B /* Sources */ = { + isa = PBXGroup; + children = ( + D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */, + D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */, + D03E459E2305D1EF0049C28B /* NBMetadataCore.h */, + D03E45A92305D1F00049C28B /* NBMetadataCore.m */, + D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */, + D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */, + D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */, + D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */, + D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */, + D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */, + D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */, + D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */, + D03E45992305D1EF0049C28B /* NBNumberFormat.h */, + D03E45AE2305D1F10049C28B /* NBNumberFormat.m */, + D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */, + D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */, + D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */, + D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */, + D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */, + D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */, + D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */, + D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */, + D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */, + D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */, + D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */, + D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */, + D03E458D2305CE840049C28B /* libphonenumber.h */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/libphonenumber/Sources"; + sourceTree = ""; + }; + D03E45CD2305D32D0049C28B /* Frameworks */ = { + isa = PBXGroup; + children = ( + D03E45CE2305D32D0049C28B /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D0208ABE2306E85800A23503 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D0208AC42306E85800A23503 /* libphonenumber.h in Headers */, + D0208ABF2306E85800A23503 /* NBMetadataCoreTest.h in Headers */, + D0208AC02306E85800A23503 /* NBPhoneMetaDataGenerator.h in Headers */, + D0208AC12306E85800A23503 /* NBNumberFormat.h in Headers */, + D0208AC32306E85800A23503 /* NBPhoneNumberUtil.h in Headers */, + D0208AC52306E85800A23503 /* NBMetadataCoreMapper.h in Headers */, + D0208AC62306E85800A23503 /* NBAsYouTypeFormatter.h in Headers */, + D0208AC72306E85800A23503 /* NBPhoneNumber.h in Headers */, + D0208AC82306E85800A23503 /* NBPhoneNumberDefines.h in Headers */, + D0208AC92306E85800A23503 /* NBMetadataCore.h in Headers */, + D0208ACA2306E85800A23503 /* NBPhoneMetaData.h in Headers */, + D0208ACB2306E85800A23503 /* NBPhoneNumberDesc.h in Headers */, + D0208ACC2306E85800A23503 /* NBMetadataHelper.h in Headers */, + D0208ACD2306E85800A23503 /* NBMetadataCoreTestMapper.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D0208ABD2306E85800A23503 /* libphonenumber */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0208AE02306E85800A23503 /* Build configuration list for PBXNativeTarget "libphonenumber" */; + buildPhases = ( + D0208ABE2306E85800A23503 /* Headers */, + D0208ACE2306E85800A23503 /* Sources */, + D0208ADC2306E85800A23503 /* Frameworks */, + D0208ADE2306E85800A23503 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libphonenumber; + productName = "libphonenumber-iOS"; + productReference = D0208AE52306E85800A23503 /* libphonenumber.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D03E45812305CE830049C28B /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + }; + buildConfigurationList = D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D03E45802305CE830049C28B; + productRefGroup = D03E458B2305CE830049C28B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0208ABD2306E85800A23503 /* libphonenumber */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0208ADE2306E85800A23503 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0208ACE2306E85800A23503 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0208ACF2306E85800A23503 /* NBMetadataCoreMapper.m in Sources */, + D0208AD02306E85800A23503 /* NBMetadataCoreTestMapper.m in Sources */, + D0208AD12306E85800A23503 /* NBPhoneNumberDefines.m in Sources */, + D0208AD22306E85800A23503 /* NBNumberFormat.m in Sources */, + D0208AD32306E85800A23503 /* NBAsYouTypeFormatter.m in Sources */, + D0208AD42306E85800A23503 /* NBMetadataCore.m in Sources */, + D0208AD52306E85800A23503 /* NBPhoneNumberDesc.m in Sources */, + D0208AD62306E85800A23503 /* NBPhoneNumber.m in Sources */, + D0208AD72306E85800A23503 /* NBPhoneMetaData.m in Sources */, + D0208AD82306E85800A23503 /* NBMetadataCoreTest.m in Sources */, + D0208AD92306E85800A23503 /* NBPhoneMetaDataGenerator.m in Sources */, + D0208ADA2306E85800A23503 /* NBMetadataHelper.m in Sources */, + D0208ADB2306E85800A23503 /* NBPhoneNumberUtil.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D0208AE22306E85800A23503 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = libphonenumber/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D0208AE72306E86800A23503 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + D0208AE92306E86800A23503 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = libphonenumber/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStore; + }; + D0208AEA2306E87100A23503 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + D0208AEC2306E87100A23503 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = libphonenumber/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = HockeyappMacAlpha; + }; + D0208AED2306E87700A23503 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + D0208AEF2306E87700A23503 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = libphonenumber/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStore; + }; + D0208AF02306E87E00A23503 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + D0208AF22306E87E00A23503 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Manual; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = libphonenumber/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyapp; + }; + D03E45952305CE9A0049C28B /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D0208AE02306E85800A23503 /* Build configuration list for PBXNativeTarget "libphonenumber" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0208AE22306E85800A23503 /* DebugHockeyapp */, + D0208AEC2306E87100A23503 /* HockeyappMacAlpha */, + D0208AE92306E86800A23503 /* DebugAppStore */, + D0208AEF2306E87700A23503 /* ReleaseAppStore */, + D0208AF22306E87E00A23503 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; + D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D03E45952305CE9A0049C28B /* DebugHockeyapp */, + D0208AEA2306E87100A23503 /* HockeyappMacAlpha */, + D0208AE72306E86800A23503 /* DebugAppStore */, + D0208AED2306E87700A23503 /* ReleaseAppStore */, + D0208AF02306E87E00A23503 /* ReleaseHockeyapp */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = DebugHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = D03E45812305CE830049C28B /* Project object */; +} diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..0630bef85de5489404c8cb77110e0b36f0637e56 GIT binary patch literal 23073 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumber.xcscheme b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumber.xcscheme new file mode 100644 index 000000000..53e697788 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumber.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumbermac.xcscheme b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumbermac.xcscheme new file mode 100644 index 000000000..d5e51cba1 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/libphonenumbermac.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..413455ff2 --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,41 @@ + + + + + SchemeUserState + + libphonenumber copy.xcscheme_^#shared#^_ + + orderHint + 46 + + libphonenumber.xcscheme + + isShown + + orderHint + 27 + + libphonenumbermac.xcscheme + + isShown + + orderHint + 33 + + + SuppressBuildableAutocreation + + D0208ABD2306E85800A23503 + + primary + + + D03E45892305CE830049C28B + + primary + + + + + diff --git a/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..04332188f --- /dev/null +++ b/core-xprojects/libphonenumber/libphonenumber_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + libphonenumber.xcscheme_^#shared#^_ + + orderHint + 6 + + + + diff --git a/core-xprojects/sqlcipher/sqlcipher/Info.plist b/core-xprojects/sqlcipher/sqlcipher/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/core-xprojects/sqlcipher/sqlcipher/sqlcipher.h b/core-xprojects/sqlcipher/sqlcipher/sqlcipher.h new file mode 100644 index 000000000..195799384 --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher/sqlcipher.h @@ -0,0 +1,23 @@ +// +// sqlcipher.h +// sqlcipher +// +// Created by Mikhail Filimonov on 31.10.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for sqlcipher. +FOUNDATION_EXPORT double sqlcipherVersionNumber; + +//! Project version string for sqlcipher. +FOUNDATION_EXPORT const unsigned char sqlcipherVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import +#import +#import + diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..d42c59e49 --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,664 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A701F902236B2EF8002ABF81 /* sqlcipher.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F900236B2EF8002ABF81 /* sqlcipher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F911236B2F01002ABF81 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = A701F909236B2F01002ABF81 /* sqlite3.c */; }; + A701F912236B2F01002ABF81 /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F90A236B2F01002ABF81 /* SQLite-Bridging.h */; }; + A701F914236B2F01002ABF81 /* sqlcipher_config.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F90C236B2F01002ABF81 /* sqlcipher_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F916236B2F01002ABF81 /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F90E236B2F01002ABF81 /* sqlite3ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A701F918236B2F01002ABF81 /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F910236B2F01002ABF81 /* fts3_tokenizer.h */; }; + A701F920236B2FF3002ABF81 /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = A701F90D236B2F01002ABF81 /* sqlite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A701F8FD236B2EF8002ABF81 /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A701F900236B2EF8002ABF81 /* sqlcipher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlcipher.h; sourceTree = ""; }; + A701F901236B2EF8002ABF81 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A701F909236B2F01002ABF81 /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sqlite3.c; sourceTree = ""; }; + A701F90A236B2F01002ABF81 /* SQLite-Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SQLite-Bridging.h"; sourceTree = ""; }; + A701F90B236B2F01002ABF81 /* sqlcipher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlcipher.h; sourceTree = ""; }; + A701F90C236B2F01002ABF81 /* sqlcipher_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlcipher_config.h; sourceTree = ""; }; + A701F90D236B2F01002ABF81 /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3.h; sourceTree = ""; }; + A701F90E236B2F01002ABF81 /* sqlite3ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3ext.h; sourceTree = ""; }; + A701F90F236B2F01002ABF81 /* SQLite-Bridging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SQLite-Bridging.m"; sourceTree = ""; }; + A701F910236B2F01002ABF81 /* fts3_tokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fts3_tokenizer.h; sourceTree = ""; }; + A701F922236B3172002ABF81 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A701F8FA236B2EF8002ABF81 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A701F8F3236B2EF8002ABF81 = { + isa = PBXGroup; + children = ( + A701F908236B2F01002ABF81 /* Sources */, + A701F8FF236B2EF8002ABF81 /* sqlcipher */, + A701F8FE236B2EF8002ABF81 /* Products */, + A701F921236B3171002ABF81 /* Frameworks */, + ); + sourceTree = ""; + }; + A701F8FE236B2EF8002ABF81 /* Products */ = { + isa = PBXGroup; + children = ( + A701F8FD236B2EF8002ABF81 /* sqlcipher.framework */, + ); + name = Products; + sourceTree = ""; + }; + A701F8FF236B2EF8002ABF81 /* sqlcipher */ = { + isa = PBXGroup; + children = ( + A701F900236B2EF8002ABF81 /* sqlcipher.h */, + A701F901236B2EF8002ABF81 /* Info.plist */, + ); + path = sqlcipher; + sourceTree = ""; + }; + A701F908236B2F01002ABF81 /* Sources */ = { + isa = PBXGroup; + children = ( + A701F909236B2F01002ABF81 /* sqlite3.c */, + A701F90A236B2F01002ABF81 /* SQLite-Bridging.h */, + A701F90B236B2F01002ABF81 /* sqlcipher.h */, + A701F90C236B2F01002ABF81 /* sqlcipher_config.h */, + A701F90D236B2F01002ABF81 /* sqlite3.h */, + A701F90E236B2F01002ABF81 /* sqlite3ext.h */, + A701F90F236B2F01002ABF81 /* SQLite-Bridging.m */, + A701F910236B2F01002ABF81 /* fts3_tokenizer.h */, + ); + name = Sources; + path = "../../submodules/telegram-ios/submodules/sqlcipher/Sources"; + sourceTree = ""; + }; + A701F921236B3171002ABF81 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A701F922236B3172002ABF81 /* libsqlite3.tbd */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A701F8F8236B2EF8002ABF81 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F914236B2F01002ABF81 /* sqlcipher_config.h in Headers */, + A701F916236B2F01002ABF81 /* sqlite3ext.h in Headers */, + A701F920236B2FF3002ABF81 /* sqlite3.h in Headers */, + A701F918236B2F01002ABF81 /* fts3_tokenizer.h in Headers */, + A701F912236B2F01002ABF81 /* SQLite-Bridging.h in Headers */, + A701F902236B2EF8002ABF81 /* sqlcipher.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A701F8FC236B2EF8002ABF81 /* sqlcipher */ = { + isa = PBXNativeTarget; + buildConfigurationList = A701F905236B2EF8002ABF81 /* Build configuration list for PBXNativeTarget "sqlcipher" */; + buildPhases = ( + A701F8F8236B2EF8002ABF81 /* Headers */, + A701F8F9236B2EF8002ABF81 /* Sources */, + A701F8FA236B2EF8002ABF81 /* Frameworks */, + A701F8FB236B2EF8002ABF81 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = sqlcipher; + productName = sqlcipher; + productReference = A701F8FD236B2EF8002ABF81 /* sqlcipher.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A701F8F4236B2EF8002ABF81 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A701F8FC236B2EF8002ABF81 = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A701F8F7236B2EF8002ABF81 /* Build configuration list for PBXProject "sqlcipher" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A701F8F3236B2EF8002ABF81; + productRefGroup = A701F8FE236B2EF8002ABF81 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A701F8FC236B2EF8002ABF81 /* sqlcipher */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A701F8FB236B2EF8002ABF81 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A701F8F9236B2EF8002ABF81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A701F911236B2F01002ABF81 /* sqlite3.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A701F903236B2EF8002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A701F904236B2EF8002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A701F906236B2EF8002ABF81 /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_PREPROCESSOR_DEFINITIONS = ""; + INFOPLIST_FILE = sqlcipher/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugAppStore; + }; + A701F907236B2EF8002ABF81 /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = sqlcipher/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseAppStore; + }; + A701F91A236B2F84002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A701F91B236B2F84002ABF81 /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = sqlcipher/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseHockeyapp; + }; + A701F91C236B2F89002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A701F91D236B2F89002ABF81 /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = sqlcipher/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugHockeyapp; + }; + A701F91E236B2F90002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyappMacAlpha; + }; + A701F91F236B2F90002ABF81 /* HockeyappMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = sqlcipher/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC=1", + "-DSQLCIPHER_CRYPTO_CC=1", + "-DSQLITE_ENABLE_FTS5", + "-DSQLITE_DEFAULT_MEMSTATUS=0", + "-DNDEBUG", + ); + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = HockeyappMacAlpha; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A701F8F7236B2EF8002ABF81 /* Build configuration list for PBXProject "sqlcipher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F903236B2EF8002ABF81 /* DebugAppStore */, + A701F904236B2EF8002ABF81 /* ReleaseAppStore */, + A701F91A236B2F84002ABF81 /* ReleaseHockeyapp */, + A701F91C236B2F89002ABF81 /* DebugHockeyapp */, + A701F91E236B2F90002ABF81 /* HockeyappMacAlpha */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStore; + }; + A701F905236B2EF8002ABF81 /* Build configuration list for PBXNativeTarget "sqlcipher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A701F906236B2EF8002ABF81 /* DebugAppStore */, + A701F907236B2EF8002ABF81 /* ReleaseAppStore */, + A701F91B236B2F84002ABF81 /* ReleaseHockeyapp */, + A701F91D236B2F89002ABF81 /* DebugHockeyapp */, + A701F91F236B2F90002ABF81 /* HockeyappMacAlpha */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStore; + }; +/* End XCConfigurationList section */ + }; + rootObject = A701F8F4236B2EF8002ABF81 /* Project object */; +} diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..9f308709d --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..83ccf0d58e639a4c72db71a499053053428ebd4e GIT binary patch literal 33206 zcmd75349a9+c>_nS9+!?JvdteJ!nhMwCT-}wkZU9(Ikb^(vT);n>J0_q~!*8kwXqe zK~O}|76cIl6;DJIQ4s|c5EM@oQ9x8YP!yE^GrLXN3i$H%{r%t1my%?6cIKI9o_Xe( zXJ($~+1eJH)zy}q{62vQlAs8hU^(ztZ=7`Y;&|sigeUA zT1;)OJ_K6yh(Q)mq8)FUX)&w1G94kj2yeZ%&Ddt)(2hWIFyTx15q*h%M1LZQNG4JU z1(8am5lSMR$RIL_EJ95b5@U$5goY?3^h5cXeu(HI%GvQss_mB^f>&b`7 zN5~HHQF0sk1i77jj(nbcfqaSFP3|GzCf^|sl84B{HopMq$sae!~>UL@YbvJbnwUSyz-Amn1Jxpz;9;3EU z&r;7(&r>f@FH$d4uTyVOhp5BUyVS?jC)B6ZXVmA^Y3e-nEp>tVg}OxjN?oP?r2eA& z&_Q%C9YTlFed&I5e|i8tkRC*b(c$!9T29B&!|8ZBfmYI^=+U%_&ZG0`0=k4QrOW6E zbQN7qPoeAS2HHwD)2%d5&!=yv7tjmoCG>LoPWmo-C4E2rApJ1Cjow4QLcdDyrC+1> z(XZ2Q&~MTQ=#S}7=uhd-=+Eg>^cVD(^!M}+^hNqd`X`2F7=~pej2Gk0_%ObVAJc~k zV)`=!m`EmyiDrf|2}~-J#f)Gy%s6H|Gl9`F6-*1$$~YMp)5f$j)0pYZ3}z-XiON2k19CF7qDqA@e2kHFJUa zj`^PXg}KCBX8vNXu?!o)%Gf}*4;#dWvEghC8_UMAqgfT3$L6yIteP!k$FO5r4O_~V zu@&q@*2vbfCf3Y0u(R0N>>PG3JCD7M{IOX z?91#P_BHlR_HFhZ_FeWE`vLng`w4rNJ;$DBzhy75m)YOhKiDhmRS7AfB;FFKq@Sd} zBtjA?iIF5qQY9lKBPF9G8p$}xc!^drMPiazCC!pnNxNj4WR~PM$?cNG`bc}b&326N zC!|CGAtQo_(1|75#3sv3*JSwZl0_AfCY#aa>Ldb*J{-wWokTDZ!qGgc##v>h%^gNo#qe)x@V3+5#7@JxgR(qREWoold1IcMN$OaTx z>WuBSHnrK>=5Pw~)K%zk>dT8<)j~Fl*3@8Wwg3R}w!Gb5U~#os?Z!5c+6Gy2k;{HW_IA@Tn;1nTZX|MuTw(+u7hHEct-7ySd|tA|kPa7|(@t z5XD?SF5(zb27Ek$C?~Xp4s&uXbVL>WIxRNnxM>!S;QDf*2ARIjYO`b~B_-)y&~-@; zn19=hO_rnrr=z9TF(XL_w6Av>o0CiqrzK%Vi`Z&clB?BbvbHo>oIS2^cO?oF{ZV2f zF^Q-oCQlYejNRC5nIv9XT>26%^i?N3u9{S$EfuDDcSEKSMj~+oQ9~Grsa$_<05@<0 zQA?NzGdG9}=Z50`3WuIDloe^TI)l1Eqbn^pXw^mPe4VDW#4ui6d7}*KNoA@MttW&0 zItUdSttPKXT@GL{jH7}SXe62*;ljkGG!u59BIeJTokTNHCFW=$oE=0fH<%kD-nS9$ zk8pCa#B^dtO^LR+z0Fu_vj_z@5Yxq?m^QPB+0~xMT1(poNSQ-a0d3$02HWh}$?@{! zx$*MZndzDFa`>7%R|I?;!5L&hp0Wj27+ns#(K&MiaT~!CRRFd-%}v+aiG`R!7I0A= z#3F83Zw6T=FhjIKru%=#42d)FsKV^xM&T}E6&{i+h`Whmm%t@*t8o{LgTOt+#Nk)wv`n))+Ff1aPE5?l;@BXI?={?d=hqpX^_H$7{14gP zGR8d;iyS6Fzyb6dVPg<$%xkyW%+O&V4(nZRG10ddHh56DpY*?JDUp93A(}df4laoc zd!N`yJW6bWF}#_0j95lIUg;8qAXb#ytj!>Rjm<4p=B`Nwh7*^%<$xn_L!`&E;^p+z4*uCgLsP0P(i) zcZeIs-NUUE{#Ieeh{$)?Y{nLtQ{)2a<-iRsAhBl3^IhaVp7@ryKzv7hPy9e!Bz`1* zB7P=*AubWW62B3biQkDoh%3ZZ;!ol);u<0lLL{OPjTpot3GzbT$Ori%Kje?3C;-V& zAnJpHP%sKXp{OtFhx(%dXdoJd!caIGjO1tt8j2!NB#J`O+-NS3%jXI>HCM=u;l^?r zZX7qBE8>c|60Vdh<0f$BoR-sZdai<-$W7uZxyf7=SIte~YB&Qol{0d+oQX4Y7Osw~ z=NdRG*T^+-Hm;eoa}KVBYvr7ri)-WBxoO;VZU#4#o5juM=5TYldE9Lr$MM{J?sjeg zw~$-JE#~gvmT*hCW!!S^PVO#l1$Q?Vy#Xi|#i8MqFx9!*oG>go6)*%Uvf7*AX3m_6 zs`3&|$rwXXL1B?eR)C!g5uydSYq$c$kw^<@sX`Wh&iRs6@m{iA%=bxa3&1sz8mWvg?aw;$lOP z&N8DdLC~kZtRn-CtnH&V3yj7&wG4i`;A)+}F14!!)pa|f!8|y7|=8VbDH>gWgFk2e(^qL}_ro>RF zFA=6+PeWB0!k8OF0Bm4zwA(CDe}0h)x&n~b7pb*|0*zJxTUM^AQ0df$F6`XxD!@QT z^aeW7=(Iz(%F7%!s|m)ph#oFz(3FhTJt5`D0b(s(c-c@chyeplT0_8Zg+5TWz=ptahxb zpmd@ew^|G&?^c2Ipk7{SX%WT=1PNA<-S8|JUg5uh=WgB&U^ZZw|2adZrx|pmhE#M@1T7 zK~<5VL=RH&dQ_)l*ta~mdvKAa7#3vt&_7zun35X+o`nIc{}l}iH6?(w0py0h7l+Qp zAj@tQq-WS*Xc|?KW-<)Ll2RSWp`s!f<}f(Nt3fWg`JcnkZ+Sd`l;J%V@7j`S{1OcQ zmc{Yk2;c@^R$i(r#boe+U5>%tvRt_d*b?=`B29^hwkt5qk+({T9$c#e;sU#3LE!H9 zl^E8)8LV!lMO0?o;8y={s907C5&-LjfTX&hM6LBu@qP?e|1VlRL0^g|UrkAVksfwY zuvTER_n%=7WA4)*JI$fJSls)pi8(E zEi4ea(@&!QVK#LR!ua;$o&+<0xqP;Pm6_QXrCEdxPyDxRpkXR_*4}tO_3^319P!QwR{nSy=5-;3MacFmM4H7Jt2Ss$pjk!Ahg}!-uYi)R-r1=dnDcA{}st9ROK4n z3vR@YU}(yl@<;yg;qK+RFfc0Ale+W}tp~*W|BTSzK@`9O6%;wFhE{0Gb$U=k3t-vm zM(6_!ZPYCzWB`P82A!r@4Uzz4xjr9YdHD4s4D99%A)w~zyIvT1V7c-7^cL{)fEueQ zC{TB|&n>Jxc%8z)ZoG4VSEGL?SvhQvs0~G>rDXbP`oZO$l(Nrod2ISg2L&N(&9es{Ha&H?_`TfHxOAe@9EDD+O(# zd!o~-Cm8azIybZn7+TgX^F;onNy(FdF?4F-u*XBIA267kE1lvA6r71A)3Fs_vbZKbfx>E`pl{sWvn!w}}~ z(ur8h1^q-2I)au5T4@)ZNra)^d_DTlbjC_~p(-ELXAr7xCL?JK^5zrA%|N;-P*SSa z!gijUzevfyqiT;GHV;z>8+f9kqZhIss&;A2;%O@!yY}Q<(jP;-`GWbz z5cMUZ76((h8>$;a8HRUrLDCCe4>e0@ba^Q(>><&!U?PJsw3{!OdO(vK?PfXb!S|8` z0#rCe7WX(nKZ4D&v6`};D||8(S5babS#?WQcocrvK~TZs42a^^Jjwq558#)p%V0km zs13>r2ynwhwaUE;AO~UiwrWMjD`^c`)YHPDN!N_ppbn#Td4JDaOB@#Qy6jH&h<<@nQX{3^Sh3PZmRc3O2at~t- za+Cn)!Rz4UB`ea>6An ze5=+6uJ+ny@dzoYt;;+m!Ri2;lxEaOV5YjdR<+8j+5yLFbunb^>i=r#d` zjRsl8t)g%X)-WCvde_w|)V0YVtGm^@dNk|Sn+vsD+bpSxrk?GbCe;0yL1z8Gs2k2J zdpCWyQ2pcoS55EL#hg(0HiN9;|L>-YW>LLczEG%ryFupozp33|a@gyv^}Uf;Dj@Ns zK?aX*&F1T0ah`TU5pZ5Yp3`cshqKwl=AIn5Lcrna|7#q86$HypawT~m7$K3X$a~4v z`~~jnSprX^w|j}G~@>EMQn@)=BeZ+qG@B7h0NPs z)-fx&u!zxeLii_};BM^>@@XQplYEkVihG&c(@E|mpW$BNUgh@c>j1v1#%(`TWU<$` zHHg4p6s+C?`_rPe8Bf04iLJ`qAYUP0#{_(p+)KVj?&J1xuXAs3Z*C;tAm1e3Cg0-r zbMF932miYW_%0^kd)!-Y0v-bblJAqp@rOIWy)AsgWI?j%h*vI(M0B_JQ}UEZ!q0(( zhcF4h1QH(R_Wq4{fn>G2$T#E#Oro>oIr2RDE%zRGggeR|+em&#eoy{DUgX~AKHxs& zPX2e1=r>HF%iM7{iLPK0U4<@%4|f8(6o0}3l}92*M~f5+3@qQ5a}Zz z66FI#`uI8`^&w`ydBt5QfC>gOQ8Fr!>O%!_pK_mZpL3@+QX!a=sD9iR0wE!PwgrVPiu!Xx53(gdPHcbSFMQcRdd)MDxmY6*`>9#K4^dBkj_mI=hU zi$^S`4v)P4yU4Q|lV=T&ByRew73d>QcR(BQ&uvReJwj~|snf~5%p-41o<}ixd~QG< z&QTXD*Wc}T(eUmyMlISf=qF_v-cQA=Ut|!spCU>FtsNI32sb&^K|c@)mA;?dy$E*hP}H2Q)^gWNRw3e)He&7M$Ix+oIs2TUwECe}}wSVOKSmaoB0tly~LiO>$}GLIrUs6TiV$?cs2 zE(X}rS2P{%wuyEZxkkf``4~;mh$d-@rfG&|X$g;_c{GeiF+7UpQ5=tk^C+H236Ig< zL=^2y`_cZilnx-kzbBCceof+0GLKStq~K91c>nCJY!j^AwFToRTU~0KwcZNO2L@TF zm|OrB^d^hOHPH%QAQo&mAKdeS+q~N#>mw!$zLss^03+V{} z8$H{wTgr7c<~!^rC-?_dH5*M1*Nl|p#FR8I*o-kxYcmT-!ETAkXiG4GfoePK!ek4# z4GvdZ#f;2!LwZ`-WNWd}1bam(@hM$2q=(Q^VA)O&r6cG_9w~X0&ZCSCbTmDT1_EaC zNXw%<%$mv28NGdwy8M;EnqJ%9+zh@GVn1mu_1O0a2-EMnBBd?Z%>o{UUiV06ZL?Vf z?U_y_+8?Ep=wv#DR?w+D%Hq)|9_90>kVoS=xf}I#Ivb;&L1)sCBb!G#Jj&fbji7Vs z5!{bF8o{HH81v}s>gt7PnbQg;?`_Zz!~Z#Bp3&5#wX_(WMsV^18{~h^E!H8JyPF7k z6iLXhV_;fMYi`g2dK^6-6Mr<1R08oMMvLQ%m>|~+7W-}rl+zVAC{KMrPogV9tnjFS zM`|vjJo^T9*U+^$C`+4YGi~9~7#@w~k%o(i7}cfAcQxWD-ADw`O|%XBLz#_j#?rvh z$7pT@Hu-(g0atA8>=}qPgfJ1ui_QHZVf3g|XlQN5df;RjF+^nJgBw#e6Iz zRN8ky*bUqhJNxzLXpZR|I0&2t2XP@4CE7xVy$y1L+l0e;e8|v*i#Yw&-!uw1y?2v1LNZ37c zaqrdMD2raBcY%d;Dfq6zrbACC{oGKxvUo}#4V8}0>rjDXU?@hiU`$x2x)3`Fc8=9> zLEs)3Vvr341l*Nl2SkTcV+QE}duJ9HLw!9@bu(Km-A`bbn>|`Kp5*mY0v9Rv3SksO%#LTf?xiYe;mmIk8>s3)car0OX*aS*F6*TG}M zRD(?R_m10OtkvBh8InXM>h5BIV77FzR;O8ayuQKOC~dMe+Z}-H#0J>=fmUJx>#$>4 zD%=3~X|Y!<%p&kia7GYVQb^28Ci0WzDKd%+3DIFKM+n(b}QG3BbtNtKi3l20HkKwt2hN+be|CRdB9tgHwN zAUoiKe|!J?^#nvCfPcplFs$Cs{>MAU3geg=Avz7>nKFw3_5&z_(C7#t74qT#=~2o=te04rlp) z`>)y7j`7C-2E)hC)ubH{zlnhV0<*CIUuVMg(GZ&RM93>ydE%VMF^^e4R!RROqY*-9)$!hwE|n+LBVZ&W7s-lPiBR zT*tt5XM;t9`w3`9y=`sN=-?XaqrP`K%5nZUf}nHFmIAeyPS-U##$z0YLi#hVX4 zwgw&UGX+7gL))A>To!O+!9TK41J{LcJ)^-n7N{VxbIc__&QBr8J z>oE;6UvNgJdJJ3xtt7jN3S=ZK5O$&#zDnH|36L@{`x;glJGUo-sXLuxxbtB32JwJ3m(6ySS|aTRgE&v7m1 zx@vJi3A0d_SPr*R#4R6iwu2k2QNT@TIfP$Grc>dQLl@B_=wzWbC*+t(BnaubLYlkQ z?v~@Wo%7V%3b^)ceNTG1X}lN0fV2T*8??~gMIRSna~1Gz>MHG~F)jn`yn8@Hz(lsH2@zt1({{+YVY6MDDTxu9H__Ib5tRJ7@1;CqD*kt>87i|A-zVH9%{0J zA3o-I7u0Wq`(;x(35x$uW& zl_nr(34J}>>M~PS_B^J zcY|C10}wcABe4aX&!2|CNxO-?#GAxB5H#sHcsQSe`RiNoU;dT2f)IEn`-2y9fABbt zLc@^)WulP~KB)+mqe=*xRFCWsENKq99W6sE(F3RhZGoUjFQUB=3h4+s2?3DKp`Xwn zBt`l`sG~448iE^TLRh2mV68BPtS4K^S>yupE;!}ugpftg!P(V2aQJhI{Fb~#5tJ_# zN)4eBV7EP=Dy1eQyK?dxHEwED%An144q6vcVKMBx_V`)9CH(Tj> z^m6(E`Z4-B2;XxI!u4FF|6=@^LCkO_8-nmmV(KB_&LRk|vk3y~ya5vW4D&0?vZ2sF z8PIQ)Y$F80Sq{N&cCfFqN7&QsC5Z$=*9?b{HKh`xq)oC&vR1N9@`~iB9IvV56QHcz%r_M+?q*`>gsz?8t!z~;c^fsY3s2t3VHrF=lg#;fF2MxV8Vdu1J)0CW59)h!2@#!ng%W%`1HV!29bl} z29*z*J!r$AgM%)Gg@=s^YYAH$wlC~Lcxd?O@W$|a!}o-r8yqxvb8!_$Xbhd(s@NIVmt6>pF4jQ=3PFF}7W0YfNk9l=0Gj{ygd&YjC3DcM~TQnEPWsI9U?)CA0VA zS20;Uu6R}PCnZrO_LApIiBe7Js?tx(hLyFJy)=QHP&Q%Rgs;m}%IB2t*9K_~+Q+rO z>hg3ebRX+u^zHiBDgr91E4EbpHnCvh%892YB~6+;>7B{}mDb7^CQBw)Ox`s4QkA-D zb=8?_W%Z)!6H|swnK9)+&43zP&C7-WgVC^aDl>KB)W@e@HI^DXjhAXQwGY-_H07J_ zGkt3wZNArh&N9NX((+B+h`N<^XX{7Quc|-SFsflq!v$-;^#SXTjbj@hZv3sOv}tqG zHQPknj%Kgssm(9i``DZ8uRFpWGaN@+hPNzgIn|ooy1MnEbG&nt3%RDaUT6!31?Iu_ znD&M3UrZZ0ZQZoX(<`R$oDn#~KI7obxS304elx3Z)}yoO*{0dA%^5O>pYz3B)!dGG zXkP8S*KUirZNY74AdbUhybs^RADW*$f93pNZl8Gjt_5KWxCN&dj#;>Mk#v!B(Fcoj z7C(FkeTVgq!%I?^tX=ZgQuETcmnAP-v+U|})AG0POu6&^JFneUch}(+=_}UX&E9Rl z`@}t??s;rw;L2GmPp>Lo_1wMkdzaq(%WA{w18dUOJba(eeeL(1y1(fD7uH6uy?gD| z2O1tYzAkUwjt2)lxa7g#9x^|4bp7b{+aC^lc-g~$JYs$1!;Uc>&viz3uGzqDn6}~T zjTIaBKbraImQ4dTE!*_xX8Yz-kCi|6`j(6>TOJ?u_=>IM*7mLEwpDL??}>sZUf7-V01&G6dC`zGys z|Mdy4AAV!}8*jZ?_~yR-s{OCLHR7$^2eJ>m_;%*o&%cxY&T|Kq2cJEpJoN10^uy1+ zoAK@o?`6HW>qzdAJx50!-FvLy*qiTb-hbzK$?+p6^d~<2p!$PTADTZrd(w9D$B(9c zbme0Xl=!8e%06B5*`UulKac%<$EoyFFMm<+#lbJNUw(Yrbo$$`Twh&1v*2t0uh)Dt z_?s9AuHNZ`0< zv4UoyflyWxAZpbN2*tRNxC^w1PS7DXK@^;)i5EeGI7qw;K^Kn^Cm>eJM-V6FG-wgO z5`RK;lOTv(5`m&25MvyKV$6UbjFqSgf-agN;9?VMhLDS`Xc~lEoCTW1Jj6ku#TU^h z=r;(K_!mh)xI}Nz9;Bp<3?f4yTw;F+k2rzUg0b9RxqzOuk4S zAy1GO$cvysctIG$!IT2d>qkP!!XgM!XoRqYx5M%4QffJM7X&3-ORc9i!fE4n>PhP9 zknoU*kmQimkkKLPkm8WC5Pe8v2<#r=eL3ZGTp^a{*v*_vc4B?!ih)2b6)WD+>9+hsQMi7VSIrLoO z5OD}>3g9TOj7R0%D)@uLhoS#`N`SXL|Hn*#5@Z_o&ya8?ZQD$IQuRON)IsPYA?Hzg z5$xqJrtbjOOT+<@gt$lcJE#4|qX{CRmeR{anpisNr9@SY&S8cPHe;JSB`Z56Q+8fF zuvtO0cR(;ds{3qa6}=h^VR2dq4F}N`T!ff&ttY2={}3St`vQwB8Ui;xPL>l3$VtF2 zI^dd#U@uz%@z@^aqPVBPK6VS($?gD)*(bOVPaq`v3Hn(gaWlQ0-a$V}KSe)H@1&pM z(PSP~@u-?dQ+QOvBLk17ZU+6*mwo|q?84`OJTeMrf3-pelW-EqMbrS1#Rz$Y5U&kr zi4Tv&1f8)q&*+?JbX8bg_(X7`wXH!5=4CbuJTb^(a7K6FLa~IQL|YC)rW{Tjy-YA_ z!^~xn4R-gW#Zv%4!0}!iwtmC=;v;(k>-|iXnU<=^EX+#C%uCBkNGr@#Cgf$R(h?Nv z45czZOO;oUkp`y9-Do=;wpyc8<3?LNmh0K19*_FZo~=}*#miIEQgPI@l(b|Bpq7=M z3}MrRbD#aRtu&Bc@%Qtd=zkl4_H$W)m$#3vpLl{36dV%Tw_pDO0|yO+b02)r5(T5Q zM|S|93de*7Ss>6>d>~TT;)Dp3xQCq3JCIG|0vmMTT)jq90Otc5SFzCwaTf7Dyw&My zgF>*gZniifnjeJsak=nW4LtThEi%q@w70q7u`p7Kjjkr)I6$n^(`}jpvDz`t7NH)% zKx4)s>%@E|?aj3oCx>8UuwLFA=?w=!H0L7=fJl_VG9s}5mL0MXI7x~d4hKQX^xT4R z=O7RQPz}?}0))MsvO$ zd2q%RbWB~CG-j*@SQq*O&cH2pv48Y>O@TNs3X@{bNBATRNBHEV5Ij_oqEu(3WvUZW zvefAbd1;D5F#az{Pf({TRmzmYEM;a^UiEBD)p#IlTJl_IT5$< z5_y@t2JwqWP@`b-&!-I33~DY+`zs&@aR;?goWDKOdQINHh70V zNFSmP)9=#n(MNb><`JA}*YT*HM-4o(@~Ck$G&qVrPM@GZfZvl~$pWSzO+13R<9U4f zI-a~kRW3XVjP59@E|KIQC}22g8ywS1jMJ?3qB#Ig^4zK*OstqoV|TR($DU$Re9zI@ zOR&S)ptatPb7|o;y{*D(nciKGzRe105St5|#E6E}IH$YSr|Gj`XheTSpP|2|zu}RM zN6kF4^T@H0K1ZL22N!tM!lQ-4qh+{hav|!TJ7B8^@kAI-?OnDi18;NFdKwBC%+g^xb3b&!66BzX|)~C z!Vs(%M;KPmXaN^Bi&@iVX?E#Apn#b1b~O zoxl@PF>fZ00ShP17zrWTq{S>&fVr7FYfy`hq z2Z2quFb3>K=JDt@9&sC(aQp{X;(sn;qG)LE>IP8et|o?w>&6LeuI6)l-H#HP(ftkt}8Bjl$3(S8fkM82p3Lf3fqkDJ+=5?@= zxR*z(w=!nN0wbWF_9YI%wOME@h&0fv?-$y;7QXSi0}|jr3=H_c2DiR1w9w6I!r{N@ zK-p!QrFJ?U&g;p7RRuTaiu?-W28sy73S=I(N^pYVo5c(x%+w^zX)dfcV}a<(n<*}7 z0wKXOD4-Gyp;sEt)|J*(5Q1XkMTppG;!wOEJFMP#;0mM9C9EWv+02|rcyyoWa50CO z*NGzm0||tgG)0-3i4|J0Yf{s37+_d(Fgz?r7+4lQfTLdGgoQ-=M%Zg!%-q3%$?rNI zJ$$zFx`_ooM5tm1OA$Tz;Gi7&IxU9cpc2fzrlNy*~Fs_JbI#= zDYr0B;F0_|vz6J#qm4Xzlt-I3Fx#0O%#%FY%%jJ6w2h0iiS|6$iZUp%J2BAI0A_a(zT8=kW1EAk4a|+$ zyb+rd3fd(Ufh4gk#3{9Sz`1MbnfP~b4ik?am-XS%R(MgyoZ}qPhe%)b=l_+9ok`$X z=56L3U{`R&#W70VbCA1NHZTX7LjphFB*Tq;cwuWn)m&?>Z-;E%S!Hz}?`@0jK;QIeCKMDQ$yb>~gcE&T0pBOQe)Q zBR7S9V1C3i*+m{b+rj+Aqvx=g9nua{K8#yf-8e1gt{}=Y)iXdrz~t5xbcv{6h0P8( zsNWe-gE|;ceO~BbuJY(b3@Q-1*Q5Ul+KDj4Sb}KZz#^7pDIV?O(JMUK>k&zC7Un~Q zZeS&>7YlTIiATG6^zsJ!5D~?KNq!wxXZL_LHGuA3%vIyN?mYn+++vlp*jNuOZ#RSC zVymcTccIG$v;A&V$q}ezAn4P$67Y$O7`;p`lyesw%tqXx7#j)2qIvWhF18QLLaaV} zv|Oy)MvQJ5-3!uiRtYZDY&@I5Cc+VIG91<_*i<%+M{n@xO&;y%(OWz^z#}kEe}_j0 zd30zC?aO8mQP}T+&0%xd5$s4|ay$&ClPj?W`)@qy&67Sn*#{F}h9@H7oeA|8r>L)E zJ7rPd#`C8EW<0yu=rm(B9A_3Efh?;K-@hZ?YXui-%j6yfWkFD)>n#yN4I+4XS5o(4 z8D8%IlPhSJ?!f7RZiGB+G1(?;PGB|BP33Vcesuvmo=5L?u&_7z9&S#QSbx`=$RVxq-wk2VeWUm)4Jxf#}j(AA#yj|)t>{j$jA7gPeTiTp6#gSkEiNeF^@js(WgB6Y%}X*U2GfM&bAXHNoeZl zJOY_@jz{0Ye=u2nl#8gw$_n16!wO23h=_nX>^_L^O~UJl-rWS_)}txmK`ZVi^>+*L z8$286e%37|JZ7;~?q?8@9<=(F_F9O`oM=jL32&@$_s8w*9Yp9xb^*JPUBrSK`~{D` zKEZA$-iBfArl)%{t?3qnIP$oVqZwGe zI~nVsus)noTIVj?{ftLH@dzfVUwCw$TWOFbd6vn&`nkY?K_+^(3Ox&Jk&T}wnl`XI z*=N{id31qCKk(=xFf{uD`yw;|{Mgvtle??b3&>y=g;Dl>_imq{IIypkye5Uv|mfI?Mng!YSxKYHpH{qv6rFIRY!Y-JA-`{!$jRKB{CEsU{i<{}asM(En?~&KZp1|Pn!u*!vaSA+X8nS!lDLvR}fIll_eSoISA@EDB&@{t)(IJ%Zdb5x6=1JN74B+xP4b>_rwlSpMYE zUp%_TlLRbqVHT?;qVQ60CHN&sv4kI3VRTxtID(1XGF@0kl^dsvdjK%tdq3@xu38hk z>;d+FdOZ}1!y9 zKslfr-!w_)4JwvoLB%;dM0SFTv2PhLsyL@ajJ8hgsozLOOA2lTKu!Bf#_*&JD=uUp z7UX!J$E_5Ino{+v0;KmPMUrAk2@xPECCVieB;~N0!rn9@17dxlMDQ!?TMzMD+Phx0 zB5Y*MXcM3GYjIk!Czps~k4HQ?kRy09h$q8ONOTfC)KMXsD47KHluD||A(Cnmb`%@n zMJ}+xUjaT+putp`#62?1G{A7?u7&2!hH{kyUOdvJ_u#q)@?;oK2KNx^k{XFY6zV)V zfG1%?OO(OFpq7|HqDm~1I!QfGhVo=zp6vHGiRu=h|0L=pPC?W`q$szjy}79CMG47l zphXoaC(21V4}qYd1z}hk!mfgZ19>Bv0OZ3H9=y0nvOuy>Jf`(b554w+dv{o;WD%Be z_*C~+vWqp`Az1Z=l#}qJy%vgAz9&DyDWlT9^Vd@zxV`CifR=sw3 zo8D|@9=u8KK6q!|UgksA7v6)H%@(os@P@l~c()w~@3mV1YR(FHuiYwkHG3bsmfgqx zDH#SVXqME&o9Jv3yQD=jSF%uYk7Si(wd6j@4`Av?dHH$u@#^a(_e$_e^Gf&1^vd>9 zdF6Yly~cQHyc)fhd2RQ4-s=UgU0(aV-tl_R>!jBwUY~iL@;c{r-s^(bC2!i>*E`sI zh}9ViWx4hCc92x%0UFULxUOB19?V9cBfhRzw%ENPB(gme^`Jm*W* z(lKD-I9^&TEtO7?YNdMVL}{h8N;*YqkQ${XsYO~ZZIRBB&XL|P?U3%2?vn149+V!I z{u#gqcm<>dj0hMNU<$AW*aJ2OJQ1)X;Ol@N0)CX`$O>eIvPH5LvU_B2$PUZi3k(SC z7dRlWDX=YYTHxNmw*wFM8PF%9PgI}QKC}AF>9f1f8-4Z%1qBTX3J;nTWCY{L$AX>; z+8J~;m&jArvbkV96NBrK<&VL2R=0L;X%Y8 z??JwU8V0ovat(TQ(1Ahkg!K)RhYbz0hB?F9!k!O%HSD!;ukgU|pzw-tL%1=#BmD93 zZQ&Qge-FPhIA?Id;KIR62CoF8%7cTC5B@+tKpr8FlGn>y4`_VGj)3FznG`mt#;28AHdgFXbcCdXQ0ow4n) z(_?4F&WW8D`#|jG*vDhH#qNlGDt2e=tFgyokH>xxdouRp*iU0WkNqO{bnKbf%dvmN zUXA@LjsWvdI!+Sj6Xzcn5H~0;JWd`rG;U?w!*LyP8{!^~`)j!GaR1=}!vlxU8oqe= zlHtpS-#PsEcsAZE-Y4EKzCC_^{DSyJ@pr`koIoUy33LLRFe71M!s3J_3Cj|$CVD6O zCi*7^Byx#&Cay`mKkjkCQ%4`aJ1u()pwdN#7@3O!_G~0E|;BlV>FJ$qSMfCEt;JPx1rF4<@fqek8dQ zOjb7~KbHJd@}A^<$!{d@Pd=D@IQhNgqsd<+f0g`W@*l}plmAK~QpgnF6#tZfl)#jr zl#mof%A}MzDeF=;rfg2xlCm}BnUt4PUP;-TvM=S0l>I4hryNT;k#aiaY|8nR3n@RQ z{G4(rf5erRJv=rIw_Y zrIx4aQY%tjscTbTPW>eHOzPRx^Qjk7FQxvKMx>ExbQ+uHmFAP?mll%NFD)u9E-gMS zF)cMsnU;~3l{Pl5IBjy82@G`W)2wMtX>DoK(q^R1N}H25FKu1g-n27HTIsKpDf=jc zm0`+gWsEXT8Lv!KCMy-nQOW{kp>ix3^_D8jl{%$KS*LU<=O}Me&Q~r}-l4old9QMf z@_ywy9%xxdTY8X zeSZ4F^p)xB($}YVq;E{$oc?6`&h%%~pHJVFzB~P7`n8ORjJ%BT86_DLGPD`h8J3KO zjK+-S3`a(5hAV^1SeUUmV`;{UjC(Tf%~+H1XvSk1&t~k&*qiZs#{P`AGmd4P$T*qt zamHsEr!xM`jL005S(oX^bY`|^PS4~rmw*}aU77b}uF71Ud0*xunNMUso%u}W^O?Id z_hjzP+?RPY^LXZ$nP)Q3W`3Lbedfi?zp}itLb9T>Vzc72lCl(8%B;++oUD;qrCH@! zx~z#=le4B|P0cc8S+eT0TC?V4tN~8+1?VcIuwhy`XzZ_pK zO^@`Hp3zJ6-g;lXzkYx|Rv)iV(kt{zeWpG~KT=<;FVk!F75YkjwZ2Ag)SL89{W|@d z`m+_W73zwq6>};UR`shISQS&1QI%aaqH1(iepO+WrmCo_s%lD=p{lmZQq@q^Sk+wR zsJf$SUDfugy;T>hsp`P$@akdJan%Xc$VwrE zSASOhMfF$J-&CKk{;v9B^|dMF6lRLo6yGV*DS=ahr-V+4no=;OYRYX>9-p#%%C|LS zO+Zbbnvj})H3MtHYLaSlYev=N)u?O6){Lvs)fj6UYMN^7HLW!>YG&8WtKn;IuUS^J zx@JwyhMG+^TWYq|?5KIFW>3xDn%8Ug*SuYGu;ygVCpDkfd|7j*=9`*dYA)6MT65XJ z7^H?kL$IN*VSpjR5N(Jx#2bGu&@@!0?n|kKwrC zL&L|0&kSD}zA}7cIB)pQaMAFy;n%7DQ)N?wriM=KKXuU5@To(lMot|zHEwFc)TF7J zsphG3rmh1c^gUCLPW{?Q8v7dM#v#T?V}em(EHdhilZ;iyDaJaZ0}iCxjWdk1jdP7l zjVp{RjjN3h7#}n~Z0s;@G;TI-F+OK}$+*Y3*Z8LKfbpR5u<_X8ur{=| zf9;^!@Y>{%L%G!0c>uWn|H`E@iJzaa*-gdEE*y(_dTnVBPw>fWn6R(HJa z!@7^^zN`DSo~jS6?_WQtesKNJ`l$Mt`r-A7^(plQ^<(PC)fd&5)R)z3>nrLj>#OT) z>RaoV*56;hqkdQYd-XpzNE-Sy3~m_O5Y-UVFuWn5LEli@U})(C}`vrqR)tk*&9vrNM_N_ZGON~F zVXd@QTMbqtejlFIX`N?XYkk6c!1|5#=SHTnPvgMG@WvsHk&VL|lN(bTm5mvV*^Rl4 zm5sMGZfJb1@twxQjYk@fHGa}~rtzD`bB*6Ne%JUzE5O{o8E0Y(R8xulcvv`zG(Ws>348tAZ@fwVhgkluw~gs z+NRhVZOt}^&1t*MHs7|uw%B%$ZN2Rg+XmaCw(YjpZ3k?h+s-xzHTP@IZ!T&sZ7y%t zH8(ZSXy%(2G%s#m+I(m8n&!354>qrF?r7f7ysi1U=Dp1)o4;=Uq4}rgOU;*?uh?n3 z#O`hPwfoxx>h_VxBh?9bTu+F!Ttx4&&aWPjKGq5V_)Df?;r z8T(K6-|biJ*Bqq7+u`SsIszR*jzNxCN3tW;k?zQHjCSNZ)Q+)^aSp9xs>A50b(kHk zjyA`1$1KNO$8C-~9CteIcC2!&c62(nIJP-F*Yq=dr<^eTX(m<()wEK>#c`ce`~$!jCLkD_0Gw{)(e=vi@%a( K;;;ML$^C!*E1*;W literal 0 HcmV?d00001 diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcshareddata/xcschemes/sqlcipher.xcscheme b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcshareddata/xcschemes/sqlcipher.xcscheme new file mode 100644 index 000000000..5d56c02ae --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcshareddata/xcschemes/sqlcipher.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..b6ba9eec1 --- /dev/null +++ b/core-xprojects/sqlcipher/sqlcipher_Xcode.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + sqlcipher.xcscheme_^#shared#^_ + + orderHint + 8 + + + SuppressBuildableAutocreation + + A701F8FC236B2EF8002ABF81 + + primary + + + + + diff --git a/HockeySDK.framework/Headers b/submodules/HockeySDK.framework/Headers similarity index 100% rename from HockeySDK.framework/Headers rename to submodules/HockeySDK.framework/Headers diff --git a/HockeySDK.framework/HockeySDK b/submodules/HockeySDK.framework/HockeySDK similarity index 100% rename from HockeySDK.framework/HockeySDK rename to submodules/HockeySDK.framework/HockeySDK diff --git a/HockeySDK.framework/Modules b/submodules/HockeySDK.framework/Modules similarity index 100% rename from HockeySDK.framework/Modules rename to submodules/HockeySDK.framework/Modules diff --git a/HockeySDK.framework/PrivateHeaders b/submodules/HockeySDK.framework/PrivateHeaders similarity index 100% rename from HockeySDK.framework/PrivateHeaders rename to submodules/HockeySDK.framework/PrivateHeaders diff --git a/HockeySDK.framework/Resources b/submodules/HockeySDK.framework/Resources similarity index 100% rename from HockeySDK.framework/Resources rename to submodules/HockeySDK.framework/Resources diff --git a/HockeySDK.framework/Versions/A/Headers/BITCrashDetails.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITCrashDetails.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITCrashDetails.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITCrashDetails.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITCrashExceptionApplication.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITCrashExceptionApplication.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITCrashExceptionApplication.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITCrashExceptionApplication.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITCrashManager.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITCrashManager.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITCrashManager.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITCrashManager.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITCrashManagerDelegate.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITCrashManagerDelegate.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITCrashManagerDelegate.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITCrashManagerDelegate.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITCrashMetaData.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITCrashMetaData.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITCrashMetaData.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITCrashMetaData.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITFeedbackManager.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITFeedbackManager.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITFeedbackManager.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITFeedbackManager.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITFeedbackWindowController.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITFeedbackWindowController.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITFeedbackWindowController.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITFeedbackWindowController.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITHockeyAttachment.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyAttachment.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITHockeyAttachment.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyAttachment.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITHockeyBaseManager.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyBaseManager.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITHockeyBaseManager.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyBaseManager.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITHockeyManager.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyManager.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITHockeyManager.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyManager.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITHockeyManagerDelegate.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyManagerDelegate.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITHockeyManagerDelegate.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITHockeyManagerDelegate.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITMetricsManager.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITMetricsManager.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITMetricsManager.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITMetricsManager.h diff --git a/HockeySDK.framework/Versions/A/Headers/BITSystemProfile.h b/submodules/HockeySDK.framework/Versions/A/Headers/BITSystemProfile.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/BITSystemProfile.h rename to submodules/HockeySDK.framework/Versions/A/Headers/BITSystemProfile.h diff --git a/HockeySDK.framework/Versions/A/Headers/HockeySDK.h b/submodules/HockeySDK.framework/Versions/A/Headers/HockeySDK.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/HockeySDK.h rename to submodules/HockeySDK.framework/Versions/A/Headers/HockeySDK.h diff --git a/HockeySDK.framework/Versions/A/Headers/HockeySDKEnums.h b/submodules/HockeySDK.framework/Versions/A/Headers/HockeySDKEnums.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/HockeySDKEnums.h rename to submodules/HockeySDK.framework/Versions/A/Headers/HockeySDKEnums.h diff --git a/HockeySDK.framework/Versions/A/Headers/HockeySDKNullability.h b/submodules/HockeySDK.framework/Versions/A/Headers/HockeySDKNullability.h similarity index 100% rename from HockeySDK.framework/Versions/A/Headers/HockeySDKNullability.h rename to submodules/HockeySDK.framework/Versions/A/Headers/HockeySDKNullability.h diff --git a/HockeySDK.framework/Versions/A/HockeySDK b/submodules/HockeySDK.framework/Versions/A/HockeySDK similarity index 100% rename from HockeySDK.framework/Versions/A/HockeySDK rename to submodules/HockeySDK.framework/Versions/A/HockeySDK diff --git a/HockeySDK.framework/Versions/A/Modules/module.modulemap b/submodules/HockeySDK.framework/Versions/A/Modules/module.modulemap similarity index 100% rename from HockeySDK.framework/Versions/A/Modules/module.modulemap rename to submodules/HockeySDK.framework/Versions/A/Modules/module.modulemap diff --git a/HockeySDK.framework/Versions/A/PrivateHeaders/BITHockeyLoggerPrivate.h b/submodules/HockeySDK.framework/Versions/A/PrivateHeaders/BITHockeyLoggerPrivate.h similarity index 100% rename from HockeySDK.framework/Versions/A/PrivateHeaders/BITHockeyLoggerPrivate.h rename to submodules/HockeySDK.framework/Versions/A/PrivateHeaders/BITHockeyLoggerPrivate.h diff --git a/HockeySDK.framework/Versions/A/Resources/BITCrashReportUI.nib b/submodules/HockeySDK.framework/Versions/A/Resources/BITCrashReportUI.nib similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/BITCrashReportUI.nib rename to submodules/HockeySDK.framework/Versions/A/Resources/BITCrashReportUI.nib diff --git a/HockeySDK.framework/Versions/A/Resources/BITFeedbackWindowController.nib b/submodules/HockeySDK.framework/Versions/A/Resources/BITFeedbackWindowController.nib similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/BITFeedbackWindowController.nib rename to submodules/HockeySDK.framework/Versions/A/Resources/BITFeedbackWindowController.nib diff --git a/HockeySDK.framework/Versions/A/Resources/Info.plist b/submodules/HockeySDK.framework/Versions/A/Resources/Info.plist similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/Info.plist rename to submodules/HockeySDK.framework/Versions/A/Resources/Info.plist diff --git a/HockeySDK.framework/Versions/A/Resources/de.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/de.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/de.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/de.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/en.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/en.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/en.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/en.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/fi.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/fi.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/fi.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/fi.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/fr.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/fr.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/fr.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/fr.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/it.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/it.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/it.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/it.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/ja.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/ja.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/ja.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/ja.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/nb.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/nb.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/nb.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/nb.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/Resources/sv.lproj/HockeySDK.strings b/submodules/HockeySDK.framework/Versions/A/Resources/sv.lproj/HockeySDK.strings similarity index 100% rename from HockeySDK.framework/Versions/A/Resources/sv.lproj/HockeySDK.strings rename to submodules/HockeySDK.framework/Versions/A/Resources/sv.lproj/HockeySDK.strings diff --git a/HockeySDK.framework/Versions/A/_CodeSignature/CodeResources b/submodules/HockeySDK.framework/Versions/A/_CodeSignature/CodeResources similarity index 100% rename from HockeySDK.framework/Versions/A/_CodeSignature/CodeResources rename to submodules/HockeySDK.framework/Versions/A/_CodeSignature/CodeResources diff --git a/HockeySDK.framework/Versions/Current b/submodules/HockeySDK.framework/Versions/Current similarity index 100% rename from HockeySDK.framework/Versions/Current rename to submodules/HockeySDK.framework/Versions/Current diff --git a/submodules/RLottie_Xcode/RLottie/Info.plist b/submodules/RLottie_Xcode/RLottie/Info.plist new file mode 100644 index 000000000..0c4389ac7 --- /dev/null +++ b/submodules/RLottie_Xcode/RLottie/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2019 Telegram. All rights reserved. + + diff --git a/submodules/RLottie_Xcode/RLottie/RLottie.h b/submodules/RLottie_Xcode/RLottie/RLottie.h new file mode 100644 index 000000000..3eab069e0 --- /dev/null +++ b/submodules/RLottie_Xcode/RLottie/RLottie.h @@ -0,0 +1,20 @@ +// +// RLottie.h +// RLottie +// +// Created by Mikhail Filimonov on 01.11.2019. +// Copyright © 2019 Telegram. All rights reserved. +// + +#import + +//! Project version number for RLottie. +FOUNDATION_EXPORT double RLottieVersionNumber; + +//! Project version string for RLottie. +FOUNDATION_EXPORT const unsigned char RLottieVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + +#import diff --git a/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.pbxproj b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bec1c1746 --- /dev/null +++ b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1129 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A7D2826F236C77FA0000A9BF /* RLottie.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2826D236C77FA0000A9BF /* RLottie.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D28280236C78DF0000A9BF /* RLottieBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = A7D2827E236C78DF0000A9BF /* RLottieBridge.mm */; }; + A7D28281236C78DF0000A9BF /* RLottieBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2827F236C78DF0000A9BF /* RLottieBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7D282A2236C79C40000A9BF /* lottieanimation_capi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A1236C79C40000A9BF /* lottieanimation_capi.cpp */; }; + A7D282B1236C79D70000A9BF /* lottieloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A4236C79D60000A9BF /* lottieloader.cpp */; }; + A7D282B2236C79D70000A9BF /* lottieproxymodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A5236C79D60000A9BF /* lottieproxymodel.cpp */; }; + A7D282B3236C79D70000A9BF /* lottiekeypath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A6236C79D70000A9BF /* lottiekeypath.cpp */; }; + A7D282B4236C79D70000A9BF /* lottiemodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A7236C79D70000A9BF /* lottiemodel.cpp */; }; + A7D282B5236C79D70000A9BF /* lottieanimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282A8236C79D70000A9BF /* lottieanimation.cpp */; }; + A7D282B6236C79D70000A9BF /* lottieparser.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282A9236C79D70000A9BF /* lottieparser.h */; }; + A7D282B7236C79D70000A9BF /* lottiemodel.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282AA236C79D70000A9BF /* lottiemodel.h */; }; + A7D282B8236C79D70000A9BF /* lottiekeypath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282AB236C79D70000A9BF /* lottiekeypath.h */; }; + A7D282B9236C79D70000A9BF /* lottieitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282AC236C79D70000A9BF /* lottieitem.cpp */; }; + A7D282BA236C79D70000A9BF /* lottieitem.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282AD236C79D70000A9BF /* lottieitem.h */; }; + A7D282BB236C79D70000A9BF /* lottieparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D282AE236C79D70000A9BF /* lottieparser.cpp */; }; + A7D282BC236C79D70000A9BF /* lottieloader.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282AF236C79D70000A9BF /* lottieloader.h */; }; + A7D282BD236C79D70000A9BF /* lottieproxymodel.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282B0236C79D70000A9BF /* lottieproxymodel.h */; }; + A7D282E6236C79F60000A9BF /* prettywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282BF236C79F50000A9BF /* prettywriter.h */; }; + A7D282E7236C79F60000A9BF /* ieee754.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C1236C79F50000A9BF /* ieee754.h */; }; + A7D282E8236C79F60000A9BF /* strtod.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C2236C79F50000A9BF /* strtod.h */; }; + A7D282E9236C79F60000A9BF /* swap.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C3236C79F50000A9BF /* swap.h */; }; + A7D282EA236C79F60000A9BF /* regex.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C4236C79F50000A9BF /* regex.h */; }; + A7D282EB236C79F60000A9BF /* diyfp.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C5236C79F50000A9BF /* diyfp.h */; }; + A7D282EC236C79F60000A9BF /* biginteger.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C6236C79F50000A9BF /* biginteger.h */; }; + A7D282ED236C79F60000A9BF /* strfunc.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C7236C79F50000A9BF /* strfunc.h */; }; + A7D282EE236C79F60000A9BF /* itoa.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C8236C79F50000A9BF /* itoa.h */; }; + A7D282EF236C79F60000A9BF /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282C9236C79F50000A9BF /* stack.h */; }; + A7D282F0236C79F60000A9BF /* dtoa.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CA236C79F50000A9BF /* dtoa.h */; }; + A7D282F1236C79F60000A9BF /* meta.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CB236C79F50000A9BF /* meta.h */; }; + A7D282F2236C79F60000A9BF /* pow10.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CC236C79F50000A9BF /* pow10.h */; }; + A7D282F3236C79F60000A9BF /* filewritestream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CD236C79F50000A9BF /* filewritestream.h */; }; + A7D282F4236C79F60000A9BF /* allocators.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CE236C79F50000A9BF /* allocators.h */; }; + A7D282F5236C79F60000A9BF /* reader.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282CF236C79F50000A9BF /* reader.h */; }; + A7D282F6236C79F60000A9BF /* schema.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D0236C79F50000A9BF /* schema.h */; }; + A7D282F7236C79F60000A9BF /* writer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D1236C79F50000A9BF /* writer.h */; }; + A7D282FA236C79F60000A9BF /* filereadstream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D5236C79F50000A9BF /* filereadstream.h */; }; + A7D282FB236C79F60000A9BF /* encodedstream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D6236C79F50000A9BF /* encodedstream.h */; }; + A7D282FC236C79F60000A9BF /* document.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D7236C79F50000A9BF /* document.h */; }; + A7D282FD236C79F60000A9BF /* memorystream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D8236C79F50000A9BF /* memorystream.h */; }; + A7D282FE236C79F60000A9BF /* cursorstreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282D9236C79F50000A9BF /* cursorstreamwrapper.h */; }; + A7D282FF236C79F60000A9BF /* encodings.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DA236C79F60000A9BF /* encodings.h */; }; + A7D28300236C79F60000A9BF /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DB236C79F60000A9BF /* fwd.h */; }; + A7D28301236C79F60000A9BF /* memorybuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DC236C79F60000A9BF /* memorybuffer.h */; }; + A7D28302236C79F60000A9BF /* istreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DD236C79F60000A9BF /* istreamwrapper.h */; }; + A7D28303236C79F60000A9BF /* ostreamwrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DE236C79F60000A9BF /* ostreamwrapper.h */; }; + A7D28304236C79F60000A9BF /* stream.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282DF236C79F60000A9BF /* stream.h */; }; + A7D28305236C79F60000A9BF /* error.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282E1236C79F60000A9BF /* error.h */; }; + A7D28306236C79F60000A9BF /* en.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282E2236C79F60000A9BF /* en.h */; }; + A7D28307236C79F60000A9BF /* rapidjson.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282E3236C79F60000A9BF /* rapidjson.h */; }; + A7D28308236C79F60000A9BF /* stringbuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282E4236C79F60000A9BF /* stringbuffer.h */; }; + A7D28309236C79F60000A9BF /* pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D282E5236C79F60000A9BF /* pointer.h */; }; + A7D28337236C7A270000A9BF /* vpath.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2830B236C7A250000A9BF /* vpath.h */; }; + A7D28338236C7A270000A9BF /* vraster.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2830C236C7A250000A9BF /* vraster.h */; }; + A7D28339236C7A270000A9BF /* vmatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2830D236C7A250000A9BF /* vmatrix.h */; }; + A7D2833A236C7A270000A9BF /* vdrawhelper_neon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2830E236C7A250000A9BF /* vdrawhelper_neon.cpp */; }; + A7D2833B236C7A270000A9BF /* vpainter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2830F236C7A250000A9BF /* vpainter.cpp */; }; + A7D2833C236C7A270000A9BF /* vbitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28310236C7A250000A9BF /* vbitmap.h */; }; + A7D2833D236C7A270000A9BF /* vrect.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28311236C7A250000A9BF /* vrect.h */; }; + A7D2833E236C7A270000A9BF /* vinterpolator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28312236C7A250000A9BF /* vinterpolator.cpp */; }; + A7D2833F236C7A270000A9BF /* vpathmesure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28313236C7A250000A9BF /* vpathmesure.cpp */; }; + A7D28340236C7A270000A9BF /* vdasher.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28314236C7A250000A9BF /* vdasher.h */; }; + A7D28341236C7A270000A9BF /* vcowptr.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28315236C7A250000A9BF /* vcowptr.h */; }; + A7D28342236C7A270000A9BF /* vrect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28316236C7A250000A9BF /* vrect.cpp */; }; + A7D28343236C7A270000A9BF /* vbitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28317236C7A250000A9BF /* vbitmap.cpp */; }; + A7D28344236C7A270000A9BF /* vpainter.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28318236C7A250000A9BF /* vpainter.h */; }; + A7D28345236C7A270000A9BF /* velapsedtimer.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28319236C7A250000A9BF /* velapsedtimer.h */; }; + A7D28346236C7A270000A9BF /* vdebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2831A236C7A260000A9BF /* vdebug.cpp */; }; + A7D28347236C7A270000A9BF /* vdrawhelper_sse2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2831B236C7A260000A9BF /* vdrawhelper_sse2.cpp */; }; + A7D28348236C7A270000A9BF /* vdrawhelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2831C236C7A260000A9BF /* vdrawhelper.h */; }; + A7D28349236C7A270000A9BF /* vimageloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2831D236C7A260000A9BF /* vimageloader.cpp */; }; + A7D2834A236C7A270000A9BF /* vdrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2831E236C7A260000A9BF /* vdrawable.cpp */; }; + A7D2834B236C7A270000A9BF /* vmatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2831F236C7A260000A9BF /* vmatrix.cpp */; }; + A7D2834C236C7A270000A9BF /* vraster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28320236C7A260000A9BF /* vraster.cpp */; }; + A7D2834D236C7A270000A9BF /* vline.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28321236C7A260000A9BF /* vline.h */; }; + A7D2834E236C7A270000A9BF /* vdebug.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28322236C7A260000A9BF /* vdebug.h */; }; + A7D2834F236C7A270000A9BF /* vdrawable.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28323236C7A260000A9BF /* vdrawable.h */; }; + A7D28350236C7A270000A9BF /* vpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28324236C7A260000A9BF /* vpoint.h */; }; + A7D28351236C7A270000A9BF /* vbezier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28325236C7A260000A9BF /* vbezier.cpp */; }; + A7D28352236C7A270000A9BF /* vpathmesure.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28326236C7A260000A9BF /* vpathmesure.h */; }; + A7D28353236C7A270000A9BF /* velapsedtimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28327236C7A260000A9BF /* velapsedtimer.cpp */; }; + A7D28354236C7A270000A9BF /* vrle.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28328236C7A260000A9BF /* vrle.h */; }; + A7D28355236C7A270000A9BF /* vglobal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28329236C7A260000A9BF /* vglobal.h */; }; + A7D28356236C7A270000A9BF /* vbrush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2832A236C7A260000A9BF /* vbrush.cpp */; }; + A7D28357236C7A270000A9BF /* vrle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2832B236C7A260000A9BF /* vrle.cpp */; }; + A7D28358236C7A270000A9BF /* vpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2832C236C7A260000A9BF /* vpath.cpp */; }; + A7D28359236C7A270000A9BF /* vtaskqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2832D236C7A260000A9BF /* vtaskqueue.h */; }; + A7D2835A236C7A270000A9BF /* vbrush.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2832E236C7A260000A9BF /* vbrush.h */; }; + A7D2835B236C7A270000A9BF /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2832F236C7A260000A9BF /* config.h */; }; + A7D2835C236C7A270000A9BF /* vinterpolator.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28330236C7A270000A9BF /* vinterpolator.h */; }; + A7D2835D236C7A270000A9BF /* vcompositionfunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28331236C7A270000A9BF /* vcompositionfunctions.cpp */; }; + A7D2835E236C7A270000A9BF /* vdrawhelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28332236C7A270000A9BF /* vdrawhelper.cpp */; }; + A7D2835F236C7A270000A9BF /* vstackallocator.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28333236C7A270000A9BF /* vstackallocator.h */; }; + A7D28360236C7A270000A9BF /* vdasher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28334236C7A270000A9BF /* vdasher.cpp */; }; + A7D28361236C7A270000A9BF /* vbezier.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28335236C7A270000A9BF /* vbezier.h */; }; + A7D28362236C7A270000A9BF /* vimageloader.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28336236C7A270000A9BF /* vimageloader.h */; }; + A7D2836B236C7A380000A9BF /* v_ft_types.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28364236C7A380000A9BF /* v_ft_types.h */; }; + A7D2836C236C7A380000A9BF /* v_ft_stroker.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28365236C7A380000A9BF /* v_ft_stroker.h */; }; + A7D2836D236C7A380000A9BF /* v_ft_raster.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28366236C7A380000A9BF /* v_ft_raster.h */; }; + A7D2836E236C7A380000A9BF /* v_ft_math.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28367236C7A380000A9BF /* v_ft_math.h */; }; + A7D2836F236C7A380000A9BF /* v_ft_math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28368236C7A380000A9BF /* v_ft_math.cpp */; }; + A7D28370236C7A380000A9BF /* v_ft_stroker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28369236C7A380000A9BF /* v_ft_stroker.cpp */; }; + A7D28371236C7A380000A9BF /* v_ft_raster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D2836A236C7A380000A9BF /* v_ft_raster.cpp */; }; + A7D28375236C7A8E0000A9BF /* vregion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7D28373236C7A8E0000A9BF /* vregion.cpp */; }; + A7D28376236C7A8E0000A9BF /* vregion.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D28374236C7A8E0000A9BF /* vregion.h */; }; + A7D28380236C7AC90000A9BF /* rlottie.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2837D236C7AC90000A9BF /* rlottie.h */; }; + A7D28381236C7AC90000A9BF /* rlottiecommon.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2837E236C7AC90000A9BF /* rlottiecommon.h */; }; + A7D28382236C7AC90000A9BF /* rlottie_capi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D2837F236C7AC90000A9BF /* rlottie_capi.h */; }; + A7ED5DB2236C7D5500040372 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DB1236C7D5500040372 /* QuartzCore.framework */; }; + A7ED5DB4236C7D6300040372 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DB3236C7D6300040372 /* Accelerate.framework */; }; + A7ED5DB6236C7D6B00040372 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DB5236C7D6B00040372 /* CoreMedia.framework */; }; + A7ED5DB8236C7D8000040372 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DB7236C7D8000040372 /* AppKit.framework */; }; + A7ED5DBA236C7D9100040372 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7ED5DB9236C7D9100040372 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A7D2826A236C77FA0000A9BF /* RLottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RLottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D2826D236C77FA0000A9BF /* RLottie.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RLottie.h; sourceTree = ""; }; + A7D2826E236C77FA0000A9BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A7D2827E236C78DF0000A9BF /* RLottieBridge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RLottieBridge.mm; sourceTree = ""; }; + A7D2827F236C78DF0000A9BF /* RLottieBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RLottieBridge.h; sourceTree = ""; }; + A7D282A1236C79C40000A9BF /* lottieanimation_capi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieanimation_capi.cpp; path = ../../../../rlottie/src/binding/c/lottieanimation_capi.cpp; sourceTree = ""; }; + A7D282A4236C79D60000A9BF /* lottieloader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieloader.cpp; path = ../../../rlottie/src/lottie/lottieloader.cpp; sourceTree = ""; }; + A7D282A5236C79D60000A9BF /* lottieproxymodel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieproxymodel.cpp; path = ../../../rlottie/src/lottie/lottieproxymodel.cpp; sourceTree = ""; }; + A7D282A6236C79D70000A9BF /* lottiekeypath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottiekeypath.cpp; path = ../../../rlottie/src/lottie/lottiekeypath.cpp; sourceTree = ""; }; + A7D282A7236C79D70000A9BF /* lottiemodel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottiemodel.cpp; path = ../../../rlottie/src/lottie/lottiemodel.cpp; sourceTree = ""; }; + A7D282A8236C79D70000A9BF /* lottieanimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieanimation.cpp; path = ../../../rlottie/src/lottie/lottieanimation.cpp; sourceTree = ""; }; + A7D282A9236C79D70000A9BF /* lottieparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottieparser.h; path = ../../../rlottie/src/lottie/lottieparser.h; sourceTree = ""; }; + A7D282AA236C79D70000A9BF /* lottiemodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottiemodel.h; path = ../../../rlottie/src/lottie/lottiemodel.h; sourceTree = ""; }; + A7D282AB236C79D70000A9BF /* lottiekeypath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottiekeypath.h; path = ../../../rlottie/src/lottie/lottiekeypath.h; sourceTree = ""; }; + A7D282AC236C79D70000A9BF /* lottieitem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieitem.cpp; path = ../../../rlottie/src/lottie/lottieitem.cpp; sourceTree = ""; }; + A7D282AD236C79D70000A9BF /* lottieitem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottieitem.h; path = ../../../rlottie/src/lottie/lottieitem.h; sourceTree = ""; }; + A7D282AE236C79D70000A9BF /* lottieparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = lottieparser.cpp; path = ../../../rlottie/src/lottie/lottieparser.cpp; sourceTree = ""; }; + A7D282AF236C79D70000A9BF /* lottieloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottieloader.h; path = ../../../rlottie/src/lottie/lottieloader.h; sourceTree = ""; }; + A7D282B0236C79D70000A9BF /* lottieproxymodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lottieproxymodel.h; path = ../../../rlottie/src/lottie/lottieproxymodel.h; sourceTree = ""; }; + A7D282BF236C79F50000A9BF /* prettywriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = prettywriter.h; path = ../../../../rlottie/src/lottie/rapidjson/prettywriter.h; sourceTree = ""; }; + A7D282C1236C79F50000A9BF /* ieee754.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ieee754.h; sourceTree = ""; }; + A7D282C2236C79F50000A9BF /* strtod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strtod.h; sourceTree = ""; }; + A7D282C3236C79F50000A9BF /* swap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swap.h; sourceTree = ""; }; + A7D282C4236C79F50000A9BF /* regex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regex.h; sourceTree = ""; }; + A7D282C5236C79F50000A9BF /* diyfp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = diyfp.h; sourceTree = ""; }; + A7D282C6236C79F50000A9BF /* biginteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = biginteger.h; sourceTree = ""; }; + A7D282C7236C79F50000A9BF /* strfunc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strfunc.h; sourceTree = ""; }; + A7D282C8236C79F50000A9BF /* itoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itoa.h; sourceTree = ""; }; + A7D282C9236C79F50000A9BF /* stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack.h; sourceTree = ""; }; + A7D282CA236C79F50000A9BF /* dtoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtoa.h; sourceTree = ""; }; + A7D282CB236C79F50000A9BF /* meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = meta.h; sourceTree = ""; }; + A7D282CC236C79F50000A9BF /* pow10.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pow10.h; sourceTree = ""; }; + A7D282CD236C79F50000A9BF /* filewritestream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filewritestream.h; path = ../../../../rlottie/src/lottie/rapidjson/filewritestream.h; sourceTree = ""; }; + A7D282CE236C79F50000A9BF /* allocators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = allocators.h; path = ../../../../rlottie/src/lottie/rapidjson/allocators.h; sourceTree = ""; }; + A7D282CF236C79F50000A9BF /* reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reader.h; path = ../../../../rlottie/src/lottie/rapidjson/reader.h; sourceTree = ""; }; + A7D282D0236C79F50000A9BF /* schema.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = schema.h; path = ../../../../rlottie/src/lottie/rapidjson/schema.h; sourceTree = ""; }; + A7D282D1236C79F50000A9BF /* writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = writer.h; path = ../../../../rlottie/src/lottie/rapidjson/writer.h; sourceTree = ""; }; + A7D282D5236C79F50000A9BF /* filereadstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filereadstream.h; path = ../../../../rlottie/src/lottie/rapidjson/filereadstream.h; sourceTree = ""; }; + A7D282D6236C79F50000A9BF /* encodedstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encodedstream.h; path = ../../../../rlottie/src/lottie/rapidjson/encodedstream.h; sourceTree = ""; }; + A7D282D7236C79F50000A9BF /* document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = document.h; path = ../../../../rlottie/src/lottie/rapidjson/document.h; sourceTree = ""; }; + A7D282D8236C79F50000A9BF /* memorystream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memorystream.h; path = ../../../../rlottie/src/lottie/rapidjson/memorystream.h; sourceTree = ""; }; + A7D282D9236C79F50000A9BF /* cursorstreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cursorstreamwrapper.h; path = ../../../../rlottie/src/lottie/rapidjson/cursorstreamwrapper.h; sourceTree = ""; }; + A7D282DA236C79F60000A9BF /* encodings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encodings.h; path = ../../../../rlottie/src/lottie/rapidjson/encodings.h; sourceTree = ""; }; + A7D282DB236C79F60000A9BF /* fwd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = ../../../../rlottie/src/lottie/rapidjson/fwd.h; sourceTree = ""; }; + A7D282DC236C79F60000A9BF /* memorybuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memorybuffer.h; path = ../../../../rlottie/src/lottie/rapidjson/memorybuffer.h; sourceTree = ""; }; + A7D282DD236C79F60000A9BF /* istreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = istreamwrapper.h; path = ../../../../rlottie/src/lottie/rapidjson/istreamwrapper.h; sourceTree = ""; }; + A7D282DE236C79F60000A9BF /* ostreamwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ostreamwrapper.h; path = ../../../../rlottie/src/lottie/rapidjson/ostreamwrapper.h; sourceTree = ""; }; + A7D282DF236C79F60000A9BF /* stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stream.h; path = ../../../../rlottie/src/lottie/rapidjson/stream.h; sourceTree = ""; }; + A7D282E1236C79F60000A9BF /* error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = ""; }; + A7D282E2236C79F60000A9BF /* en.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = en.h; sourceTree = ""; }; + A7D282E3236C79F60000A9BF /* rapidjson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rapidjson.h; path = ../../../../rlottie/src/lottie/rapidjson/rapidjson.h; sourceTree = ""; }; + A7D282E4236C79F60000A9BF /* stringbuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stringbuffer.h; path = ../../../../rlottie/src/lottie/rapidjson/stringbuffer.h; sourceTree = ""; }; + A7D282E5236C79F60000A9BF /* pointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pointer.h; path = ../../../../rlottie/src/lottie/rapidjson/pointer.h; sourceTree = ""; }; + A7D2830B236C7A250000A9BF /* vpath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vpath.h; path = ../../../rlottie/src/vector/vpath.h; sourceTree = ""; }; + A7D2830C236C7A250000A9BF /* vraster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vraster.h; path = ../../../rlottie/src/vector/vraster.h; sourceTree = ""; }; + A7D2830D236C7A250000A9BF /* vmatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vmatrix.h; path = ../../../rlottie/src/vector/vmatrix.h; sourceTree = ""; }; + A7D2830E236C7A250000A9BF /* vdrawhelper_neon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdrawhelper_neon.cpp; path = ../../../rlottie/src/vector/vdrawhelper_neon.cpp; sourceTree = ""; }; + A7D2830F236C7A250000A9BF /* vpainter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vpainter.cpp; path = ../../../rlottie/src/vector/vpainter.cpp; sourceTree = ""; }; + A7D28310236C7A250000A9BF /* vbitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vbitmap.h; path = ../../../rlottie/src/vector/vbitmap.h; sourceTree = ""; }; + A7D28311236C7A250000A9BF /* vrect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vrect.h; path = ../../../rlottie/src/vector/vrect.h; sourceTree = ""; }; + A7D28312236C7A250000A9BF /* vinterpolator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vinterpolator.cpp; path = ../../../rlottie/src/vector/vinterpolator.cpp; sourceTree = ""; }; + A7D28313236C7A250000A9BF /* vpathmesure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vpathmesure.cpp; path = ../../../rlottie/src/vector/vpathmesure.cpp; sourceTree = ""; }; + A7D28314236C7A250000A9BF /* vdasher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vdasher.h; path = ../../../rlottie/src/vector/vdasher.h; sourceTree = ""; }; + A7D28315236C7A250000A9BF /* vcowptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vcowptr.h; path = ../../../rlottie/src/vector/vcowptr.h; sourceTree = ""; }; + A7D28316236C7A250000A9BF /* vrect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vrect.cpp; path = ../../../rlottie/src/vector/vrect.cpp; sourceTree = ""; }; + A7D28317236C7A250000A9BF /* vbitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vbitmap.cpp; path = ../../../rlottie/src/vector/vbitmap.cpp; sourceTree = ""; }; + A7D28318236C7A250000A9BF /* vpainter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vpainter.h; path = ../../../rlottie/src/vector/vpainter.h; sourceTree = ""; }; + A7D28319236C7A250000A9BF /* velapsedtimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = velapsedtimer.h; path = ../../../rlottie/src/vector/velapsedtimer.h; sourceTree = ""; }; + A7D2831A236C7A260000A9BF /* vdebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdebug.cpp; path = ../../../rlottie/src/vector/vdebug.cpp; sourceTree = ""; }; + A7D2831B236C7A260000A9BF /* vdrawhelper_sse2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdrawhelper_sse2.cpp; path = ../../../rlottie/src/vector/vdrawhelper_sse2.cpp; sourceTree = ""; }; + A7D2831C236C7A260000A9BF /* vdrawhelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vdrawhelper.h; path = ../../../rlottie/src/vector/vdrawhelper.h; sourceTree = ""; }; + A7D2831D236C7A260000A9BF /* vimageloader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vimageloader.cpp; path = ../../../rlottie/src/vector/vimageloader.cpp; sourceTree = ""; }; + A7D2831E236C7A260000A9BF /* vdrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdrawable.cpp; path = ../../../rlottie/src/vector/vdrawable.cpp; sourceTree = ""; }; + A7D2831F236C7A260000A9BF /* vmatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vmatrix.cpp; path = ../../../rlottie/src/vector/vmatrix.cpp; sourceTree = ""; }; + A7D28320236C7A260000A9BF /* vraster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vraster.cpp; path = ../../../rlottie/src/vector/vraster.cpp; sourceTree = ""; }; + A7D28321236C7A260000A9BF /* vline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vline.h; path = ../../../rlottie/src/vector/vline.h; sourceTree = ""; }; + A7D28322236C7A260000A9BF /* vdebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vdebug.h; path = ../../../rlottie/src/vector/vdebug.h; sourceTree = ""; }; + A7D28323236C7A260000A9BF /* vdrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vdrawable.h; path = ../../../rlottie/src/vector/vdrawable.h; sourceTree = ""; }; + A7D28324236C7A260000A9BF /* vpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vpoint.h; path = ../../../rlottie/src/vector/vpoint.h; sourceTree = ""; }; + A7D28325236C7A260000A9BF /* vbezier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vbezier.cpp; path = ../../../rlottie/src/vector/vbezier.cpp; sourceTree = ""; }; + A7D28326236C7A260000A9BF /* vpathmesure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vpathmesure.h; path = ../../../rlottie/src/vector/vpathmesure.h; sourceTree = ""; }; + A7D28327236C7A260000A9BF /* velapsedtimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = velapsedtimer.cpp; path = ../../../rlottie/src/vector/velapsedtimer.cpp; sourceTree = ""; }; + A7D28328236C7A260000A9BF /* vrle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vrle.h; path = ../../../rlottie/src/vector/vrle.h; sourceTree = ""; }; + A7D28329236C7A260000A9BF /* vglobal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vglobal.h; path = ../../../rlottie/src/vector/vglobal.h; sourceTree = ""; }; + A7D2832A236C7A260000A9BF /* vbrush.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vbrush.cpp; path = ../../../rlottie/src/vector/vbrush.cpp; sourceTree = ""; }; + A7D2832B236C7A260000A9BF /* vrle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vrle.cpp; path = ../../../rlottie/src/vector/vrle.cpp; sourceTree = ""; }; + A7D2832C236C7A260000A9BF /* vpath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vpath.cpp; path = ../../../rlottie/src/vector/vpath.cpp; sourceTree = ""; }; + A7D2832D236C7A260000A9BF /* vtaskqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vtaskqueue.h; path = ../../../rlottie/src/vector/vtaskqueue.h; sourceTree = ""; }; + A7D2832E236C7A260000A9BF /* vbrush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vbrush.h; path = ../../../rlottie/src/vector/vbrush.h; sourceTree = ""; }; + A7D2832F236C7A260000A9BF /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../../../rlottie/src/vector/config.h; sourceTree = ""; }; + A7D28330236C7A270000A9BF /* vinterpolator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vinterpolator.h; path = ../../../rlottie/src/vector/vinterpolator.h; sourceTree = ""; }; + A7D28331236C7A270000A9BF /* vcompositionfunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vcompositionfunctions.cpp; path = ../../../rlottie/src/vector/vcompositionfunctions.cpp; sourceTree = ""; }; + A7D28332236C7A270000A9BF /* vdrawhelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdrawhelper.cpp; path = ../../../rlottie/src/vector/vdrawhelper.cpp; sourceTree = ""; }; + A7D28333236C7A270000A9BF /* vstackallocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vstackallocator.h; path = ../../../rlottie/src/vector/vstackallocator.h; sourceTree = ""; }; + A7D28334236C7A270000A9BF /* vdasher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vdasher.cpp; path = ../../../rlottie/src/vector/vdasher.cpp; sourceTree = ""; }; + A7D28335236C7A270000A9BF /* vbezier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vbezier.h; path = ../../../rlottie/src/vector/vbezier.h; sourceTree = ""; }; + A7D28336236C7A270000A9BF /* vimageloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vimageloader.h; path = ../../../rlottie/src/vector/vimageloader.h; sourceTree = ""; }; + A7D28364236C7A380000A9BF /* v_ft_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = v_ft_types.h; path = ../../../../rlottie/src/vector/freetype/v_ft_types.h; sourceTree = ""; }; + A7D28365236C7A380000A9BF /* v_ft_stroker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = v_ft_stroker.h; path = ../../../../rlottie/src/vector/freetype/v_ft_stroker.h; sourceTree = ""; }; + A7D28366236C7A380000A9BF /* v_ft_raster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = v_ft_raster.h; path = ../../../../rlottie/src/vector/freetype/v_ft_raster.h; sourceTree = ""; }; + A7D28367236C7A380000A9BF /* v_ft_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = v_ft_math.h; path = ../../../../rlottie/src/vector/freetype/v_ft_math.h; sourceTree = ""; }; + A7D28368236C7A380000A9BF /* v_ft_math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = v_ft_math.cpp; path = ../../../../rlottie/src/vector/freetype/v_ft_math.cpp; sourceTree = ""; }; + A7D28369236C7A380000A9BF /* v_ft_stroker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = v_ft_stroker.cpp; path = ../../../../rlottie/src/vector/freetype/v_ft_stroker.cpp; sourceTree = ""; }; + A7D2836A236C7A380000A9BF /* v_ft_raster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = v_ft_raster.cpp; path = ../../../../rlottie/src/vector/freetype/v_ft_raster.cpp; sourceTree = ""; }; + A7D28373236C7A8E0000A9BF /* vregion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vregion.cpp; path = ../../../../rlottie/src/vector/pixman/vregion.cpp; sourceTree = ""; }; + A7D28374236C7A8E0000A9BF /* vregion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vregion.h; path = ../../../../rlottie/src/vector/pixman/vregion.h; sourceTree = ""; }; + A7D2837D236C7AC90000A9BF /* rlottie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rlottie.h; path = ../../rlottie/inc/rlottie.h; sourceTree = ""; }; + A7D2837E236C7AC90000A9BF /* rlottiecommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rlottiecommon.h; path = ../../rlottie/inc/rlottiecommon.h; sourceTree = ""; }; + A7D2837F236C7AC90000A9BF /* rlottie_capi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rlottie_capi.h; path = ../../rlottie/inc/rlottie_capi.h; sourceTree = ""; }; + A7ED5DB1236C7D5500040372 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + A7ED5DB3236C7D6300040372 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + A7ED5DB5236C7D6B00040372 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + A7ED5DB7236C7D8000040372 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + A7ED5DB9236C7D9100040372 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A7D28267236C77FA0000A9BF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7ED5DBA236C7D9100040372 /* Foundation.framework in Frameworks */, + A7ED5DB8236C7D8000040372 /* AppKit.framework in Frameworks */, + A7ED5DB6236C7D6B00040372 /* CoreMedia.framework in Frameworks */, + A7ED5DB4236C7D6300040372 /* Accelerate.framework in Frameworks */, + A7ED5DB2236C7D5500040372 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A7D28260236C77FA0000A9BF = { + isa = PBXGroup; + children = ( + A7D2837C236C7AC20000A9BF /* include */, + A7D28282236C793E0000A9BF /* src */, + A7D2827D236C78B00000A9BF /* Sources */, + A7D2826C236C77FA0000A9BF /* RLottie */, + A7D2826B236C77FA0000A9BF /* Products */, + A7ED5DB0236C7D5400040372 /* Frameworks */, + ); + sourceTree = ""; + }; + A7D2826B236C77FA0000A9BF /* Products */ = { + isa = PBXGroup; + children = ( + A7D2826A236C77FA0000A9BF /* RLottie.framework */, + ); + name = Products; + sourceTree = ""; + }; + A7D2826C236C77FA0000A9BF /* RLottie */ = { + isa = PBXGroup; + children = ( + A7D2826D236C77FA0000A9BF /* RLottie.h */, + A7D2826E236C77FA0000A9BF /* Info.plist */, + ); + path = RLottie; + sourceTree = ""; + }; + A7D2827D236C78B00000A9BF /* Sources */ = { + isa = PBXGroup; + children = ( + A7D2827F236C78DF0000A9BF /* RLottieBridge.h */, + A7D2827E236C78DF0000A9BF /* RLottieBridge.mm */, + ); + path = Sources; + sourceTree = ""; + }; + A7D28282236C793E0000A9BF /* src */ = { + isa = PBXGroup; + children = ( + A7D2830A236C7A110000A9BF /* vector */, + A7D282A3236C79CC0000A9BF /* lottie */, + A7D2829F236C79B30000A9BF /* binding */, + ); + path = src; + sourceTree = ""; + }; + A7D2829F236C79B30000A9BF /* binding */ = { + isa = PBXGroup; + children = ( + A7D282A0236C79BB0000A9BF /* c */, + ); + path = binding; + sourceTree = ""; + }; + A7D282A0236C79BB0000A9BF /* c */ = { + isa = PBXGroup; + children = ( + A7D282A1236C79C40000A9BF /* lottieanimation_capi.cpp */, + ); + path = c; + sourceTree = ""; + }; + A7D282A3236C79CC0000A9BF /* lottie */ = { + isa = PBXGroup; + children = ( + A7D282BE236C79D90000A9BF /* rapidjson */, + A7D282A8236C79D70000A9BF /* lottieanimation.cpp */, + A7D282AC236C79D70000A9BF /* lottieitem.cpp */, + A7D282AD236C79D70000A9BF /* lottieitem.h */, + A7D282A6236C79D70000A9BF /* lottiekeypath.cpp */, + A7D282AB236C79D70000A9BF /* lottiekeypath.h */, + A7D282A4236C79D60000A9BF /* lottieloader.cpp */, + A7D282AF236C79D70000A9BF /* lottieloader.h */, + A7D282A7236C79D70000A9BF /* lottiemodel.cpp */, + A7D282AA236C79D70000A9BF /* lottiemodel.h */, + A7D282AE236C79D70000A9BF /* lottieparser.cpp */, + A7D282A9236C79D70000A9BF /* lottieparser.h */, + A7D282A5236C79D60000A9BF /* lottieproxymodel.cpp */, + A7D282B0236C79D70000A9BF /* lottieproxymodel.h */, + ); + path = lottie; + sourceTree = ""; + }; + A7D282BE236C79D90000A9BF /* rapidjson */ = { + isa = PBXGroup; + children = ( + A7D282CE236C79F50000A9BF /* allocators.h */, + A7D282D9236C79F50000A9BF /* cursorstreamwrapper.h */, + A7D282D7236C79F50000A9BF /* document.h */, + A7D282D6236C79F50000A9BF /* encodedstream.h */, + A7D282DA236C79F60000A9BF /* encodings.h */, + A7D282E0236C79F60000A9BF /* error */, + A7D282D5236C79F50000A9BF /* filereadstream.h */, + A7D282CD236C79F50000A9BF /* filewritestream.h */, + A7D282DB236C79F60000A9BF /* fwd.h */, + A7D282C0236C79F50000A9BF /* internal */, + A7D282DD236C79F60000A9BF /* istreamwrapper.h */, + A7D282DC236C79F60000A9BF /* memorybuffer.h */, + A7D282D8236C79F50000A9BF /* memorystream.h */, + A7D282DE236C79F60000A9BF /* ostreamwrapper.h */, + A7D282E5236C79F60000A9BF /* pointer.h */, + A7D282BF236C79F50000A9BF /* prettywriter.h */, + A7D282E3236C79F60000A9BF /* rapidjson.h */, + A7D282CF236C79F50000A9BF /* reader.h */, + A7D282D0236C79F50000A9BF /* schema.h */, + A7D282DF236C79F60000A9BF /* stream.h */, + A7D282E4236C79F60000A9BF /* stringbuffer.h */, + A7D282D1236C79F50000A9BF /* writer.h */, + ); + path = rapidjson; + sourceTree = ""; + }; + A7D282C0236C79F50000A9BF /* internal */ = { + isa = PBXGroup; + children = ( + A7D282C1236C79F50000A9BF /* ieee754.h */, + A7D282C2236C79F50000A9BF /* strtod.h */, + A7D282C3236C79F50000A9BF /* swap.h */, + A7D282C4236C79F50000A9BF /* regex.h */, + A7D282C5236C79F50000A9BF /* diyfp.h */, + A7D282C6236C79F50000A9BF /* biginteger.h */, + A7D282C7236C79F50000A9BF /* strfunc.h */, + A7D282C8236C79F50000A9BF /* itoa.h */, + A7D282C9236C79F50000A9BF /* stack.h */, + A7D282CA236C79F50000A9BF /* dtoa.h */, + A7D282CB236C79F50000A9BF /* meta.h */, + A7D282CC236C79F50000A9BF /* pow10.h */, + ); + name = internal; + path = ../../../../rlottie/src/lottie/rapidjson/internal; + sourceTree = ""; + }; + A7D282E0236C79F60000A9BF /* error */ = { + isa = PBXGroup; + children = ( + A7D282E1236C79F60000A9BF /* error.h */, + A7D282E2236C79F60000A9BF /* en.h */, + ); + name = error; + path = ../../../../rlottie/src/lottie/rapidjson/error; + sourceTree = ""; + }; + A7D2830A236C7A110000A9BF /* vector */ = { + isa = PBXGroup; + children = ( + A7D28372236C7A400000A9BF /* pixman */, + A7D28363236C7A2F0000A9BF /* freetype */, + A7D2832F236C7A260000A9BF /* config.h */, + A7D28325236C7A260000A9BF /* vbezier.cpp */, + A7D28335236C7A270000A9BF /* vbezier.h */, + A7D28317236C7A250000A9BF /* vbitmap.cpp */, + A7D28310236C7A250000A9BF /* vbitmap.h */, + A7D2832A236C7A260000A9BF /* vbrush.cpp */, + A7D2832E236C7A260000A9BF /* vbrush.h */, + A7D28331236C7A270000A9BF /* vcompositionfunctions.cpp */, + A7D28315236C7A250000A9BF /* vcowptr.h */, + A7D28334236C7A270000A9BF /* vdasher.cpp */, + A7D28314236C7A250000A9BF /* vdasher.h */, + A7D2831A236C7A260000A9BF /* vdebug.cpp */, + A7D28322236C7A260000A9BF /* vdebug.h */, + A7D2831E236C7A260000A9BF /* vdrawable.cpp */, + A7D28323236C7A260000A9BF /* vdrawable.h */, + A7D2830E236C7A250000A9BF /* vdrawhelper_neon.cpp */, + A7D2831B236C7A260000A9BF /* vdrawhelper_sse2.cpp */, + A7D28332236C7A270000A9BF /* vdrawhelper.cpp */, + A7D2831C236C7A260000A9BF /* vdrawhelper.h */, + A7D28327236C7A260000A9BF /* velapsedtimer.cpp */, + A7D28319236C7A250000A9BF /* velapsedtimer.h */, + A7D28329236C7A260000A9BF /* vglobal.h */, + A7D2831D236C7A260000A9BF /* vimageloader.cpp */, + A7D28336236C7A270000A9BF /* vimageloader.h */, + A7D28312236C7A250000A9BF /* vinterpolator.cpp */, + A7D28330236C7A270000A9BF /* vinterpolator.h */, + A7D28321236C7A260000A9BF /* vline.h */, + A7D2831F236C7A260000A9BF /* vmatrix.cpp */, + A7D2830D236C7A250000A9BF /* vmatrix.h */, + A7D2830F236C7A250000A9BF /* vpainter.cpp */, + A7D28318236C7A250000A9BF /* vpainter.h */, + A7D2832C236C7A260000A9BF /* vpath.cpp */, + A7D2830B236C7A250000A9BF /* vpath.h */, + A7D28313236C7A250000A9BF /* vpathmesure.cpp */, + A7D28326236C7A260000A9BF /* vpathmesure.h */, + A7D28324236C7A260000A9BF /* vpoint.h */, + A7D28320236C7A260000A9BF /* vraster.cpp */, + A7D2830C236C7A250000A9BF /* vraster.h */, + A7D28316236C7A250000A9BF /* vrect.cpp */, + A7D28311236C7A250000A9BF /* vrect.h */, + A7D2832B236C7A260000A9BF /* vrle.cpp */, + A7D28328236C7A260000A9BF /* vrle.h */, + A7D28333236C7A270000A9BF /* vstackallocator.h */, + A7D2832D236C7A260000A9BF /* vtaskqueue.h */, + ); + path = vector; + sourceTree = ""; + }; + A7D28363236C7A2F0000A9BF /* freetype */ = { + isa = PBXGroup; + children = ( + A7D28368236C7A380000A9BF /* v_ft_math.cpp */, + A7D28367236C7A380000A9BF /* v_ft_math.h */, + A7D2836A236C7A380000A9BF /* v_ft_raster.cpp */, + A7D28366236C7A380000A9BF /* v_ft_raster.h */, + A7D28369236C7A380000A9BF /* v_ft_stroker.cpp */, + A7D28365236C7A380000A9BF /* v_ft_stroker.h */, + A7D28364236C7A380000A9BF /* v_ft_types.h */, + ); + path = freetype; + sourceTree = ""; + }; + A7D28372236C7A400000A9BF /* pixman */ = { + isa = PBXGroup; + children = ( + A7D28373236C7A8E0000A9BF /* vregion.cpp */, + A7D28374236C7A8E0000A9BF /* vregion.h */, + ); + path = pixman; + sourceTree = ""; + }; + A7D2837C236C7AC20000A9BF /* include */ = { + isa = PBXGroup; + children = ( + A7D2837F236C7AC90000A9BF /* rlottie_capi.h */, + A7D2837D236C7AC90000A9BF /* rlottie.h */, + A7D2837E236C7AC90000A9BF /* rlottiecommon.h */, + ); + path = include; + sourceTree = ""; + }; + A7ED5DB0236C7D5400040372 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7ED5DB9236C7D9100040372 /* Foundation.framework */, + A7ED5DB7236C7D8000040372 /* AppKit.framework */, + A7ED5DB5236C7D6B00040372 /* CoreMedia.framework */, + A7ED5DB3236C7D6300040372 /* Accelerate.framework */, + A7ED5DB1236C7D5500040372 /* QuartzCore.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + A7D28265236C77FA0000A9BF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D282B6236C79D70000A9BF /* lottieparser.h in Headers */, + A7D28281236C78DF0000A9BF /* RLottieBridge.h in Headers */, + A7D282FE236C79F60000A9BF /* cursorstreamwrapper.h in Headers */, + A7D282FB236C79F60000A9BF /* encodedstream.h in Headers */, + A7D282FC236C79F60000A9BF /* document.h in Headers */, + A7D282B7236C79D70000A9BF /* lottiemodel.h in Headers */, + A7D28339236C7A270000A9BF /* vmatrix.h in Headers */, + A7D282BA236C79D70000A9BF /* lottieitem.h in Headers */, + A7D282E7236C79F60000A9BF /* ieee754.h in Headers */, + A7D28302236C79F60000A9BF /* istreamwrapper.h in Headers */, + A7D282EE236C79F60000A9BF /* itoa.h in Headers */, + A7D282F6236C79F60000A9BF /* schema.h in Headers */, + A7D282ED236C79F60000A9BF /* strfunc.h in Headers */, + A7D282FD236C79F60000A9BF /* memorystream.h in Headers */, + A7D28381236C7AC90000A9BF /* rlottiecommon.h in Headers */, + A7D28338236C7A270000A9BF /* vraster.h in Headers */, + A7D2835A236C7A270000A9BF /* vbrush.h in Headers */, + A7D282F3236C79F60000A9BF /* filewritestream.h in Headers */, + A7D282FA236C79F60000A9BF /* filereadstream.h in Headers */, + A7D28341236C7A270000A9BF /* vcowptr.h in Headers */, + A7D28355236C7A270000A9BF /* vglobal.h in Headers */, + A7D2835B236C7A270000A9BF /* config.h in Headers */, + A7D2826F236C77FA0000A9BF /* RLottie.h in Headers */, + A7D2836D236C7A380000A9BF /* v_ft_raster.h in Headers */, + A7D282E6236C79F60000A9BF /* prettywriter.h in Headers */, + A7D282EA236C79F60000A9BF /* regex.h in Headers */, + A7D282FF236C79F60000A9BF /* encodings.h in Headers */, + A7D282EF236C79F60000A9BF /* stack.h in Headers */, + A7D28309236C79F60000A9BF /* pointer.h in Headers */, + A7D28301236C79F60000A9BF /* memorybuffer.h in Headers */, + A7D28354236C7A270000A9BF /* vrle.h in Headers */, + A7D28352236C7A270000A9BF /* vpathmesure.h in Headers */, + A7D2836B236C7A380000A9BF /* v_ft_types.h in Headers */, + A7D28380236C7AC90000A9BF /* rlottie.h in Headers */, + A7D282EB236C79F60000A9BF /* diyfp.h in Headers */, + A7D282E8236C79F60000A9BF /* strtod.h in Headers */, + A7D28359236C7A270000A9BF /* vtaskqueue.h in Headers */, + A7D282E9236C79F60000A9BF /* swap.h in Headers */, + A7D2835F236C7A270000A9BF /* vstackallocator.h in Headers */, + A7D282BD236C79D70000A9BF /* lottieproxymodel.h in Headers */, + A7D28362236C7A270000A9BF /* vimageloader.h in Headers */, + A7D28348236C7A270000A9BF /* vdrawhelper.h in Headers */, + A7D28382236C7AC90000A9BF /* rlottie_capi.h in Headers */, + A7D282B8236C79D70000A9BF /* lottiekeypath.h in Headers */, + A7D28303236C79F60000A9BF /* ostreamwrapper.h in Headers */, + A7D2833D236C7A270000A9BF /* vrect.h in Headers */, + A7D28307236C79F60000A9BF /* rapidjson.h in Headers */, + A7D28306236C79F60000A9BF /* en.h in Headers */, + A7D28361236C7A270000A9BF /* vbezier.h in Headers */, + A7D282F4236C79F60000A9BF /* allocators.h in Headers */, + A7D282F5236C79F60000A9BF /* reader.h in Headers */, + A7D2833C236C7A270000A9BF /* vbitmap.h in Headers */, + A7D282F2236C79F60000A9BF /* pow10.h in Headers */, + A7D28376236C7A8E0000A9BF /* vregion.h in Headers */, + A7D282F1236C79F60000A9BF /* meta.h in Headers */, + A7D282BC236C79D70000A9BF /* lottieloader.h in Headers */, + A7D2836C236C7A380000A9BF /* v_ft_stroker.h in Headers */, + A7D2834D236C7A270000A9BF /* vline.h in Headers */, + A7D28344236C7A270000A9BF /* vpainter.h in Headers */, + A7D28340236C7A270000A9BF /* vdasher.h in Headers */, + A7D28304236C79F60000A9BF /* stream.h in Headers */, + A7D28300236C79F60000A9BF /* fwd.h in Headers */, + A7D28308236C79F60000A9BF /* stringbuffer.h in Headers */, + A7D282EC236C79F60000A9BF /* biginteger.h in Headers */, + A7D282F7236C79F60000A9BF /* writer.h in Headers */, + A7D28350236C7A270000A9BF /* vpoint.h in Headers */, + A7D2835C236C7A270000A9BF /* vinterpolator.h in Headers */, + A7D2834F236C7A270000A9BF /* vdrawable.h in Headers */, + A7D2836E236C7A380000A9BF /* v_ft_math.h in Headers */, + A7D282F0236C79F60000A9BF /* dtoa.h in Headers */, + A7D2834E236C7A270000A9BF /* vdebug.h in Headers */, + A7D28337236C7A270000A9BF /* vpath.h in Headers */, + A7D28345236C7A270000A9BF /* velapsedtimer.h in Headers */, + A7D28305236C79F60000A9BF /* error.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + A7D28269236C77FA0000A9BF /* RLottie */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D28272236C77FA0000A9BF /* Build configuration list for PBXNativeTarget "RLottie" */; + buildPhases = ( + A7D28265236C77FA0000A9BF /* Headers */, + A7D28266236C77FA0000A9BF /* Sources */, + A7D28267236C77FA0000A9BF /* Frameworks */, + A7D28268236C77FA0000A9BF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RLottie; + productName = RLottie; + productReference = A7D2826A236C77FA0000A9BF /* RLottie.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A7D28261236C77FA0000A9BF /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = Telegram; + TargetAttributes = { + A7D28269236C77FA0000A9BF = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = A7D28264236C77FA0000A9BF /* Build configuration list for PBXProject "RLottie_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A7D28260236C77FA0000A9BF; + productRefGroup = A7D2826B236C77FA0000A9BF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A7D28269236C77FA0000A9BF /* RLottie */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A7D28268236C77FA0000A9BF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A7D28266236C77FA0000A9BF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D282B4236C79D70000A9BF /* lottiemodel.cpp in Sources */, + A7D28351236C7A270000A9BF /* vbezier.cpp in Sources */, + A7D2834C236C7A270000A9BF /* vraster.cpp in Sources */, + A7D2833B236C7A270000A9BF /* vpainter.cpp in Sources */, + A7D2834A236C7A270000A9BF /* vdrawable.cpp in Sources */, + A7D282B1236C79D70000A9BF /* lottieloader.cpp in Sources */, + A7D2833A236C7A270000A9BF /* vdrawhelper_neon.cpp in Sources */, + A7D28358236C7A270000A9BF /* vpath.cpp in Sources */, + A7D28343236C7A270000A9BF /* vbitmap.cpp in Sources */, + A7D2835D236C7A270000A9BF /* vcompositionfunctions.cpp in Sources */, + A7D282B5236C79D70000A9BF /* lottieanimation.cpp in Sources */, + A7D2833F236C7A270000A9BF /* vpathmesure.cpp in Sources */, + A7D2836F236C7A380000A9BF /* v_ft_math.cpp in Sources */, + A7D28347236C7A270000A9BF /* vdrawhelper_sse2.cpp in Sources */, + A7D28353236C7A270000A9BF /* velapsedtimer.cpp in Sources */, + A7D282B3236C79D70000A9BF /* lottiekeypath.cpp in Sources */, + A7D28375236C7A8E0000A9BF /* vregion.cpp in Sources */, + A7D28357236C7A270000A9BF /* vrle.cpp in Sources */, + A7D28356236C7A270000A9BF /* vbrush.cpp in Sources */, + A7D28346236C7A270000A9BF /* vdebug.cpp in Sources */, + A7D2834B236C7A270000A9BF /* vmatrix.cpp in Sources */, + A7D282B2236C79D70000A9BF /* lottieproxymodel.cpp in Sources */, + A7D2835E236C7A270000A9BF /* vdrawhelper.cpp in Sources */, + A7D28370236C7A380000A9BF /* v_ft_stroker.cpp in Sources */, + A7D28360236C7A270000A9BF /* vdasher.cpp in Sources */, + A7D28349236C7A270000A9BF /* vimageloader.cpp in Sources */, + A7D2833E236C7A270000A9BF /* vinterpolator.cpp in Sources */, + A7D282A2236C79C40000A9BF /* lottieanimation_capi.cpp in Sources */, + A7D28342236C7A270000A9BF /* vrect.cpp in Sources */, + A7D282BB236C79D70000A9BF /* lottieparser.cpp in Sources */, + A7D28280236C78DF0000A9BF /* RLottieBridge.mm in Sources */, + A7D282B9236C79D70000A9BF /* lottieitem.cpp in Sources */, + A7D28371236C7A380000A9BF /* v_ft_raster.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A7D28271236C77FA0000A9BF /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyapp; + }; + A7D28274236C77FA0000A9BF /* ReleaseHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = RLottie/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.RLottie; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseHockeyapp; + }; + A7D28275236C78800000A9BF /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + A7D28276236C78800000A9BF /* DebugHockeyapp */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = RLottie/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.RLottie; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugHockeyapp; + }; + A7D28277236C78870000A9BF /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStore; + }; + A7D28278236C78870000A9BF /* ReleaseAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = RLottie/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.RLottie; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = ReleaseAppStore; + }; + A7D28279236C78950000A9BF /* HockeyapMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = HockeyapMacAlpha; + }; + A7D2827A236C78950000A9BF /* HockeyapMacAlpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = RLottie/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.RLottie; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = HockeyapMacAlpha; + }; + A7D2827B236C78A30000A9BF /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "Mac Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStore; + }; + A7D2827C236C78A30000A9BF /* DebugAppStore */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6N38VWS5BX; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = RLottie/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = org.telegram.RLottie; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + }; + name = DebugAppStore; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A7D28264236C77FA0000A9BF /* Build configuration list for PBXProject "RLottie_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D28271236C77FA0000A9BF /* ReleaseHockeyapp */, + A7D28275236C78800000A9BF /* DebugHockeyapp */, + A7D28277236C78870000A9BF /* ReleaseAppStore */, + A7D28279236C78950000A9BF /* HockeyapMacAlpha */, + A7D2827B236C78A30000A9BF /* DebugAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseHockeyapp; + }; + A7D28272236C77FA0000A9BF /* Build configuration list for PBXNativeTarget "RLottie" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D28274236C77FA0000A9BF /* ReleaseHockeyapp */, + A7D28276236C78800000A9BF /* DebugHockeyapp */, + A7D28278236C78870000A9BF /* ReleaseAppStore */, + A7D2827A236C78950000A9BF /* HockeyapMacAlpha */, + A7D2827C236C78A30000A9BF /* DebugAppStore */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseHockeyapp; + }; +/* End XCConfigurationList section */ + }; + rootObject = A7D28261236C77FA0000A9BF /* Project object */; +} diff --git a/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..6aaba923e --- /dev/null +++ b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate b/submodules/RLottie_Xcode/RLottie_Xcode.xcodeproj/project.xcworkspace/xcuserdata/overtake.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..66acd493c06e4c7f0869b516a01dbed0eb5a9e20 GIT binary patch literal 49830 zcmd2kcR&=^)BE1u-R_=%*t??G6$Dho?!g^!3LM@Y&2~BA1Qa;DJ5(&mzQk11O^k^t z3Pz(bF-_B(DW(@&dSbfiruXEV*}c6&F~nc~_+rpycV^zadGluG&70k~xW1;^A4o|# z!V!*gJg4LIoPiTKW9iTp9-qJ3TUR#J?JKXUhToh+1K#@5q29$yJ>>y^SB{*w)fL~l zz%j?u=&3LTfnMcAPAYN)+yReF_IBY3*NKbadU3tEKHNAig-hkqxbfTsZX%b?P2w`R z$()JHkj!B*V!FGLlRn6G=LmL^8-Ul10qKLb6E#v5`WufGi}7 zh>M&-D#$WYLuyF_SwU8kbI5vfE;)~!Pd1P%$#rB4xt{DGyUDF&FS&!@&oyi{6u~xzmPvDp_KA8md4S}v>WY3 z$I!7fi6+x=G=-+pG&-J6rcTj=%l26`jCiEgFa=`C~*-OGQ@f5o5VzvqAAf93z+|JG5RUMK20>Ed)< zblr8mbbWOLbP2jd-EiF~-B{f?U7Bv9E<-m}H$!LAnRPk3*}8mPq0XTz)|KfN=v=zR zI*+bOw@g>3TdoV}R_a#k*6C#3IlA+77wRt7U8cKIceQS_Zj0_l-8S8J-A>(Z-EF!% zba(6a>+aV*q`|AhkhvnDwfcI!U%x`%s9&o;OMkZhT>S<54f;#65jG?oktD%RXx1pb5pkc6Ks9}U*v?0lmVi<2o zH%vB6Gt4w(8Z3rf!yH3_VXnbxC^5`4EHs>9C^sxIR2ymxUW3ojU|3~XV>r{m4C@W& z8!j?jVz}I}(Xh#It>JpZO@=1J&4ybHw;FCY+-bPSaIfJ3!^4Kh3{M!IHau&1!SJ%- zkm0D|b;DbRcMb0wJ~Di2_}uW7;iTbv!%v1^4SyK^7O0>XM4^)qCv*|I3%!KC!T=#b zNEC((qlB@-I3Z1#C}apzg&BfLFbg@tY$0DL6dXdaP$n!8T*6|(BUA~?ggRll5D-=h ztA%xfESw{pCtN68EL=us3Reo7glmKwgd2sMgu8`%gnhz(;a=fB;eO!(;X∾bGws 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 ei`FaFvGsPFk^fr<+x_pH_VNE0!T&oqEB^ SchemeUserState - RLottieMac.xcscheme_^#shared#^_ + RLottie.xcscheme_^#shared#^_ orderHint - 38 + 26 diff --git a/RLottieMac/RLottieMac/RLottieBridge.h b/submodules/RLottie_Xcode/Sources/RLottieBridge.h similarity index 100% rename from RLottieMac/RLottieMac/RLottieBridge.h rename to submodules/RLottie_Xcode/Sources/RLottieBridge.h diff --git a/RLottieMac/RLottieMac/RLottieBridge.mm b/submodules/RLottie_Xcode/Sources/RLottieBridge.mm similarity index 100% rename from RLottieMac/RLottieMac/RLottieBridge.mm rename to submodules/RLottie_Xcode/Sources/RLottieBridge.mm diff --git a/TGUIKit/TGUIKit.xcodeproj/project.pbxproj b/submodules/TGUIKit/TGUIKit.xcodeproj/project.pbxproj similarity index 84% rename from TGUIKit/TGUIKit.xcodeproj/project.pbxproj rename to submodules/TGUIKit/TGUIKit.xcodeproj/project.pbxproj index 4272029c6..e1b5a2726 100644 --- a/TGUIKit/TGUIKit.xcodeproj/project.pbxproj +++ b/submodules/TGUIKit/TGUIKit.xcodeproj/project.pbxproj @@ -12,15 +12,14 @@ 9F6281292037389200B2D3C9 /* CheckBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F6281282037389200B2D3C9 /* CheckBox.swift */; }; 9F9B5EAF2255FEDA00728CDC /* TooltipController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9B5EAE2255FEDA00728CDC /* TooltipController.swift */; }; 9FC76CAD20DBDDA30050CE3B /* SegmentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC76CAC20DBDDA30050CE3B /* SegmentController.swift */; }; - 9FF1DEB7225E285F009512C9 /* SPopoverRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF1DEB4225E285F009512C9 /* SPopoverRowView.swift */; }; A7C41DB92359E69400CF9402 /* CatalinaStyledSegmentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C41DB82359E69400CF9402 /* CatalinaStyledSegmentController.swift */; }; + A7D28203236C3B5D0000A9BF /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7D28202236C3B5D0000A9BF /* SwiftSignalKit.framework */; }; A7D49478235F226C003E9A25 /* SpinningProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D49477235F226C003E9A25 /* SpinningProgressView.swift */; }; C20232B61D845B0B007C9ADE /* TextNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20232B51D845B0B007C9ADE /* TextNode.swift */; }; C20232B81D85525C007C9ADE /* ViewUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = C20232B71D85525C007C9ADE /* ViewUtils.swift */; }; C21178021F17E78E00AC706D /* TimableProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21178011F17E78E00AC706D /* TimableProgressView.swift */; }; C2167E5D1DC2534300F98E03 /* SelectingControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2167E5C1DC2534300F98E03 /* SelectingControl.swift */; }; C2167E611DC356FD00F98E03 /* LinearProgressControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2167E601DC356FD00F98E03 /* LinearProgressControl.swift */; }; - C219E1D51D87F4A00042F0C8 /* SwiftSignalKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C219E1D41D87F4A00042F0C8 /* SwiftSignalKitMac.framework */; }; C219E1DD1D8978960042F0C8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C219E1DC1D8978960042F0C8 /* QuartzCore.framework */; }; C219E1E01D8A71820042F0C8 /* SImageLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C219E1DF1D8A71820042F0C8 /* SImageLayer.swift */; }; C219E1E21D8A93050042F0C8 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C219E1E11D8A93050042F0C8 /* TextView.swift */; }; @@ -118,8 +117,8 @@ 9F6281282037389200B2D3C9 /* CheckBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBox.swift; sourceTree = ""; }; 9F9B5EAE2255FEDA00728CDC /* TooltipController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipController.swift; sourceTree = ""; }; 9FC76CAC20DBDDA30050CE3B /* SegmentController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentController.swift; sourceTree = ""; }; - 9FF1DEB4225E285F009512C9 /* SPopoverRowView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SPopoverRowView.swift; path = "../../Telegram-Mac/SPopoverRowView.swift"; sourceTree = ""; }; A7C41DB82359E69400CF9402 /* CatalinaStyledSegmentController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CatalinaStyledSegmentController.swift; sourceTree = ""; }; + A7D28202236C3B5D0000A9BF /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A7D49477235F226C003E9A25 /* SpinningProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpinningProgressView.swift; sourceTree = ""; }; C20232B51D845B0B007C9ADE /* TextNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextNode.swift; sourceTree = ""; }; C20232B71D85525C007C9ADE /* ViewUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewUtils.swift; sourceTree = ""; }; @@ -229,9 +228,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A7D28203236C3B5D0000A9BF /* SwiftSignalKit.framework in Frameworks */, C21AAE3C1DB239ED007638C5 /* Foundation.framework in Frameworks */, C219E1DD1D8978960042F0C8 /* QuartzCore.framework in Frameworks */, - C219E1D51D87F4A00042F0C8 /* SwiftSignalKitMac.framework in Frameworks */, C25FC7F91D86E53A0041E303 /* CoreVideo.framework in Frameworks */, C22E06451D80967E00A11C88 /* CoreText.framework in Frameworks */, ); @@ -372,6 +371,7 @@ C22E06431D80967E00A11C88 /* Frameworks */ = { isa = PBXGroup; children = ( + A7D28202236C3B5D0000A9BF /* SwiftSignalKit.framework */, C21AAE3B1DB239ED007638C5 /* Foundation.framework */, C234CA941D97E163003023F7 /* TelegramCoreMac.framework */, C234CA921D97E151003023F7 /* PostboxMac.framework */, @@ -390,7 +390,6 @@ children = ( D04D214A230ED78300609388 /* SPopoverRowItem.swift */, D04D214B230ED78300609388 /* SPopoverViewController.swift */, - 9FF1DEB4225E285F009512C9 /* SPopoverRowView.swift */, C2B1A1241DA2F3DC00ACB1DD /* ContextMenu.swift */, C2303E791D9987FE00098E12 /* Popover.swift */, C2303E7B1D99880B00098E12 /* Modal.swift */, @@ -707,7 +706,6 @@ D04D214D230ED78300609388 /* SPopoverViewController.swift in Sources */, C22E06391D804DCD00A11C88 /* ScrollView.swift in Sources */, C219E1F11D8AFD140042F0C8 /* AnimationBlockDelegate.swift in Sources */, - 9FF1DEB7225E285F009512C9 /* SPopoverRowView.swift in Sources */, C253A9521D9147A400CDC850 /* Layer.swift in Sources */, C22E06371D804D3B00A11C88 /* TableRowItem.swift in Sources */, C2303E711D9956C400098E12 /* Style.swift in Sources */, @@ -732,332 +730,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 9FDD788421C8EBA300F1B4EF /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - 9FDD788521C8EBA300F1B4EF /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = TGUIKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TGUIKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - 9FDD788621C8EBAF00F1B4EF /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - 9FDD788721C8EBAF00F1B4EF /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TGUIKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TGUIKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_COMPILATION_MODE = singlefile; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - 9FDD788821C8EBBD00F1B4EF /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - 9FDD788921C8EBBD00F1B4EF /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TGUIKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TGUIKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - 9FDD788A21C8EBDA00F1B4EF /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - 9FDD788B21C8EBDA00F1B4EF /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 6N38VWS5BX; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TGUIKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TGUIKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = ""; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; C22069D21E8EB4D700E82730 /* ReleaseHockeyapp */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1480,13 +1152,9 @@ buildConfigurations = ( C2E0DEAD1D7EF51C00EF1C8D /* DebugHockeyapp */, D01E1ED822B260DD00AD6DAE /* HockeyappMacAlpha */, - 9FDD788421C8EBA300F1B4EF /* DebugFork */, C2E0DEAE1D7EF51C00EF1C8D /* DebugAppStore */, - 9FDD788621C8EBAF00F1B4EF /* DebugAppStoreLLC */, C22069D21E8EB4D700E82730 /* ReleaseHockeyapp */, - 9FDD788821C8EBBD00F1B4EF /* ReleaseHockeyappInternal */, C232EA391E1BCFDE00C4D38C /* ReleaseAppStore */, - 9FDD788A21C8EBDA00F1B4EF /* ReleaseAppStoreLLC */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = DebugAppStore; @@ -1496,13 +1164,9 @@ buildConfigurations = ( C2E0DEB01D7EF51C00EF1C8D /* DebugHockeyapp */, D01E1ED922B260DD00AD6DAE /* HockeyappMacAlpha */, - 9FDD788521C8EBA300F1B4EF /* DebugFork */, C2E0DEB11D7EF51C00EF1C8D /* DebugAppStore */, - 9FDD788721C8EBAF00F1B4EF /* DebugAppStoreLLC */, C22069D31E8EB4D700E82730 /* ReleaseHockeyapp */, - 9FDD788921C8EBBD00F1B4EF /* ReleaseHockeyappInternal */, C232EA3A1E1BCFDE00C4D38C /* ReleaseAppStore */, - 9FDD788B21C8EBDA00F1B4EF /* ReleaseAppStoreLLC */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = DebugAppStore; diff --git a/TGUIKit/TGUIKit.xcodeproj/xcshareddata/xcschemes/TGUIKit.xcscheme b/submodules/TGUIKit/TGUIKit.xcodeproj/xcshareddata/xcschemes/TGUIKit.xcscheme similarity index 100% rename from TGUIKit/TGUIKit.xcodeproj/xcshareddata/xcschemes/TGUIKit.xcscheme rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcshareddata/xcschemes/TGUIKit.xcscheme diff --git a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from TGUIKit/TGUIKit.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/keepcoder.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/TGUIKit.xcscheme b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/TGUIKit.xcscheme similarity index 100% rename from TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/TGUIKit.xcscheme rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/TGUIKit.xcscheme diff --git a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/mikhailfilimonov.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 92% rename from TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist index 7ecbe414e..89ffaf2f7 100644 --- a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/overtake.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ TGUIKit.xcscheme_^#shared#^_ orderHint - 11 + 16 diff --git a/TGUIKit/TGUIKit.xcodeproj/xcuserdata/peter.xcuserdatad/xcschemes/xcschememanagement.plist b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/peter.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from TGUIKit/TGUIKit.xcodeproj/xcuserdata/peter.xcuserdatad/xcschemes/xcschememanagement.plist rename to submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/peter.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/TGUIKit.xcscheme b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/TGUIKit.xcscheme new file mode 100644 index 000000000..8886764ab --- /dev/null +++ b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/TGUIKit.xcscheme @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..0db52b36c --- /dev/null +++ b/submodules/TGUIKit/TGUIKit.xcodeproj/xcuserdata/telegram.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,29 @@ + + + + + SchemeUserState + + TGUIKit.xcscheme + + isShown + + orderHint + 2 + + TGUIKit.xcscheme_^#shared#^_ + + orderHint + 28 + + + SuppressBuildableAutocreation + + C2E0DEA61D7EF51C00EF1C8D + + primary + + + + + diff --git a/TGUIKit/TGUIKit/AnimationBlockDelegate.swift b/submodules/TGUIKit/TGUIKit/AnimationBlockDelegate.swift similarity index 100% rename from TGUIKit/TGUIKit/AnimationBlockDelegate.swift rename to submodules/TGUIKit/TGUIKit/AnimationBlockDelegate.swift diff --git a/TGUIKit/TGUIKit/AnimationStyle.swift b/submodules/TGUIKit/TGUIKit/AnimationStyle.swift similarity index 100% rename from TGUIKit/TGUIKit/AnimationStyle.swift rename to submodules/TGUIKit/TGUIKit/AnimationStyle.swift diff --git a/TGUIKit/TGUIKit/BackNavigationBar.swift b/submodules/TGUIKit/TGUIKit/BackNavigationBar.swift similarity index 100% rename from TGUIKit/TGUIKit/BackNavigationBar.swift rename to submodules/TGUIKit/TGUIKit/BackNavigationBar.swift diff --git a/TGUIKit/TGUIKit/BadgeNode.swift b/submodules/TGUIKit/TGUIKit/BadgeNode.swift similarity index 100% rename from TGUIKit/TGUIKit/BadgeNode.swift rename to submodules/TGUIKit/TGUIKit/BadgeNode.swift diff --git a/TGUIKit/TGUIKit/BarView.swift b/submodules/TGUIKit/TGUIKit/BarView.swift similarity index 100% rename from TGUIKit/TGUIKit/BarView.swift rename to submodules/TGUIKit/TGUIKit/BarView.swift diff --git a/TGUIKit/TGUIKit/Button.swift b/submodules/TGUIKit/TGUIKit/Button.swift similarity index 100% rename from TGUIKit/TGUIKit/Button.swift rename to submodules/TGUIKit/TGUIKit/Button.swift diff --git a/TGUIKit/TGUIKit/CAAnimationUtils.swift b/submodules/TGUIKit/TGUIKit/CAAnimationUtils.swift similarity index 100% rename from TGUIKit/TGUIKit/CAAnimationUtils.swift rename to submodules/TGUIKit/TGUIKit/CAAnimationUtils.swift diff --git a/TGUIKit/TGUIKit/CatalinaStyledSegmentController.swift b/submodules/TGUIKit/TGUIKit/CatalinaStyledSegmentController.swift similarity index 100% rename from TGUIKit/TGUIKit/CatalinaStyledSegmentController.swift rename to submodules/TGUIKit/TGUIKit/CatalinaStyledSegmentController.swift diff --git a/TGUIKit/TGUIKit/CheckBox.swift b/submodules/TGUIKit/TGUIKit/CheckBox.swift similarity index 100% rename from TGUIKit/TGUIKit/CheckBox.swift rename to submodules/TGUIKit/TGUIKit/CheckBox.swift diff --git a/TGUIKit/TGUIKit/ContainableController.swift b/submodules/TGUIKit/TGUIKit/ContainableController.swift similarity index 100% rename from TGUIKit/TGUIKit/ContainableController.swift rename to submodules/TGUIKit/TGUIKit/ContainableController.swift diff --git a/TGUIKit/TGUIKit/ContextMenu.swift b/submodules/TGUIKit/TGUIKit/ContextMenu.swift similarity index 100% rename from TGUIKit/TGUIKit/ContextMenu.swift rename to submodules/TGUIKit/TGUIKit/ContextMenu.swift diff --git a/TGUIKit/TGUIKit/Control.swift b/submodules/TGUIKit/TGUIKit/Control.swift similarity index 99% rename from TGUIKit/TGUIKit/Control.swift rename to submodules/TGUIKit/TGUIKit/Control.swift index 4390efbb0..d3a205fd8 100644 --- a/TGUIKit/TGUIKit/Control.swift +++ b/submodules/TGUIKit/TGUIKit/Control.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public enum ControlState { case Normal diff --git a/TGUIKit/TGUIKit/DatePicker.swift b/submodules/TGUIKit/TGUIKit/DatePicker.swift similarity index 100% rename from TGUIKit/TGUIKit/DatePicker.swift rename to submodules/TGUIKit/TGUIKit/DatePicker.swift diff --git a/TGUIKit/TGUIKit/DisplayLinkAnimator.swift b/submodules/TGUIKit/TGUIKit/DisplayLinkAnimator.swift similarity index 87% rename from TGUIKit/TGUIKit/DisplayLinkAnimator.swift rename to submodules/TGUIKit/TGUIKit/DisplayLinkAnimator.swift index c708c3e30..8d4afe369 100644 --- a/TGUIKit/TGUIKit/DisplayLinkAnimator.swift +++ b/submodules/TGUIKit/TGUIKit/DisplayLinkAnimator.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private final class DisplayLinkTarget: NSObject { private let f: () -> Void @@ -22,7 +22,7 @@ private final class DisplayLinkTarget: NSObject { } public final class DisplayLinkAnimator { - private var displayLink: SwiftSignalKitMac.Timer! + private var displayLink: SwiftSignalKit.Timer! private let duration: Double private let fromValue: CGFloat private let toValue: CGFloat @@ -40,7 +40,7 @@ public final class DisplayLinkAnimator { self.startTime = CACurrentMediaTime() - self.displayLink = SwiftSignalKitMac.Timer.init(timeout: 0.016, repeat: true, completion: { [weak self] in + self.displayLink = SwiftSignalKit.Timer.init(timeout: 0.016, repeat: true, completion: { [weak self] in self?.tick() }, queue: .mainQueue()) @@ -73,7 +73,7 @@ public final class DisplayLinkAnimator { } public final class ConstantDisplayLinkAnimator { - private var displayLink: SwiftSignalKitMac.Timer? + private var displayLink: SwiftSignalKit.Timer? private let update: () -> Void private var completed = false @@ -83,7 +83,7 @@ public final class ConstantDisplayLinkAnimator { if self.isPaused { self.displayLink?.invalidate() } else { - self.displayLink = SwiftSignalKitMac.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in + self.displayLink = SwiftSignalKit.Timer(timeout: 0.016, repeat: true, completion: { [weak self] in self?.tick() }, queue: .mainQueue()) diff --git a/TGUIKit/TGUIKit/DisplayLinkDispatcher.swift b/submodules/TGUIKit/TGUIKit/DisplayLinkDispatcher.swift similarity index 100% rename from TGUIKit/TGUIKit/DisplayLinkDispatcher.swift rename to submodules/TGUIKit/TGUIKit/DisplayLinkDispatcher.swift diff --git a/TGUIKit/TGUIKit/DraggingView.swift b/submodules/TGUIKit/TGUIKit/DraggingView.swift similarity index 100% rename from TGUIKit/TGUIKit/DraggingView.swift rename to submodules/TGUIKit/TGUIKit/DraggingView.swift diff --git a/TGUIKit/TGUIKit/DrawingContext.swift b/submodules/TGUIKit/TGUIKit/DrawingContext.swift similarity index 100% rename from TGUIKit/TGUIKit/DrawingContext.swift rename to submodules/TGUIKit/TGUIKit/DrawingContext.swift diff --git a/TGUIKit/TGUIKit/EditableViewController.swift b/submodules/TGUIKit/TGUIKit/EditableViewController.swift similarity index 100% rename from TGUIKit/TGUIKit/EditableViewController.swift rename to submodules/TGUIKit/TGUIKit/EditableViewController.swift diff --git a/TGUIKit/TGUIKit/Extensions.swift b/submodules/TGUIKit/TGUIKit/Extensions.swift similarity index 100% rename from TGUIKit/TGUIKit/Extensions.swift rename to submodules/TGUIKit/TGUIKit/Extensions.swift diff --git a/TGUIKit/TGUIKit/GridItem.swift b/submodules/TGUIKit/TGUIKit/GridItem.swift similarity index 100% rename from TGUIKit/TGUIKit/GridItem.swift rename to submodules/TGUIKit/TGUIKit/GridItem.swift diff --git a/TGUIKit/TGUIKit/GridItemNode.swift b/submodules/TGUIKit/TGUIKit/GridItemNode.swift similarity index 100% rename from TGUIKit/TGUIKit/GridItemNode.swift rename to submodules/TGUIKit/TGUIKit/GridItemNode.swift diff --git a/TGUIKit/TGUIKit/GridNode.swift b/submodules/TGUIKit/TGUIKit/GridNode.swift similarity index 100% rename from TGUIKit/TGUIKit/GridNode.swift rename to submodules/TGUIKit/TGUIKit/GridNode.swift diff --git a/TGUIKit/TGUIKit/HorizontalRowView.swift b/submodules/TGUIKit/TGUIKit/HorizontalRowView.swift similarity index 100% rename from TGUIKit/TGUIKit/HorizontalRowView.swift rename to submodules/TGUIKit/TGUIKit/HorizontalRowView.swift diff --git a/TGUIKit/TGUIKit/HorizontalScrollView.swift b/submodules/TGUIKit/TGUIKit/HorizontalScrollView.swift similarity index 100% rename from TGUIKit/TGUIKit/HorizontalScrollView.swift rename to submodules/TGUIKit/TGUIKit/HorizontalScrollView.swift diff --git a/TGUIKit/TGUIKit/HorizontalTableView.swift b/submodules/TGUIKit/TGUIKit/HorizontalTableView.swift similarity index 100% rename from TGUIKit/TGUIKit/HorizontalTableView.swift rename to submodules/TGUIKit/TGUIKit/HorizontalTableView.swift diff --git a/TGUIKit/TGUIKit/Image.swift b/submodules/TGUIKit/TGUIKit/Image.swift similarity index 100% rename from TGUIKit/TGUIKit/Image.swift rename to submodules/TGUIKit/TGUIKit/Image.swift diff --git a/TGUIKit/TGUIKit/ImageBarView.swift b/submodules/TGUIKit/TGUIKit/ImageBarView.swift similarity index 100% rename from TGUIKit/TGUIKit/ImageBarView.swift rename to submodules/TGUIKit/TGUIKit/ImageBarView.swift diff --git a/TGUIKit/TGUIKit/ImageButton.swift b/submodules/TGUIKit/TGUIKit/ImageButton.swift similarity index 100% rename from TGUIKit/TGUIKit/ImageButton.swift rename to submodules/TGUIKit/TGUIKit/ImageButton.swift diff --git a/TGUIKit/TGUIKit/ImageView.swift b/submodules/TGUIKit/TGUIKit/ImageView.swift similarity index 100% rename from TGUIKit/TGUIKit/ImageView.swift rename to submodules/TGUIKit/TGUIKit/ImageView.swift diff --git a/submodules/TGUIKit/TGUIKit/Info.plist b/submodules/TGUIKit/TGUIKit/Info.plist new file mode 100644 index 000000000..ab41b55af --- /dev/null +++ b/submodules/TGUIKit/TGUIKit/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2016 Telegram. All rights reserved. + NSPrincipalClass + + + diff --git a/TGUIKit/TGUIKit/KeyboardUtils.swift b/submodules/TGUIKit/TGUIKit/KeyboardUtils.swift similarity index 100% rename from TGUIKit/TGUIKit/KeyboardUtils.swift rename to submodules/TGUIKit/TGUIKit/KeyboardUtils.swift diff --git a/TGUIKit/TGUIKit/Layer.swift b/submodules/TGUIKit/TGUIKit/Layer.swift similarity index 100% rename from TGUIKit/TGUIKit/Layer.swift rename to submodules/TGUIKit/TGUIKit/Layer.swift diff --git a/TGUIKit/TGUIKit/LinearProgressControl.swift b/submodules/TGUIKit/TGUIKit/LinearProgressControl.swift similarity index 100% rename from TGUIKit/TGUIKit/LinearProgressControl.swift rename to submodules/TGUIKit/TGUIKit/LinearProgressControl.swift diff --git a/TGUIKit/TGUIKit/MagnifyView.swift b/submodules/TGUIKit/TGUIKit/MagnifyView.swift similarity index 99% rename from TGUIKit/TGUIKit/MagnifyView.swift rename to submodules/TGUIKit/TGUIKit/MagnifyView.swift index 6ed6e091f..51c79f9ca 100644 --- a/TGUIKit/TGUIKit/MagnifyView.swift +++ b/submodules/TGUIKit/TGUIKit/MagnifyView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit open class MagnifyView : NSView { public private(set) var magnify:CGFloat = 1.0 { diff --git a/TGUIKit/TGUIKit/MajorNavigationController.swift b/submodules/TGUIKit/TGUIKit/MajorNavigationController.swift similarity index 99% rename from TGUIKit/TGUIKit/MajorNavigationController.swift rename to submodules/TGUIKit/TGUIKit/MajorNavigationController.swift index 07d29854c..e5943933d 100644 --- a/TGUIKit/TGUIKit/MajorNavigationController.swift +++ b/submodules/TGUIKit/TGUIKit/MajorNavigationController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit diff --git a/TGUIKit/TGUIKit/Modal.swift b/submodules/TGUIKit/TGUIKit/Modal.swift similarity index 99% rename from TGUIKit/TGUIKit/Modal.swift rename to submodules/TGUIKit/TGUIKit/Modal.swift index da0156584..309ade360 100644 --- a/TGUIKit/TGUIKit/Modal.swift +++ b/submodules/TGUIKit/TGUIKit/Modal.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private class ModalBackground : Control { diff --git a/TGUIKit/TGUIKit/ModalTouchBar.swift b/submodules/TGUIKit/TGUIKit/ModalTouchBar.swift similarity index 100% rename from TGUIKit/TGUIKit/ModalTouchBar.swift rename to submodules/TGUIKit/TGUIKit/ModalTouchBar.swift diff --git a/TGUIKit/TGUIKit/NavigationBarView.swift b/submodules/TGUIKit/TGUIKit/NavigationBarView.swift similarity index 100% rename from TGUIKit/TGUIKit/NavigationBarView.swift rename to submodules/TGUIKit/TGUIKit/NavigationBarView.swift diff --git a/TGUIKit/TGUIKit/NavigationModalAction.swift b/submodules/TGUIKit/TGUIKit/NavigationModalAction.swift similarity index 100% rename from TGUIKit/TGUIKit/NavigationModalAction.swift rename to submodules/TGUIKit/TGUIKit/NavigationModalAction.swift diff --git a/TGUIKit/TGUIKit/NavigationModalView.swift b/submodules/TGUIKit/TGUIKit/NavigationModalView.swift similarity index 100% rename from TGUIKit/TGUIKit/NavigationModalView.swift rename to submodules/TGUIKit/TGUIKit/NavigationModalView.swift diff --git a/TGUIKit/TGUIKit/NavigationViewController.swift b/submodules/TGUIKit/TGUIKit/NavigationViewController.swift similarity index 99% rename from TGUIKit/TGUIKit/NavigationViewController.swift rename to submodules/TGUIKit/TGUIKit/NavigationViewController.swift index 862e4701b..ab063b601 100644 --- a/TGUIKit/TGUIKit/NavigationViewController.swift +++ b/submodules/TGUIKit/TGUIKit/NavigationViewController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public enum ViewControllerStyle { case push; case pop; diff --git a/TGUIKit/TGUIKit/Node.swift b/submodules/TGUIKit/TGUIKit/Node.swift similarity index 98% rename from TGUIKit/TGUIKit/Node.swift rename to submodules/TGUIKit/TGUIKit/Node.swift index 102b1b822..ad16f3ede 100644 --- a/TGUIKit/TGUIKit/Node.swift +++ b/submodules/TGUIKit/TGUIKit/Node.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit open class Node: NSObject, ViewDisplayDelegate { diff --git a/TGUIKit/TGUIKit/OverlayControl.swift b/submodules/TGUIKit/TGUIKit/OverlayControl.swift similarity index 100% rename from TGUIKit/TGUIKit/OverlayControl.swift rename to submodules/TGUIKit/TGUIKit/OverlayControl.swift diff --git a/TGUIKit/TGUIKit/Popover.swift b/submodules/TGUIKit/TGUIKit/Popover.swift similarity index 99% rename from TGUIKit/TGUIKit/Popover.swift rename to submodules/TGUIKit/TGUIKit/Popover.swift index 5e772793d..3a33cc908 100644 --- a/TGUIKit/TGUIKit/Popover.swift +++ b/submodules/TGUIKit/TGUIKit/Popover.swift @@ -6,7 +6,7 @@ // Copyright © 2016 Telegram. All rights reserved. // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit class PopoverBackground: Control { fileprivate weak var popover:Popover? diff --git a/TGUIKit/TGUIKit/PresentationResourceCache.swift b/submodules/TGUIKit/TGUIKit/PresentationResourceCache.swift similarity index 98% rename from TGUIKit/TGUIKit/PresentationResourceCache.swift rename to submodules/TGUIKit/TGUIKit/PresentationResourceCache.swift index 474f0800b..03ae9c3fd 100644 --- a/TGUIKit/TGUIKit/PresentationResourceCache.swift +++ b/submodules/TGUIKit/TGUIKit/PresentationResourceCache.swift @@ -1,5 +1,5 @@ import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private final class PresentationsResourceCacheHolder { var images: [Int32: CGImage] = [:] diff --git a/TGUIKit/TGUIKit/PresentationTheme.swift b/submodules/TGUIKit/TGUIKit/PresentationTheme.swift similarity index 99% rename from TGUIKit/TGUIKit/PresentationTheme.swift rename to submodules/TGUIKit/TGUIKit/PresentationTheme.swift index 233081cfa..edcc0d569 100644 --- a/TGUIKit/TGUIKit/PresentationTheme.swift +++ b/submodules/TGUIKit/TGUIKit/PresentationTheme.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit // diff --git a/TGUIKit/TGUIKit/ProgressIndicator.swift b/submodules/TGUIKit/TGUIKit/ProgressIndicator.swift similarity index 100% rename from TGUIKit/TGUIKit/ProgressIndicator.swift rename to submodules/TGUIKit/TGUIKit/ProgressIndicator.swift diff --git a/TGUIKit/TGUIKit/ProgressModal.swift b/submodules/TGUIKit/TGUIKit/ProgressModal.swift similarity index 99% rename from TGUIKit/TGUIKit/ProgressModal.swift rename to submodules/TGUIKit/TGUIKit/ProgressModal.swift index 4d52f6f9c..4fee70277 100644 --- a/TGUIKit/TGUIKit/ProgressModal.swift +++ b/submodules/TGUIKit/TGUIKit/ProgressModal.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private final class ProgressModalView : NSVisualEffectView { diff --git a/TGUIKit/TGUIKit/RadialProgressContainerView.swift b/submodules/TGUIKit/TGUIKit/RadialProgressContainerView.swift similarity index 100% rename from TGUIKit/TGUIKit/RadialProgressContainerView.swift rename to submodules/TGUIKit/TGUIKit/RadialProgressContainerView.swift diff --git a/TGUIKit/TGUIKit/RadialProgressView.swift b/submodules/TGUIKit/TGUIKit/RadialProgressView.swift similarity index 99% rename from TGUIKit/TGUIKit/RadialProgressView.swift rename to submodules/TGUIKit/TGUIKit/RadialProgressView.swift index 757ff7acd..d8c2ad895 100644 --- a/TGUIKit/TGUIKit/RadialProgressView.swift +++ b/submodules/TGUIKit/TGUIKit/RadialProgressView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private func progressInteractiveThumb(backgroundColor: NSColor, foregroundColor: NSColor) -> CGImage { @@ -139,7 +139,7 @@ public func ==(lhs:RadialProgressState, rhs:RadialProgressState) -> Bool { private class RadialProgressOverlayLayer: CALayer { var theme: RadialProgressTheme let twist: Bool - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? private var _progress: Float = 0 private var progress: Float = 0 var parameters:RadialProgressParameters { @@ -168,7 +168,7 @@ private class RadialProgressOverlayLayer: CALayer { let clockwise = theme.clockwise if (clockwise && difference > 0) || (!clockwise && difference != 0) { - timer = SwiftSignalKitMac.Timer(timeout: TimeInterval(1 / fps), repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: TimeInterval(1 / fps), repeat: true, completion: { [weak self] in if let strongSelf = self { strongSelf._progress += tick strongSelf.setNeedsDisplay() diff --git a/TGUIKit/TGUIKit/SImageLayer.swift b/submodules/TGUIKit/TGUIKit/SImageLayer.swift similarity index 98% rename from TGUIKit/TGUIKit/SImageLayer.swift rename to submodules/TGUIKit/TGUIKit/SImageLayer.swift index 9d642b966..35f2ab731 100644 --- a/TGUIKit/TGUIKit/SImageLayer.swift +++ b/submodules/TGUIKit/TGUIKit/SImageLayer.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit open class SImageLayer: CALayer { private let disposable = MetaDisposable() diff --git a/TGUIKit/TGUIKit/SPopoverRowItem.swift b/submodules/TGUIKit/TGUIKit/SPopoverRowItem.swift similarity index 99% rename from TGUIKit/TGUIKit/SPopoverRowItem.swift rename to submodules/TGUIKit/TGUIKit/SPopoverRowItem.swift index 3374222b8..122230823 100644 --- a/TGUIKit/TGUIKit/SPopoverRowItem.swift +++ b/submodules/TGUIKit/TGUIKit/SPopoverRowItem.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit class SPopoverRowItem: TableRowItem { private let _height: CGFloat diff --git a/TGUIKit/TGUIKit/SPopoverViewController.swift b/submodules/TGUIKit/TGUIKit/SPopoverViewController.swift similarity index 99% rename from TGUIKit/TGUIKit/SPopoverViewController.swift rename to submodules/TGUIKit/TGUIKit/SPopoverViewController.swift index a7b100752..68fef5b0a 100644 --- a/TGUIKit/TGUIKit/SPopoverViewController.swift +++ b/submodules/TGUIKit/TGUIKit/SPopoverViewController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public struct SPopoverItem : Equatable { diff --git a/TGUIKit/TGUIKit/ScrollView.swift b/submodules/TGUIKit/TGUIKit/ScrollView.swift similarity index 100% rename from TGUIKit/TGUIKit/ScrollView.swift rename to submodules/TGUIKit/TGUIKit/ScrollView.swift diff --git a/TGUIKit/TGUIKit/SearchView.swift b/submodules/TGUIKit/TGUIKit/SearchView.swift similarity index 99% rename from TGUIKit/TGUIKit/SearchView.swift rename to submodules/TGUIKit/TGUIKit/SearchView.swift index ad42a6d7f..bbf96f507 100644 --- a/TGUIKit/TGUIKit/SearchView.swift +++ b/submodules/TGUIKit/TGUIKit/SearchView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public class SearchTextField: NSTextView { diff --git a/TGUIKit/TGUIKit/SectionViewController.swift b/submodules/TGUIKit/TGUIKit/SectionViewController.swift similarity index 99% rename from TGUIKit/TGUIKit/SectionViewController.swift rename to submodules/TGUIKit/TGUIKit/SectionViewController.swift index 88322b5e8..b7d666b26 100644 --- a/TGUIKit/TGUIKit/SectionViewController.swift +++ b/submodules/TGUIKit/TGUIKit/SectionViewController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private final class SectionControllerArguments { let select:(Int)->Void diff --git a/TGUIKit/TGUIKit/SegmentController.swift b/submodules/TGUIKit/TGUIKit/SegmentController.swift similarity index 100% rename from TGUIKit/TGUIKit/SegmentController.swift rename to submodules/TGUIKit/TGUIKit/SegmentController.swift diff --git a/TGUIKit/TGUIKit/SelectingControl.swift b/submodules/TGUIKit/TGUIKit/SelectingControl.swift similarity index 100% rename from TGUIKit/TGUIKit/SelectingControl.swift rename to submodules/TGUIKit/TGUIKit/SelectingControl.swift diff --git a/TGUIKit/TGUIKit/SelectionRectView.swift b/submodules/TGUIKit/TGUIKit/SelectionRectView.swift similarity index 99% rename from TGUIKit/TGUIKit/SelectionRectView.swift rename to submodules/TGUIKit/TGUIKit/SelectionRectView.swift index f8d340ec5..0478be999 100644 --- a/TGUIKit/TGUIKit/SelectionRectView.swift +++ b/submodules/TGUIKit/TGUIKit/SelectionRectView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public enum SelectionRectDimensions { diff --git a/TGUIKit/TGUIKit/ShadowView.swift b/submodules/TGUIKit/TGUIKit/ShadowView.swift similarity index 100% rename from TGUIKit/TGUIKit/ShadowView.swift rename to submodules/TGUIKit/TGUIKit/ShadowView.swift diff --git a/TGUIKit/TGUIKit/SliderView.swift b/submodules/TGUIKit/TGUIKit/SliderView.swift similarity index 100% rename from TGUIKit/TGUIKit/SliderView.swift rename to submodules/TGUIKit/TGUIKit/SliderView.swift diff --git a/TGUIKit/TGUIKit/SpinningProgressView.swift b/submodules/TGUIKit/TGUIKit/SpinningProgressView.swift similarity index 95% rename from TGUIKit/TGUIKit/SpinningProgressView.swift rename to submodules/TGUIKit/TGUIKit/SpinningProgressView.swift index c9ece698a..c1d5437a2 100644 --- a/TGUIKit/TGUIKit/SpinningProgressView.swift +++ b/submodules/TGUIKit/TGUIKit/SpinningProgressView.swift @@ -4,7 +4,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private let alphaWhenStopped: CGFloat = 0.15 private let fadeMultiplier: CGFloat = 0.85 @@ -22,7 +22,7 @@ public class SpinningProgressView: View { private var currentPosition: Int private var finColors: [NSColor] = Array(repeating: presentation.colors.text, count: numberOfFins) private var isAnimating:Bool - private var animationTimer: SwiftSignalKitMac.Timer? = nil + private var animationTimer: SwiftSignalKit.Timer? = nil private var isFadingOut: Bool private var fadeOutStartTime: Date = Date() @@ -83,7 +83,7 @@ public class SpinningProgressView: View { currentPosition = 0 - animationTimer = SwiftSignalKitMac.Timer(timeout: 0.05, repeat: true, completion: { [weak self] in + animationTimer = SwiftSignalKit.Timer(timeout: 0.05, repeat: true, completion: { [weak self] in self?.updateTimer() }, queue: .mainQueue()) diff --git a/TGUIKit/TGUIKit/Style.swift b/submodules/TGUIKit/TGUIKit/Style.swift similarity index 100% rename from TGUIKit/TGUIKit/Style.swift rename to submodules/TGUIKit/TGUIKit/Style.swift diff --git a/TGUIKit/TGUIKit/SwitchView.swift b/submodules/TGUIKit/TGUIKit/SwitchView.swift similarity index 99% rename from TGUIKit/TGUIKit/SwitchView.swift rename to submodules/TGUIKit/TGUIKit/SwitchView.swift index ded701d22..a4ad19e7d 100644 --- a/TGUIKit/TGUIKit/SwitchView.swift +++ b/submodules/TGUIKit/TGUIKit/SwitchView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public struct SwitchViewAppearance { let backgroundColor: NSColor diff --git a/TGUIKit/TGUIKit/System.swift b/submodules/TGUIKit/TGUIKit/System.swift similarity index 99% rename from TGUIKit/TGUIKit/System.swift rename to submodules/TGUIKit/TGUIKit/System.swift index 14942f677..8020d19e7 100644 --- a/TGUIKit/TGUIKit/System.swift +++ b/submodules/TGUIKit/TGUIKit/System.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public struct System { diff --git a/TGUIKit/TGUIKit/TGClipView.swift b/submodules/TGUIKit/TGUIKit/TGClipView.swift similarity index 99% rename from TGUIKit/TGUIKit/TGClipView.swift rename to submodules/TGUIKit/TGUIKit/TGClipView.swift index 70128003f..4e283b5c6 100644 --- a/TGUIKit/TGUIKit/TGClipView.swift +++ b/submodules/TGUIKit/TGUIKit/TGClipView.swift @@ -8,7 +8,7 @@ import Cocoa import CoreVideo -import SwiftSignalKitMac +import SwiftSignalKit public class TGClipView: NSClipView,CALayerDelegate { var border:BorderType? diff --git a/TGUIKit/TGUIKit/TGColor.swift b/submodules/TGUIKit/TGUIKit/TGColor.swift similarity index 100% rename from TGUIKit/TGUIKit/TGColor.swift rename to submodules/TGUIKit/TGUIKit/TGColor.swift diff --git a/TGUIKit/TGUIKit/TGFont.swift b/submodules/TGUIKit/TGUIKit/TGFont.swift similarity index 100% rename from TGUIKit/TGUIKit/TGFont.swift rename to submodules/TGUIKit/TGUIKit/TGFont.swift diff --git a/TGUIKit/TGUIKit/TGSplitView.swift b/submodules/TGUIKit/TGUIKit/TGSplitView.swift similarity index 99% rename from TGUIKit/TGUIKit/TGSplitView.swift rename to submodules/TGUIKit/TGUIKit/TGSplitView.swift index 3c99bfc30..61070f16b 100644 --- a/TGUIKit/TGUIKit/TGSplitView.swift +++ b/submodules/TGUIKit/TGUIKit/TGSplitView.swift @@ -7,7 +7,7 @@ // import Foundation -import SwiftSignalKitMac +import SwiftSignalKit fileprivate class SplitMinimisizeView : Control { private var startPoint:NSPoint = NSZeroPoint diff --git a/TGUIKit/TGUIKit/TGUIKit.h b/submodules/TGUIKit/TGUIKit/TGUIKit.h similarity index 100% rename from TGUIKit/TGUIKit/TGUIKit.h rename to submodules/TGUIKit/TGUIKit/TGUIKit.h diff --git a/TGUIKit/TGUIKit/TabBarController.swift b/submodules/TGUIKit/TGUIKit/TabBarController.swift similarity index 100% rename from TGUIKit/TGUIKit/TabBarController.swift rename to submodules/TGUIKit/TGUIKit/TabBarController.swift diff --git a/TGUIKit/TGUIKit/TabBarView.swift b/submodules/TGUIKit/TGUIKit/TabBarView.swift similarity index 100% rename from TGUIKit/TGUIKit/TabBarView.swift rename to submodules/TGUIKit/TGUIKit/TabBarView.swift diff --git a/TGUIKit/TGUIKit/TabItem.swift b/submodules/TGUIKit/TGUIKit/TabItem.swift similarity index 100% rename from TGUIKit/TGUIKit/TabItem.swift rename to submodules/TGUIKit/TGUIKit/TabItem.swift diff --git a/TGUIKit/TGUIKit/TableAnimationInterface.swift b/submodules/TGUIKit/TGUIKit/TableAnimationInterface.swift similarity index 100% rename from TGUIKit/TGUIKit/TableAnimationInterface.swift rename to submodules/TGUIKit/TGUIKit/TableAnimationInterface.swift diff --git a/TGUIKit/TGUIKit/TableRowItem.swift b/submodules/TGUIKit/TGUIKit/TableRowItem.swift similarity index 99% rename from TGUIKit/TGUIKit/TableRowItem.swift rename to submodules/TGUIKit/TGUIKit/TableRowItem.swift index 93aab4a33..41352477f 100644 --- a/TGUIKit/TGUIKit/TableRowItem.swift +++ b/submodules/TGUIKit/TGUIKit/TableRowItem.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit open class TableRowItem: NSObject { public weak var table:TableView? { diff --git a/TGUIKit/TGUIKit/TableRowView.swift b/submodules/TGUIKit/TGUIKit/TableRowView.swift similarity index 99% rename from TGUIKit/TGUIKit/TableRowView.swift rename to submodules/TGUIKit/TGUIKit/TableRowView.swift index 98bac564c..6f3ac9486 100644 --- a/TGUIKit/TGUIKit/TableRowView.swift +++ b/submodules/TGUIKit/TGUIKit/TableRowView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation import Foundation diff --git a/TGUIKit/TGUIKit/TableStickItem.swift b/submodules/TGUIKit/TGUIKit/TableStickItem.swift similarity index 100% rename from TGUIKit/TGUIKit/TableStickItem.swift rename to submodules/TGUIKit/TGUIKit/TableStickItem.swift diff --git a/TGUIKit/TGUIKit/TableStickView.swift b/submodules/TGUIKit/TGUIKit/TableStickView.swift similarity index 100% rename from TGUIKit/TGUIKit/TableStickView.swift rename to submodules/TGUIKit/TGUIKit/TableStickView.swift diff --git a/TGUIKit/TGUIKit/TableView.swift b/submodules/TGUIKit/TGUIKit/TableView.swift similarity index 99% rename from TGUIKit/TGUIKit/TableView.swift rename to submodules/TGUIKit/TGUIKit/TableView.swift index 268b7ccb0..27e6f8caa 100644 --- a/TGUIKit/TGUIKit/TableView.swift +++ b/submodules/TGUIKit/TGUIKit/TableView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit import AVFoundation public enum TableSeparator { @@ -2722,7 +2722,7 @@ open class TableView: ScrollView, NSTableViewDelegate,NSTableViewDataSource,Sele } } } - rowRect.origin.y = round(min(max(rowRect.minY, 0) + relativeInset, documentSize.height - height) + inset.top) + rowRect.origin.y = round(min(max(rowRect.minY + relativeInset, 0), documentSize.height - height) + inset.top) if clipView.bounds.minY != rowRect.minY { var applied = false diff --git a/TGUIKit/TGUIKit/TableViewController.swift b/submodules/TGUIKit/TGUIKit/TableViewController.swift similarity index 86% rename from TGUIKit/TGUIKit/TableViewController.swift rename to submodules/TGUIKit/TGUIKit/TableViewController.swift index bfe9d79b5..9e04c1cb4 100644 --- a/TGUIKit/TGUIKit/TableViewController.swift +++ b/submodules/TGUIKit/TGUIKit/TableViewController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit diff --git a/TGUIKit/TGUIKit/TextButtonBarView.swift b/submodules/TGUIKit/TGUIKit/TextButtonBarView.swift similarity index 100% rename from TGUIKit/TGUIKit/TextButtonBarView.swift rename to submodules/TGUIKit/TGUIKit/TextButtonBarView.swift diff --git a/TGUIKit/TGUIKit/TextNode.swift b/submodules/TGUIKit/TGUIKit/TextNode.swift similarity index 100% rename from TGUIKit/TGUIKit/TextNode.swift rename to submodules/TGUIKit/TGUIKit/TextNode.swift diff --git a/TGUIKit/TGUIKit/TextView.swift b/submodules/TGUIKit/TGUIKit/TextView.swift similarity index 99% rename from TGUIKit/TGUIKit/TextView.swift rename to submodules/TGUIKit/TGUIKit/TextView.swift index f2412759f..c154886b4 100644 --- a/TGUIKit/TGUIKit/TextView.swift +++ b/submodules/TGUIKit/TGUIKit/TextView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public enum LinkType { diff --git a/TGUIKit/TGUIKit/TextViewLabel.swift b/submodules/TGUIKit/TGUIKit/TextViewLabel.swift similarity index 100% rename from TGUIKit/TGUIKit/TextViewLabel.swift rename to submodules/TGUIKit/TGUIKit/TextViewLabel.swift diff --git a/TGUIKit/TGUIKit/TimableProgressView.swift b/submodules/TGUIKit/TGUIKit/TimableProgressView.swift similarity index 95% rename from TGUIKit/TGUIKit/TimableProgressView.swift rename to submodules/TGUIKit/TGUIKit/TimableProgressView.swift index 5e356058c..91fbdd504 100644 --- a/TGUIKit/TGUIKit/TimableProgressView.swift +++ b/submodules/TGUIKit/TGUIKit/TimableProgressView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public final class TimableProgressTheme { let backgroundColor: NSColor @@ -48,7 +48,7 @@ public class TimableProgressView: View { } private var _progress: Double = 100 - private var timer: SwiftSignalKitMac.Timer? + private var timer: SwiftSignalKit.Timer? public func startAnimation() { timer?.invalidate() @@ -56,7 +56,7 @@ public class TimableProgressView: View { let fps: TimeInterval = 60 let difference = Double(progress) - _progress let tick: Double = Double(difference / (fps * duration)) - timer = SwiftSignalKitMac.Timer(timeout: 1 / fps, repeat: true, completion: { [weak self] in + timer = SwiftSignalKit.Timer(timeout: 1 / fps, repeat: true, completion: { [weak self] in if let strongSelf = self { strongSelf._progress += tick strongSelf.needsDisplay = true diff --git a/TGUIKit/TGUIKit/TitleButton.swift b/submodules/TGUIKit/TGUIKit/TitleButton.swift similarity index 100% rename from TGUIKit/TGUIKit/TitleButton.swift rename to submodules/TGUIKit/TGUIKit/TitleButton.swift diff --git a/TGUIKit/TGUIKit/TitledBarView.swift b/submodules/TGUIKit/TGUIKit/TitledBarView.swift similarity index 100% rename from TGUIKit/TGUIKit/TitledBarView.swift rename to submodules/TGUIKit/TGUIKit/TitledBarView.swift diff --git a/TGUIKit/TGUIKit/TokenizedView.swift b/submodules/TGUIKit/TGUIKit/TokenizedView.swift similarity index 99% rename from TGUIKit/TGUIKit/TokenizedView.swift rename to submodules/TGUIKit/TGUIKit/TokenizedView.swift index 78733eecb..47a746c62 100644 --- a/TGUIKit/TGUIKit/TokenizedView.swift +++ b/submodules/TGUIKit/TGUIKit/TokenizedView.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public struct SearchToken : Equatable { diff --git a/TGUIKit/TGUIKit/TooltipController.swift b/submodules/TGUIKit/TGUIKit/TooltipController.swift similarity index 99% rename from TGUIKit/TGUIKit/TooltipController.swift rename to submodules/TGUIKit/TGUIKit/TooltipController.swift index 94ca3920f..82fddabda 100644 --- a/TGUIKit/TGUIKit/TooltipController.swift +++ b/submodules/TGUIKit/TGUIKit/TooltipController.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit private final class TooltipCornerView : View { diff --git a/TGUIKit/TGUIKit/TransactionHandler.swift b/submodules/TGUIKit/TGUIKit/TransactionHandler.swift similarity index 100% rename from TGUIKit/TGUIKit/TransactionHandler.swift rename to submodules/TGUIKit/TGUIKit/TransactionHandler.swift diff --git a/TGUIKit/TGUIKit/TransformImageArguments.swift b/submodules/TGUIKit/TGUIKit/TransformImageArguments.swift similarity index 100% rename from TGUIKit/TGUIKit/TransformImageArguments.swift rename to submodules/TGUIKit/TGUIKit/TransformImageArguments.swift diff --git a/TGUIKit/TGUIKit/UIUtils.swift b/submodules/TGUIKit/TGUIKit/UIUtils.swift similarity index 100% rename from TGUIKit/TGUIKit/UIUtils.swift rename to submodules/TGUIKit/TGUIKit/UIUtils.swift diff --git a/TGUIKit/TGUIKit/View.swift b/submodules/TGUIKit/TGUIKit/View.swift similarity index 99% rename from TGUIKit/TGUIKit/View.swift rename to submodules/TGUIKit/TGUIKit/View.swift index a0a2743bb..b54be657a 100644 --- a/TGUIKit/TGUIKit/View.swift +++ b/submodules/TGUIKit/TGUIKit/View.swift @@ -7,7 +7,7 @@ // import Foundation -import SwiftSignalKitMac +import SwiftSignalKit public let kUIKitAnimationBackground = "UIKitAnimationBackground" public protocol AppearanceViewProtocol { diff --git a/TGUIKit/TGUIKit/ViewController.swift b/submodules/TGUIKit/TGUIKit/ViewController.swift similarity index 99% rename from TGUIKit/TGUIKit/ViewController.swift rename to submodules/TGUIKit/TGUIKit/ViewController.swift index 6e4e234e8..10dc4c42d 100644 --- a/TGUIKit/TGUIKit/ViewController.swift +++ b/submodules/TGUIKit/TGUIKit/ViewController.swift @@ -7,7 +7,7 @@ // import Foundation -import SwiftSignalKitMac +import SwiftSignalKit diff --git a/TGUIKit/TGUIKit/ViewUtils.swift b/submodules/TGUIKit/TGUIKit/ViewUtils.swift similarity index 100% rename from TGUIKit/TGUIKit/ViewUtils.swift rename to submodules/TGUIKit/TGUIKit/ViewUtils.swift diff --git a/TGUIKit/TGUIKit/WeakReference.swift b/submodules/TGUIKit/TGUIKit/WeakReference.swift similarity index 100% rename from TGUIKit/TGUIKit/WeakReference.swift rename to submodules/TGUIKit/TGUIKit/WeakReference.swift diff --git a/TGUIKit/TGUIKit/Window.swift b/submodules/TGUIKit/TGUIKit/Window.swift similarity index 100% rename from TGUIKit/TGUIKit/Window.swift rename to submodules/TGUIKit/TGUIKit/Window.swift diff --git a/TGUIKit/TGUIKit/WindowSaver.swift b/submodules/TGUIKit/TGUIKit/WindowSaver.swift similarity index 98% rename from TGUIKit/TGUIKit/WindowSaver.swift rename to submodules/TGUIKit/TGUIKit/WindowSaver.swift index b482c022a..cdc70f1a7 100644 --- a/TGUIKit/TGUIKit/WindowSaver.swift +++ b/submodules/TGUIKit/TGUIKit/WindowSaver.swift @@ -7,7 +7,7 @@ // import Cocoa -import SwiftSignalKitMac +import SwiftSignalKit public class WindowSaver : NSObject, NSCoding { var rect:NSRect let requiredName:String diff --git a/submodules/telegram-ios b/submodules/telegram-ios index 3222a9187..6df7b487a 160000 --- a/submodules/telegram-ios +++ b/submodules/telegram-ios @@ -1 +1 @@ -Subproject commit 3222a91878e0a8da74d8b9edc5be66cc53fba3da +Subproject commit 6df7b487ab724343a0dc149434b2f5d5fe766757 diff --git a/swiftgen.sh b/swiftgen.sh deleted file mode 100644 index 2513f7007..000000000 --- a/swiftgen.sh +++ /dev/null @@ -1 +0,0 @@ -swiftgen strings -p strings.stencil --output ./Telegram-Mac/Localizable.swift ./Telegram-Mac/en.lproj/Localizable.strings diff --git a/thrid-party/DFRPrivate/DFRPrivateHeader.h b/thrid-party/DFRPrivate/DFRPrivateHeader.h deleted file mode 100644 index 6af8f268d..000000000 --- a/thrid-party/DFRPrivate/DFRPrivateHeader.h +++ /dev/null @@ -1,49 +0,0 @@ - - -//#import -//#ifndef APP_STORE -//extern void DFRElementSetControlStripPresenceForIdentifier(NSString *, BOOL); -//extern void DFRSystemModalShowsCloseBoxWhenFrontMost(BOOL); -//#endif -// -//@interface NSTouchBarItem () -// -//+ (void)addSystemTrayItem:(NSTouchBarItem *)item; -// -//@end -// -//@interface NSTouchBarItem (DFRAccess) -// -//- (void)addToControlStrip; -// -//- (void)toggleControlStripPresence:(BOOL)present; -// -//@end -// -//@interface NSTouchBar () -// -//+ (void)presentSystemModalFunctionBar:(NSTouchBar *)touchBar -// systemTrayItemIdentifier:(NSString *)identifier; -// -//+ (void)dismissSystemModalFunctionBar:(NSTouchBar *)touchBar; -// -//+ (void)minimizeSystemModalFunctionBar:(NSTouchBar *)touchBar; -// -//@end -// -//@interface NSTouchBar (DFRAccess) -// -//- (void)presentAsSystemModalForItem:(NSTouchBarItem *)item; -// -//- (void)dismissSystemModal; -// -//- (void)minimizeSystemModal; -// -//@end -// -//@interface NSControlStripTouchBarItem: NSCustomTouchBarItem -// -//@property (nonatomic) BOOL isPresentInControlStrip; -// -//@end -// diff --git a/thrid-party/DFRPrivate/DFRPrivateHeader.m b/thrid-party/DFRPrivate/DFRPrivateHeader.m deleted file mode 100644 index 865e2330f..000000000 --- a/thrid-party/DFRPrivate/DFRPrivateHeader.m +++ /dev/null @@ -1,56 +0,0 @@ - -#import -#import "DFRPrivateHeader.h" - -//@implementation NSTouchBarItem (DFRAccess) -// -//- (void)addToControlStrip { -// [NSTouchBarItem addSystemTrayItem:self]; -// -// [self toggleControlStripPresence:true]; -//} -// -//- (void)toggleControlStripPresence:(BOOL)present { -//#ifndef APP_STORE -// DFRElementSetControlStripPresenceForIdentifier(self.identifier, -// present); -//#endif -//} -// -//@end -// -//@implementation NSTouchBar (DFRAccess) -// -//- (void)presentAsSystemModalForItem:(NSTouchBarItem *)item { -// [NSTouchBar presentSystemModalFunctionBar:self -// systemTrayItemIdentifier:item.identifier]; -//} -// -//- (void)dismissSystemModal { -// [NSTouchBar dismissSystemModalFunctionBar:self]; -//} -// -//- (void)minimizeSystemModal { -// [NSTouchBar minimizeSystemModalFunctionBar:self]; -//} -// -//@end -// -//@implementation NSControlStripTouchBarItem -// -//- (void)setIsPresentInControlStrip:(BOOL)present { -// _isPresentInControlStrip = present; -// -// if (present) { -// [super addToControlStrip]; -// } else { -// [super toggleControlStripPresence:false]; -// } -//} -// -//-(void)dealloc { -// int bp = 0; -// bp += 1; -//} -// -//@end diff --git a/thrid-party/openssl/lib/libcrypto.a b/thrid-party/openssl/lib/libcrypto.a new file mode 100644 index 0000000000000000000000000000000000000000..7343d9795f59f7fcbee0aa63cfb96f77f7f58a06 GIT binary patch literal 3930864 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 z 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

yJa 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 z z?#Ref#pg?d4c_w#Bqg_Xv5m&18sl{eNcn@W!&`9Ej-$HSgGgoQxD8gAKwGjBkPS`N z%;PvFjT0Byf~@a4R56p-^Vj51qMP$mT35mvqo8Jk8E@TA(3KZVx;Q)9#+J)ZB2XPU`GX$5SKBVlCEZR>D<4^j?tKy24&>iTe3mG@=Zwqp)?^G z=YUE$z^9RXgB|a%4zQLEN@cJTFeDw~lyf1JWyVD`a3&a;3yDEhFXuJn!H&n?$1F^S z8A!x~4+CT74t|Z^yN{;4=n)^e>=NnyF&IcZ3_I8b2CoOb^dw3Ld6R*YS2U-4G4-AYeo|JjLrxuRN6`bxyY>Cgha3{8VXr6j+{GoSfnAh5f?fA)J`$vmIu zoaa2}Irnp(bGrkZ$UCkuJWtN&X@;c7Agen6UAX!V&QO0oD{v#1xbh6g3WfI1(4OWu zC57F;i9sXHl~Ax2@_(>(BfI~mS?~F?;kfHYzWq0(kK=!g-uFj&#Mu4zlUDV=t6xU$ z2Bbadzk~k=_amEOD4&>v(BBI|Blt@JBJqaY42Y;jCIWJQ`WUs}1})^Vz<&>jzsRo@ z|CQny#Tym>Iw1L+26!&6!a51C9Qbj7m`p^D2E^zkQUr*8FmeFQp}LN|14ubuRs4Cy zzX>=5?w0^!<{vp7ko(*FDEwfM*}wlLApRm*{6IAy`32xHfGYvZ0B-~w3OG{jj|aqB zT;vlt4g}l<7zX?Yz!L#)24p3&nQvj9&3 zB%f*!F}#xiQG_G?05OJ*d<-E8|1Tir{Rw{P-Ux^+h|~jO?JME{GMsY(PX#;y@N~eS z!p{asZV&q_AnmsSo(6aaApRn=@WXh01rSk>oCL^pECpnEBsvf9=O{Onhxg7Au2xvD zaIV7Z6ix(0(Tsc<5Py+M{9yhO;k``c_c}5i`}`x%05X67Q}JIZUITar+(!Xc0-g<6 z0aymea`+JvkN%zq#F}d4hkzph(}3rqe0?1-g1<^YhWAGZgQ5}HqVPV2KLbROi>y`n zJ%!5v$)X03>3kv}k~Gp6km>RnBEx*(%OP}s01!zP`5_?F^L9X{=QV&#Pd;c%f4m2Z zd_P1YQqFe(5v9l;K$icP0a^a%1F{^|0HUZwMgo!#?~5bs2S|RrH;&;v1IY5d36OIB z2oOaw(g4WveYM(O2*~nwA|T7n=Ln4D@&Q1~{X;;?$NRqsxxa((3P8$pEFk@DM`uNU zy!VapYk=nfUZ#-ecg_O-E;5P!zYEB4{|=CHUjc|HL@riXrSMdR$13DG0MdOBG>~07 z@xK5fE9CqRk~H!g;4Ei6D@8fD@1Nzw-t%?^@Jit00V@D606Y`$M8Goux1pLaKYj#= zAZ33e?UTSscLN~(R|CRJzpz38!LNelK*ZUuFMb8~-gRg8^~CR^2be|#LfrNnmjMUr znsT^e3&EvPjhu`D#|B=sqiw{4|N6&i%z4CIv=f(Z^LVeXo&&5D5{V#msecgwj z?Za7Kz5WmQ@U)Nqmp=CmK6!Zl&C73r4=?ulKhKB%z=yB);ph4Iq0Pz*Pxi?2swQ(r zfDn6QlS{eZX~CT7b7wBCtHXAn>2q-6g7@Xr$nK!n!lbd{mI;i-<}ATm44w;|eB_rW z7tWk7cHo_uc-7>*OR(GvvB*DBljk-&d5bq(5svgr>t-(Daf+*^>t#%Ua+B3n)91^R zkK*PA#ob0ErdOOFFdkM9sbr+=XSfeF&i(pnzvNK!HcHzcpvc zB6CGik6mhVagpD4)VVTTW%xHF7mm6CCok}6_9f54VF>JoXG=0{*n~>s3vEhjg zT%ZLjlK@B~3nY}GjMGHoiux~%h zUWNiyzs#h6jc>f8Q;}$Vqu$Kesf*_v`}?FyFDrveMSP6hP1`$RYi+Rm`sGA=Q5cI2 z^~Wez?%=4Ki>qvOu?LugutYuWIc5?|PsGDq%Z73hFh!+`Ay3s}BZX02tXlCD*0d5S zh?ZIu=DA5|iR#-rLtGK%Q+l0!*~`p_)MLXjqlCFatVIKJ=%zc6tp4_N3X!2!j#)_h_dnr~Sw05gE4ABfInNA>%S` zX3R_^%p(+a^ZEGMOQvi=9qf2(X1Tdze6_Jmjh{h>DHfabyY2(s-KRU%sVl1zxRI^i zHg;^K?}bm?zc#gVG1Qu0pn)-JO|~MNqxgw7vw{k%j?YP(8MCVp)g^RGy(fg5Id_Ea zKd!H~bv$NSurEoCm;NSUrGN!DSJqcUfED?y&w#&Z^CbLsE`#gzLar0&`ZcWodZUSz zCuh}G=Mh#8yT*VdxsYUdHMWY{-_ek;dnW?M!-B^Y=d-?C0=^!H_ zZew34JE6L}weD!_>gumIph+yiXdw2b77R3VZGO}t&I}`td%ItOEhgU%TN<-H1!eAU zDBzn{L4K~}@PXl6xs)wVkZxl2$QCHfe~Je>S#)u-G>n%$%Y;?N>7V^%c(!9$rlzES zwyVg=tY}a5cQUn~IjIRHc*>PE`SAeOzYO{40N0`do1yp7gkSYo*z(=xgPUVlt81Q(tL?>9`ps zlw+%p#Uh^icA449#Kw{KCI?Yvht^iV-UU9=7ad97{=kiMkC|jCt41m~4Ryb4 zO~EU+#_r?iPF+@IK2Kj(mD*=MORXIkPPLwIFEO>kx5&gn%q$d8kCC}o{t!-F)jsee z)Zjw*eeu2wnmGOoxxcUOoCCoqW)S}J&L^4;_%C!H*e`Wd039+-5C6YccWI6bxF3h6 zj%J_%J^Y{Ai~D)%J|6xH#m}C*)pPY4&@Tu>nX~cga|36iCtVz)HkbjH1 zGya9%F&l#61xnxLG~VRQcn!V>C>`sO7`x8tdEaV29B$M5 z$5@}l6rkh8{O3xi`HBHm{`+T??;-rJRyx)%F_zAAZ`~VkDDFa|4Wsp}AV1Ds_bWfG zZw2W_gYIye%X-buR)^nXjn1>_MK{0-szC|rkKp^)!h5x+^{4GO;o$o0)hfTsao z3Wz!s*^atKxE2sWM%DmU0p0=#k|9$7%YmPy_~*!f+W!p@O0LKYfY3ojIMO~9kRx^a z|2ZJ(exUew6z5F$Jh)#8csAfAfMGzSjjXG39#4NIfKZV{C=`O0djknu;7GV$VS~aM z3ab@{6$TWx!;|<|xL#p{!Wjyy6^0cC6t+VieD-TmxL#p{!Wjyy6^0c8h`-+ga{bo! zYwe2LewO!D(%p_*-oQ6;I}YReG;!N+PF38F1ER{$j!OosyB%k6J)8dRxCftt+i?K< zQ@Y!61BE7T$07fu^4W3O8H(F+>TNeYzpKI3naQ3NQ_dogYe}_-6d!r9$ zpXYU-=yUhq-}ei|$4h^k53lv%tj}J0-dF0ycLVX_tao1g3?F`;kNyiE9`@ny_`-Y6 zhcEZ>f6s?E`{=D68ZYID##j{5W|fy#dL#Ap8b@wrlk2I?346Y+lTR#|E-6lSuBnaI zOrO69tDNQYw}d{ovgdn^S02TULm50xmSo}$y#;dbm97? z2i2SGjLy90J$hUsu9|+csK{mUHy3}bLmD~p+)#4qJfxN;#NwN8)T;*Q*TsZWKBjc_ zi*W-19_o>+_wXdm99-dM7I;Nq_t_rdfSWFoy1ZN97Cvv{9%>;MvKnWGko)r7d?Hzi z5OKH3+?n+FpvHjDFc(&>#U_QpVax1Z)ZInP->9jnwc-Ru9D6|SAl8`nZTlC^86 zsh_h@BE}$R$(sYcZ}FJiK=vVv++6cU4Q%u5iKFj7!uuUYUo`T9uo!a>7!$<108;24 zuoBd{Kp6ip>}LUr{^KfSGg ztj9zx4BGWj(l$U6j>{*hUkfNF|9weeoev4AV52tn+DTC!S>wtFhn$bhfUnI%@w1oS zsiM3Ps?wU&a;zJS`7Aj)s#z0uQbi!CzYuP}quZ(Uqgqj@`|l-37O00C@S_VI z7*!hPqUJYxKheHX2RcUNQbqHnSOwuYb~6Ty2-0Y;H**GvFo3&CW>JaDIsxOsEl4IF zOk_76HzFRq^V_P`97@HG_`DKzJpbwrj~{C9aN|4q?T3WJE(>g4psRM zV_k8_<~vMs9VX>FSaob_*;IA#>0_l)orOfpnSaLT%pi~bdV(fb$ zK7HDQY56NiM}6+F!{EocZMUZ1q4+%ux;;vFDEX-4Xgv&mQB36HTDEX)>TYebwaqqa*GariIW1x#32EVsKclu$(cQ6KyM;!*gaiDu!^`eK8 zkGjWa4nxm+7w9$}2EPYDch6z)dkJ*69R@$@Q0E*5zjHu0p%;GCOHtps3lPaYWE&vH z$dN6I{~ti=Q-7@ZGC8sTJE!4l0f$s(+|0e)Rze(W+wdcT( zeCH_sO?AIo@yh_oSN9DLISn}V!^f$6HPQ}2_6sZIWP*4*0wruwxL#p{!Wjyy6^0cC z6t=^&_*b}IVS~aM3ab@{6$TWxLq2@=Yf-pfVS~aM3ab@{6#|IAG4M?No*ftQ;w9p? zedl=#;&xopt@L)B#B`^-?RTG3ciRsxRd+is;?S4$wx8uX6mi>c{aMwnuNy3j-xu&za7_YReC#4;BE9KG)T^B;G> zqu1T2NjSh3C7FG>gE|+nq{gI&rP1J75^8je+AhzR&&sEQbD67Ju7DQK70TVxn#aGV zErY=8=sg`6iGmLF!P|HlcRrJm7l7A6RZh6_(p3nGc=?!RSAdbnid4{z@(6Q&fITcp z>E3{xPg}s6)UI06W)7p?!xEHw^Kl;2s_6^yFuO;n0?I^92%nG^~H-- z_vhL}9FIN9;*sjxF1TRq=&%^0Z(Fo<>HOaGZBtQ40%82aP}jx2=wPM``X(CN{#e}V z+pKQqaP@6G7whG>82Y1ywCJ(lShS=<%b)4fYoe2*E*jXNeCDZD7;>Tu3bdnxqHKNx zecK`LXDy=w3#QV5K$FH>QFc#xrZ@dvwekyV+BU0vLouPyF?$}%-t>1f2AJU2D!*MA zfHS_#;W#zzS#gM^`YF5|y9Uke5WgWw8ZTIboH{`v5bXQn8PB7b zotC)g3hyhM-IUOFSU(0U{@xtF~p{5Tn<@-2U3JNi7pnRY0cd5 zS9qgry8hXV9>49xLIic#N&7_+c7CSnpT&hM8*(CZg%;OJc-b!Q-poBKxMfpypA7yX z(z$qj+rt>Wx)ugWuh=MjE!HZS+-4R_PcE;(B_plaSB)!h-AK&^*I4>X=EgH|{=(}# zL7aITT6)?>gpLQOn<>7R=5(RqE?c3iM-b-DS4!Ovj`7rj_1Kh(yF(VV7$TgCTrh=4C{Rv+jut4 z`gG1f;p#kk^CED<7q{?cjybBt>RlJZI@}j!8x8n-Huf|e;j;1~k8B&j4 zvL5o(4PJSmop8X)0~{HJ8lRN>xZNbcC4%y#mln1JaPJF0SzJ2!!5a)SQ<{;Q*aIv~V(Aq|5NxFeS)-8I(oPF@i74G0d7e#t zz%s?N-LP!77LEVmxA>V_{MbY6zc`7T;t zPu9(q%()nhI=+db8_V227P9iV-3+g=vDC|<)oVeEpeDuBUkfLM=(?ea^aLE~+g(?V z1{_D}aGtQf1s+@BA(nb!Qg?k@^qOe*Gsx?3XE~zL;_$BODXnqdS_l%{(7BUTCRJ8F zR)$p_+?hDBjQ2R9`lr!|+5>-Z!kv|JC8bFt$wA(A+<7KqwgHWpCuZ!yqRq?z;cbc? zB+#IcqGE5WA7vAZj+wZRi8ZTXVpXsi-rY{@_OU|XvGZ0o2i=c7fN(=hF3|i20BYLg z+SCrYX8T!g{!Rzof{o=VH1I2IDPvo+!t6XpRIfpl{)|YNDBT1(^p47H_>_9aeOw+_ zQ_r$+6){KdmXnN*=XNHD!`|}Oh?J9>W@;O|Dy2sSYK22>b7(cyX}<#}poumqitFhq zo!G$3>KdP@A1Hprr9s%?(s3J;RP6)q_o|jYEWD}O$84=;!R3pTux?J*KbGV36-BDanx^ZuB?OI$OXmYS~fI0{Va{V0g+U!KqZkDdgOJw^p zQ;VY?)m8=TPKjk!pvX@_k+07y^0*Qi{NRFXs8*l>!TAZZ%EzGo$vROkb5Aj{>~>J4 z>mM*tn$-mlxGgxHFma5fYbW8fPDLVJi?F7k<|KG>C$xHvh&`YjZ4^RUZw3qy8+XCK z*WK2UfisE%H^q4}n|({P`APhC3`D(^OGMj1_KSQnQwi9s8lh19or_m&V4~ES`{-?g zF*}5&;}3F~D+R&1h3D9)q_ReweVWvDKZvChsG%b2r{25OzJ;Mi!j=Px-8|T!MMu}x zmg~~=7GfmXES!>g7_GP`^9ysPyl8g7x2PvG zw^@D`It^hw@{HPZy8=xQckHzkb1?Ta)t&d;6go$cWT}C{^o*tl|6A3a`$P-*e^mDy zsNT1S|39farXdCS?@{-bgYZ{>2YvUwLGKB(>Ey1?4s~Ed}6qSPEL{PB5grpeixAP%>$%-S17y`kl~C{I6~oWlz)_o$YwyM<8Ku55@O=(0U7Uq z1SH>OfaE&|umbpGK&IOmK75UP{NaKPb!MS$e<4%#*D z+vbJ2l=CS-+W%JVf1&n20z3=$QvezNI3VLcUg5h!2Jn@>`91I|4#lqmvcHG_o|%+crzf=?;6ENDm)30a(#$O!}8ss@MVR6 zQur_+(`_B#sepGY{0`vRz+uNmc$n5x-hoXstQtS~9yk^dSv@ceh^!lkvdSbL$aV!$ z8;D{`IY1(O29g>6`n4OpUyH)^3L6y8P*|-ntPnu_k0o>bTYVh2{t(}Y`b%>>ar~cY z(7-c*#BKY|^#bCyzrm;Awtrczxb07-gMjq5|M(HY;(CGY@4|}PcAt9->23|zU_EG{ z1&9}C`g?JvpBKN@hyU8=e~FL(oj$zWNB>hF-sR&z(ue=iM^9}J{#^49KKh${?nnD@ z&icImm-zh8^x@z3(VyqTQK$0w{hJS`?%5k&+UNg4AN>KJJNNs0{lDv@=X#shoi{vt z@p2#iV?O+KA3oRT-`vfVdsoq38zM_UxI)BT3bKzEl0a_l;=_lzC6wt47r~k@3%WOt z9O4cyUBVfqw|bG4Sxy3TTxx=i-dwS9Ibl^nz8BUn&`sc=ljV?tTfFln3vg+O%OrJ+ zumS{+^>Wb{KIBERI$ndeblFVf=H9469`@x)dh*=tMd26J&lg_&#)VkZZ>~?y!bM(- zFe=7^gu~lI)W?gA9v&XZr zDdfFvRsS7!Ubf|V_nJr zu3rASQi<}hjm8>uoai?L4mxKHA$yqK)|E;a8JL6tfi*rR8hv$Td}kf<{<5jcFRYDP zJNQw)H97h6SoXHAw44J27`v{-!8`d`19YDKCOp`>QYGBjS8`p7EGY!XAnm|0ZV$A; zkxEtYbJv-e6#QpYSR8b0gRjFkRMMGSATndRkav%S;dk?C_}NP)P(Rd-bbd#X+KHx0 zxCr8u;2*b1jIVH3wcv({@zvYLJCs<|dYygvY6EXM$?e<5|)CckOq6#id zt-5_|pl*Z>SM(^NapDajbK3Y=f!>;rd*5M!r2{v{-{7qsv+AKqn^Fud4Ro?~WBWKt;WZePp3F^={{}mZTG0-;@w> zLj{tn!lPqkrtmhFRk!0(luOL*IIeJ4314b*^mPd*y_A}3o4n`pz7copJk(jIqAf65 zuUjF|=9};nZSKIY`0%8$tBIWy$4>OrQ}U<~6h;%EJD&&@;ymQqt-QFUE@Y&c)ry?H z=!Ni=Zz!9z1w5o?cdgS0#~&q3=Bl((WCrz8Da?gR_1o(^nQLW)0Zr1hXP_ z_p5f1Z&g=yX!VcaA!kt+TAj+XxUB9w*7Xt|{i|ExqU(u%(?x$qbfSxLCAO~GMR`0K z6;GEJFNqO7%|&?$a~ctsNBk}H8?4F-b5Qr{ff@f&=s{Gtf)tNX^vFZwW^s~f~F zi0}Ff`2> z3-Wg&NP`swi!jfD=!!x_tl^z6goX#Mq(T?*yhi^w`JmtaYjBrpCue4O2M*W5dEDd^ zmJ4^Cw{9$~y7H}fe#A?a%1SJ8>kg_g+Cfv^p$e9Cl)WiZcDb zYJAFMGhCY`&&1oUQD!Q@@vLiea{;>rv%P8fO(2Et*`Ynn<@hgj?&Fu@>dwoNllkUh zMV|*Oq(8n}eJq80A^x1#({R38$p5$0ebGVO`Scmh+X$x+{{cDxrQW8{xf(lGIoLff z^Ys1^n@+A?)pL(Z4S4@V>6ngUtX|i%KYuNAT&R%eDybiJ07-v| z;$sv)OYzeb=e@L~yC0C@@O}>BUk4lloP8PLR}`KBNV)-lq{3DBQ%p6|e+BwE$vjGjJ*(#>fL5KqR^7HIZ}!D}aNK=rs`~(Q6`T(QCr# ze@vgb3xSQsr17g{iU6$PCvjV!f2Q~^m0$qe=x*D!zpA@!$DUH$wp&Oup||bSaP@E7 zrQ6lrwnI#B>ZtAf)US8E6!ai*4F@M)e47v7;={3qkw?$@s@MN+AAYJ2=fK5F&wc4$ zocr3n__;p(_dfq~e7Ijv81?!8$VWfR=l-8Q_rUbU*j_A(Cv)4si+Xo=d%s2OK|r7nrm>OgnQGz z%ZmD}h1`t|DpAF`TxTw&Leay_prV?}cd%Qj+57wN2vTuNsXc`n5uO zu0!s3wtUc+h5b3XPAKg?+iUWw$(!LKUCE7<8$qp!d6s#=|`)ui^xnfY%ZQf3~Mgx}39HqmBg zx_GAo#B)EWs3cT~4{*7^2?BwSLf{hW9X)azvtzHgf03jAM0x;L7n5WwcDb> ztjZTR-E5n?{<%QJzKb}Rh_SiXh>gfa%rpD6>C5nWAA}n%+}~`XaUa*qIWAlch_zW+FXuRNBJdKxF@R_whExLf1%8UbBgX+EJ0qVUEL7dd zdw{3_5ss(GHw!ob@IFBDrGATiZviCV>jBAk5+M230>VTt#1Hvm>@R%T4wCN-Km^&Z zT47irfY?_8ay{9m`$EO(PQx~c?lynFu6R2j4bv9RuKAr0$Cy0N{U<*BN+163KAgP0 z{73unzxUyf`fyKIZc>8VR{u73oq1R zfsP9}vhofL3XKay2N*_RFdP?*^=5?F=6+iBbC=RsoQ*sGZC`h|kqD95VnZYoT#4-Bnf%_3(kIFi}>Rq23Ck>Dz;CZ}nkgFXfz)fhmuL<&|&K zKjrr6p#8TKJt>tV$6PRW)Yz&E57z#VGSftz7h){Mc zD)HIF^tLagLHVszpItsC8hw{!e-~pVo`rGGf7BDf49A>(2QmJzajG2#Q?wk%; zmbkLah5#z@ukqRWWw=hxcQpz6A9Ur})(i4oO+0>U(7B`hyVkpP`P8+?~sMq3HZIOLuOsiP69~?j4tpK71ZH+7f}oRE&9Fr~A>)p>9S$ zv7t}s`&lPbjN*8GQGaLF0R*}Lp=~}I`KyBP9ml$Xc$lc}9LT~Ysm@FBaXCIrzI_|v zY+fLd;KGlQZj23NL!bImkk`^5o_9LN!H2AeINP?e8)spD)1DNI7kpDkwO8_1PFvk% z+y)?-{-?SStL@Tg!&lA=HU0tuK>GX9pl#mii8-qf&iq9Y^gqMRi2PlO92JqD!LMXs zeZK2>aeV^65+Th%ReT|!%NfvaINKdh8qh8TbXGnq6VP86(0^KLv?n#G12%h{;I3K} z<_a8ObF#079WImwm^w~yyOaGi9Bmjk_`Lc7wVB(yo$l7oB5noCwuhZZNQb}zPH>x( z?G8gOt^sYPLPW%7-knLws97{RzSyj7j~5rA>V2muXiqM73};xGV{V4$9x1dR%sM`X zO2-yBYyf$?BK3@90(|v-gPub*T{u&1PK+YZ^KoLa)s}(A-M2ZJE4we+6^geyvtB@~ z(SF(k{F(8==;Otw1Uk<&5~olg$8aU+5k`#X7q^Q;GeYU^?9sJ-0LS4eLeRUbcuw?g|O?AVP1?n3S_GbdsGivL3UGWh-k&0X+c zDEx`&Nod%46w-^ns_xZrFBE=n^NC%$Kf^gX5M%Y91@xtLAjs-| z2d0}COYhmga1R`+bf1GvSV-ujWB8BZf1uuX$aEBA=?d((_y7ctDm~LRkG_DsJcBa) zGuE;0Zl-e{eQZ_Ve<=Q5Q8_H*pi3!TwV~=E?;wn9j)&f~AK;0A`;kA;eMO!C#E>tt z84y`MWFsJSqmiEho&>lW5IUe+Y`)z$)MXGF@@oj&g07?zY{mrGMbIo&1L4wq4{dforU=RU&c&Y_K${#QP{%;*19A3oYg zAN0AiTzL7P?{i1p%5#6vhd<}TQC9QlFY)0F%NyRqKHTiOSd7=F7tC2Oi?HTetTUK% zRI}&LS+ZnN&#fDnTpN4t*q8@*(_^z&=OHTWD#0cYYrA01k{feau2-i!dv{BB|hX3yu*DiIz-3*Z=SaEFGGgzgw+1g3ku z;jEa6TcUQdGqJ`V&BB7g^rf;0Gk5x|c{sA=@v^vnDNby8EN+=Oza9%Sv**v6zlaC4 zm{b~HS+gmyvBRWH{lfW+X5vVb!OXYD&|alyoN%mc_Vl^+3uj@`3EO3OluVM^+^dJY zJ5qht`6KN@5BGm8BDY@k)JLMvvgdWIKFi{4&-jnFOU&WwvqmYs<=2J+Esq8>Lh^ajQ-1nRbW5KT6kc(?^TZg?m83&<3HtO z7=#^y_4hQZg{NQX$|Iy+N27l4w>ka;<#j6azcP-vx_TP$8?+#4*u#_<21#mfx+Pb?lb^xXF=rpn;5 z*Mt_;2H$4gCmH{3E^gd+ySNE&kHy;!{YMsGZ17SRGMWbC|4SC1VcdB*N=%z^Ki9<# z|M3=YF!VJRUt{R6wYajeV76R$5D3gr_l1ftQ~YMd?^Jw=;`W`lIg0N4_$^!{jAURnGrX{V{(PU$@I1s0qA#1d zG+e(F(LuJkUaV9M(2Nf8G8tkybJk7apbEyUlCQ2aLJsT>v4U-oY`Sy z^bJT#5h52AlhB1CV-sa2GUir^_R{*rix*)~j8;dDj&roDx3;-6!UsEd)2ezHJ5F-- zE6Ub)Dupi&yA{?r)L}3>?b=vP$xJzNHLXM~C zzCqzyg-r^VE1airszOI$g~Fi=~j;VN9Kkn>R5FIUKUKk=yw z9fe~RRwx{*utZ^(NuPckmeBt$g{=xX-54DD-;e@SfUVs z`PPs7t2hs@rUgtT{)so>pXST>_s)~4H-JCa@Y{=<`2?#xx7jBb-nf)4FmLCOwyti8 z%sT3@tIgtQB$k50<56Ac+1Rq6>-@xS#y-;d$(S)!vR~coPhT`0y5RrO`AG{lPtveF z(ljg1;WGcVJ3j3F>6bF2U@X5XD1VstsALTU*7P=?uzc+P^xv{#dW?$e+DxB*!%~bX zT;snl+{R1A6FQVr*W{H2*!DI*nW~K1)ngmvBfpJMs36KTc_Q{UKN+j>v*mXq^1&;g zPBRQ={Ps3KsW{f0y=;Y&@E*umXnsPaSQ-9(N$ZAjs1MFhJa-sig?7~?)F%h(^`v`B zN)Fa{1|g*$almUc+uFTk%B8ArVAaMTsqrPW!1}WBk}7IuqTVsS%(_?8eYuk^a?%d& z%X}iV`d`T<^-A~7MqJkWBZCNaN190Hm>;9?n&mBwRP6%bFnkJC=R7>!x4aO^=^(*f z-9ojw97yLVkR}R|p6wxZ*Ty$TU<=9Ya$9aS*j-YaWR}#iq#auQvQQt81+RUf?1ZxJ z*1Dq*r|Ke)L51c`Vx?rmN1HtMB`ece!OX`%WLtVlZ1s_%M%q6@b zZu8ecZ8tK&e(YxI9X%G+Cc@Lml){_M^m1A7)$ngp5@Ybd=DGNZHc!E?ETwY%?Qy+H zTqojJ7-Bsi3;Din{9McLo1QS3OLNn(V%uGJ?C+T2h(E6UZ9(?_v_)>-KsG*$B4OAs z0fjEpGZ0}<|2A21@Pez9sROkm-vH10Q=+M-g$T)Ju5m?y!#k0KqYp7KXVtf>0(GZy zA=C{5bBMrZOmq;xyYSobXZǩ})DNoK2HZ~R|u$|TA!%H*B2wq^1@BAH_b=QF<% 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

xOk`koND-~JbgGjb+Spl} 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

B5#(`6pCcc~Ng0H`zX;g<&?*Qu-*YXAJ8 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%0AuTG0U#Jr4ujZyniFcm%_Ry18XbHO7$1H#meC- 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

ZBB$?zB?$Ic)anE1oSoth&`;+ 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 %4u{FJSmR?tE4QewD*In-H9wCgD|Z{EhVGbq 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�nWDqXthtuj1;Y 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

F!T05LQP)dFG& z6Phpd8Gz)o1P=p}uN07crwjcAK=KV0JQEOqp?APc_!J=08G00u>H8}n!~aR}p93=d zt%BbOh^h;%61-MmIUwt^43PD6y3h*+9uLU+8z%nQfN-@35E(36SmK7l0`0&~1Q}cMBl-6M$?FO98(ExCoH;rImn;XBJ=(_*6jFOGMxVp`Ri6 zNP))#vOEHS%zvif9|K|j-vOlmD*|QzNoWgj%6~}UIzYzz2f=?OaIMg95uE3eGhB<% zuMvEOz~w?;Ab6#~*+QQt_!NOBs z&MyGsui!EKupa&h$a46Zz*_-PwV^eDY}elv`U*gZ4lNOU6d>E*ae{Y4O+-0efQUD= zTkzKaDd$apB_PAk5PY=2(*T+7lK@fGp?sm| z0FwW62xa=704xCBEch&e(*%weI2w@cGX%(TI{^@`HbcXL_mC*c+avIGfiDUCr$CN3 ziy)_6@cRY+0g&&_or3>V@TB1175qv-L^-TZ=)5-$=}FE2%t!cX8ZVd($n=!~BFiD_ zs!=tyrve6n2LUPPIDtnCJzH?Uz>kqB^6v#C|89Y=34OcZPYQfg=xu_p7x-U7r>!65 z+$r#*HK!$$>km-C>;JpHWDsYWJ+Ru~ke1Vq0 zu)wngo&t!d3W9)`vxLy+($&sIV9>M51O^3CDCs-!L)a#8t-wZsa|MBlRGvp#Y#EssgLHvy#<4=Mcy~#4+H+mYb!!i8n$P?Wq_$O}M9`QGNAHGkDA0J0L z&MS!@2A%ky5ypvkxbTNv;hQ1f$uI4XQ7gyu(wzQ_T=*m4a{B+?h2Q4F z?{?udu5*UR^^PtbYRW=-rgcGiID(rJt1g4?7&l6S6MGnx`k2r2uyHuP4CiY?olLy0 zrgqsCHQ2dI z^ZpNe?;amjb?%K%NFaj*_Mo8Df{bmnP>E&|zyzgcU(&>|u-zwdWl=9WnUZQtK} z{&?4CWpV!* znuQ3wuco|m>3oqgtZ@YAE|xO^dea6TV&0RYI_g(*y#WzIV-LR~MKyBPCE*kIk|+voyA>_eGb%SUyAKr&d< znO3^6l+7e5UQJM>5zCsau$Y|~W%$KO=NdD%sGunS`eIjlyH=xPr*D>BG`FH=>7u*^ zAVk=;{6V%1eG(sP73o@tfi~CQ3fsr1H@Um=FIyo8P#+K-lsTW^(G^FY8CnV*rOs?lwb%?7qSo{jvORkYUz0+s*n<9Mwm$iVSPUxN$Qf_Z0~p@?m3m_`Zzx zLB9H(f)32qfL2=|3=7{##kG6gP`kSTYBJM0;cgh3V@8{i3u9SdGhChFFaD?++qmH! z2(*UF85zYQiccItENg@PG%TAHx%Aba8(8y0WUJL}II?n$fn460xRy1wK220glc>vY zqb>v1^L}fa&-#-znq(G#Y^-4~=&S$CVXXd)CB!MPzOc6gRoKYoI`QhodTEq6>@irq zFdx+6v)&Lp;=QP7)?!n1W~(dW3*~J0xpH=yQB>*aUcuw2)D9f|8o{Hv4%P}1L)D@x z8&Qr;zLBWqnH&8XCwv(@1=Ux?L9w9~E$!9JSM_}=KcLsfd?A0HJ~9*G73-CCCM55U zzATc*Qr1D+%)%Kv*5h?!30%%LotMMR3tmt>3laY{OIoptyCqg%zo}*X8tCHz>1UM(_3RhC$g4IhiskV_9#1@sa8_ z=6~5Us0U-&U=+{2Zh%DLf@$n@34VyTXU3PUZ^H{vj_b+N&GRvwj_YvJ#k1e0OWjX5 z3Skue*Q+fvnoevUD`lRD_QR-4Fa-;X4t9EMZ74A^Q$~FLXN0cJlW_i7B#^ zkAFjwga7XD$mqhjo%{0gCI7VV$OtI?=yboY{eSOwJMj!v;I(o$LiaP`nEP;)7NAtiTJI_BTVa-{5j|XTRp~R1IPWkfz3Tc zSk1OyY_RedZ(X*~U3Vt4`pZ}*hSh6DIImOQjaOErz@9(6gQf1G`v`Fgx1pN#gepXI`(6mf@zL=Ed>eADf{$ zt*|>bqOM;F4(P_RzUldLg)TedXsa2W=w!#a>Rj}k&9>|^WY6x-&&q9LJwCzrcl6(I zL9o+(YEZ6woj*6DcE+iF=*3zaZXU>wX!Fsc{F^V9clr4@Un1{D5QU~3;+_t80b1E{Mf-1(l|Ug{a%Z|rTNTOPk!x14xas8=nLm$p%e9mZ;!g7?sY?N${$*6hL>fS#b?~c_jc4?l(DNm zir)X@>chT_k9{LgwfFJ5PI+A)$Xc47FTa;jY)3)8G=aX&yXJ%7W9VszB=oeY-^qpI zqsWug!57!l+)9YNg1sxD$*65_i>D#@s{7Q=lHd?CT!Zv+Hu}sKn4f{@;I}?uTJHLH zvpo%k_-Od*KQ_E5%on(8?i^M*7MguqcV-ph9kkg^^!;2QdCsVQ2liqj#^&jU*>~&C ziAILtKeHI;tQdV-5P|*HPzApEhhZ%+;*P$;;)iKB@Gv}0)UmD0$voH0k6Zm|JB%DfTh{EZ zZ6~!tNKls7CMXtqH{#wdg@7GkWRWHWvJT2V#v{v+10=M`pINa1vO$A+jdwkS5PYBO zATB_R*TPKX=DA1y;!VQLl>;@S0CFEGc*u4ptU zLd7QLT09TYa77bn6~dU| zn23|@XZ0}#PIRpEzS@w6nv3ftsc>!Fr5p`V0?RlXU5mvS09?2G)1Y5k?9b5DPTR?jD+9b10vcum* z*64!iR)FbVm4aI*wpq3sIjHNzGTz4aEDiv`G-O)vPfP7YaKR?Q1;@~G1y^WB0wV-B zDn{7UFla!&=7krR9Thxv4CsCg2Rzs(8)FQ$4Jo`rQU&V~P4Pwc`SV3lfKvI3q7OO| z>w_RRFBpNf-r$TtB-a0oh;s&do+Xf6|KzvkP#*P%<}?MYV=QV?fAo>B{-Zdz>;|{= z6a7&?)gLvB{^*lfe>4UCQFE+6@)v(%tfd(jU-%aEM@P}bccVX=g8pbq=l*D)@yIaX zLY($Be~1@=rij5@ZKXdv1=2H&aD9mLOEGqe_^bl~9LpDd$sY=!XThGlwhrtrG}inA ztQfG+xo`Dl>~QTCY=rgP+%@nDcS>ZOXc#2BnafRUA2MY3_dS8c?AZH(&Xohl;EUV~ zI5*x+?8ckDDB+cM@RedrB6~Dsk@9>(A3+axFseR+Ib1hr0J{ix14faulX!7iy9d_C zV!R+XUnX@Dk?71#={t$;hHPMlt%4a~+V*d8W&k6gs|bLTC+BNsK;vx+eoirj-`a|T za4hRb{{&ubiuD)&1P(YUUW&uP1ztW3D(Y@mZfe;hzOUpEDAl_1hEvDCGIAPbEIbQds72ritc1wt)xgH!ATkDlS}WuzoNP_l~nCqSoBIJGk0!$ z@+oyy$kK%vYyrht^rKc zyXdw+`pj!mM&UmnmpYDy@bY57+D<_Q(u+6b!Z_IYUNbe&-@|74`V|ga?e%LQc&&g? z=&?GWLCq?lM#SBaljUv*z?Q@gfB62WJGv9ni%~ljT7T#h&IDg-pST7))*Z++9$P0K zSvNE*|2cQV96rS7&F~%iL1WEPWSZ%XA17mdqJ>kia0=*mMz}UoR z8+vlg8|Z;?D-M_b*%e41TJ9{fFelSz+_3mTkdkb|Xf!n=ssLgo%$PMp)QAxulhn>X_7YgqhjXu(|;K)ViUA z3Wi=9ZN{X*Aa}!^gR%9oCHS5<0|M-dmZOJRO2{7dpQ2pr;bG01;VCFv0A)Lb$&p)8 zwwat9LD~HMSx`|nm?G$0wku`XvVEaJS*B}`&zjL2)rPX_;vLrWBpk$}6k?v_kI=oK zcykhq$K0`eu-j5wf^kYKW^j_ygS?2^KvoW@a@G#Ev9KliC!@^`LoahTj2^_IzU|G} z>9wx!VV>Z2z3Z+&mF+Pe z>oC3(iL_-mcp>$Bp@GZF7293S@CuFzUX@cl2RxyG;|LOf!U|Q4F(rvz>oFehFgDM8 zwf=CO$2#=VvA$a;Gz_{{2&&Ot{^B#iwLRtBYrTL;8EOB*XPq_WzIu7M4ySo+#z=3Y zAKb$I{ClD^9q#a??B>(Mn~w~0VY^t%E3@&6J{mQ zQkt=y{K2E`PGWqX7#!#_x&W977@UJf&AsGZjt_ACOAUHJU=9K`S6J>O`5kvGk_*~y!Iyu1eApYVSJo`WsC zMDXl2&Ae;nqvIB7gIv>$|a2ZVNG?HtHf?H8RiDm}d$5tErv^*mhyQ-w)$ zYvSc6b$HXjb+tDJgdJ+1rN(P99%6L~Z3D)!W}_6n~qNXLUYe@_HKi znzEaz=AX0*vpamsj{6n9u;#$@v^<-JK4rU;^7M>vh2vTw*Gzq5HCp#1pdwc>)H z@q+wf1Q6kO0&+c^u5TColyh~x;8yr`eP6Ep0K(mj zD{-`|!cC$-F8m20t+YtXhN%&qWK@aoisL69)gVuOg5X!J# zrpfrEOzMd9fJxn>iS-6s^{DTD) zGkjYV79!T33LfAB5M%YPkP9;2njTGa=wn0z#IIWsM2aU8|Drpi*UF zg$|l3$=V7icg5UZVm^eJA@X7FYG#J1=*)Pfq+xU>6`Ii&=t_%Qf=BUT7MjzeLZX8B zVQrYa~@H#?v%&XuGhyAr9trqvXtPFQS zRxYgdxf`;5u(ubU5RF0>FlwRfqBOlV_*#3WX|+PH+hhe^4%Orsdnx%EtAD^ZgGme= zl>k{Qi$i{guXu;wn0N$&$`~8&pCAjF#^e^awUhBM6ge4cUkE_*kicU~HH>!zOP#C{ z*r&8Qj23HR4p_h`UmTg%*qrj>U|lD8%-8%*7T!jSf8>!s#_>SL`^Xt4mga*H41XAF z)-riy5mUvO6=-rB1N(?~fQ21oPYY8!LN!fUA7cvR1&?)4PH=>LPfWJ^_e9mZ-#QWs zzN|#|OWg%S2MO67uc#&1?#cKN*>kjK^GdXQ2mm7z1puT$$JILNzSj(=`|mE|d-`6N zsqd+#)7|%!-|J?jPhxt)>F;UE_t%L?pok$kA<_B$({70J$I^`{Kg35te|_R#v!q~J za4zIhHJ*cdLHdot;-dI^!rGdD+V`gj`ZGHH{n7rv_xtlhKA1qykt6njP&la*5$e*@ z_oq?O(Za)WjQjZs8G`j2lt7gSLP_y&uWS!SrOc|+iQ#%>f&I+f8;ljSlK(RWf|rVg;EJuDz}!p)~mN;hWQhl5C33+}Msa zGH)g1N*;13jOHay8H#F3Wpy**xx_cdp}XKKeBwT{S|#VZpOWv)+a}g!;!SN}+ZYKI zLtta=HG;P}dxpGigr)|~p%GJijUr)&(G$q{TOflABJnzoLp2ew_PV3{%&<3NjDXUj zq{A1+A-d05iBgqc5q=( z@%A931RRygxwg(PJ#jhZc~+C7#*XzvM^Ec|lB;9SvOb`KG}i1D5y1_<`n?Wlveu(T zvOYvjeKApT5jB-qOAtV06WtI9kAiwq*HjepXuO&ds)z#W23g7RY67~-I$2N6WINV;DRB$0R=rY; z3(ytfL}$Tr5Mt0j^jMd()3V&bqdPzgg1=}(QR{$YIl=VkY@za-xgKJr!)N{3#L^_J z07gsNQ2QmAHb)nVBc`#8f|W}?!?FefAyJqxL1Jqz$Q+G$nlF_29u+MPX%>Sc0)%)DXE4RfIO5R6`8LL^?V`zlGt4 zcfG8o4Wb9Wuv$XlW9~8BrIT+NPWOHM)5RAnIppmw;)f~ehHW<8^X)4BOQ4f3{^Be= z2uIl@UA#VTVn`S9_bQ>~>Mr7YlFv&%=Ab7U)%DPmeEzt?XMG9Rg?v5=k<_PsPR&=d z{)FoW|JOixLE*DLh3f|Y4Itd}iOfIiwq4GU$?tl6|dVdc_wk3c$@O;cJztz>voAe3w+(qpH%+G0O{7?kK|(Rh7|vA zQvCm(;^)*w;`6*u^mke>uoT;3%f-Ml%@~&B&CbDMTU)2#1VWt_6iE7=f+e9?aH7gq zDt1fN>IQ0YV?*nNgp{&a>wNWkgrwr6L?%3~7a-i7v?EtlMoMI2-jq7|@6snyxqfu-ozcg{)U-xfCxNPOmS}el&lv-xJMKxbt1FaML9cU(@RtBF~{sGoJ7EoFh#~ zWzV)?u*!%6Xzod_C;h-|m9H|z)ODbTF2>dXg**Bcx+Ic4=?9wB2hE|LYC}dzPdm_D zsP74T(hsyDANbj-K97AO$RqPKjSnU`hVc&-!UeljNo@#6{ubB$KhuQdj*y_=dU84L z{nlf31mT)#Vv`xfQY?3W)gPKZ&1dZKhstOBE#6{FUAY$cLM2%ndl_q=#B-3oumHHs zZ+*8-(0q)vF-2T|D8u~tHQy8P(H-(%xjTR@j?Hh~gk|`?ea8cRvF4za#)@57m>X&Y zj^FzCjQ|*iX81mSGjQdL*hg@aA4B_nADVrk2;XDwJLYp?aqW|JKr^lS27vl^k$e_{h}fMX_VE@G^McO>Z7w#|S-)x(0XqV&Kf`kX z9>42V(|WQ)+(9ew-P1%6`DP#MceNqwcH9MA`;aj%^$57ykSl)d{jPne4W|fu3l%Z~ zcNhjn{4R_q>hq!v{{X<1ISRPNFZx6}dzWx1u5yvH1nza5HNoIB z-!ryEOq`g-FPY)5Mr*Uy?hYOT@&LCbo`W)NDH8C7SC;s~_m;V%n5x1M{_T$1%XApD zUw-S5(3`#IANiImB6ew2H>q>fyZ;fnPw>{^K7p3mCP zLsmk!6!|lbin6u=(?DT$S&c`gqWfO6-&jkFOL%W)=n>Yl-cA&Hgf9TY_BuqcKFrX+ z3O={6CfmBDsQy`2iLEvdTWIB4ek`gkF$UH*Ab3~3h(x^X9826nSJ9sB3DuMFJ)!a( zj}?Kspw`6mwbxtC>%gb(0s~d*Zn(%7-Ri;27iPS^aS7=K!hvX1p!da2+YG2BgD>Fp zgn-8qgwnOcb=?Ff97P{WIY8Q!lLLj?pdj#2fLJ-HfRovhJ>QE7rn3UK{)^kC3p`bYQD}wpFUO^O;d$?Ix?&rpKaxAdJhQG|2 z(4#KdfIZzPU7!*3ZrJaR1F1ZiX+yyJ_5nbK*xHIee2K?3tmPA{`{;^=2H{(N(^*EWj$4z0gMZ-ir z;QQKb%N(y-=9rY0DcYiHmSC8aW{J8_ZI(QX<^q}}I0cpVfNq*|Wzzu+qDW9-V}+u12J`~f z*+BSNlHlq|Xc;$P6Q>74jMw@wu{Ev-OEg4h)?sx5rjSya;`TI6al7EqAa*c9d%S9= zY>G=--K%y)kW=nN^sU;?W``2U_I5kk8@hbi)DDZ{$O?$()>nTPjgP`rV$rC^N9)^) zT~KI!RI(-+Z}32&E6ii~MH}4U$$*NLC5PzCjz$*^c+rU4+L2N?Hoxr&&5s4c>IY0( zKn;&%31Q^maeroTBU)Okc@6aA*nt#{&|ZURg&W#)^~+4`W7`+9qFK83EZ%uS-tB?4 zZ`a-&Z-otBYX@rGYaQ`mL1}zm9$WETyTjP1w->7xbOS74lWfQuD;nbSY=~{@b08XG zqUtvF3t0p;bR+b}VjG_NN`BPES8_3!m|scS@$+HhPw0=L0m{bb4}D916XOjpADf$H z-wFAqgyKydzd`O@bqSwDgqDW@ZxF^XH{;_r=_0Ec^CtG# zr%^1Lv0jgEb2og$AwP{+^PoSC=kRHKH~2i-(=4|o$R7PAXmh#%4Y8@(34vm$+dAtD zFNY{n1!-|TX+WNc?(@Ka%0aM6`;9slb4iIW@MtMeNyd#)L0SSIyAE1&wi_>6pQ?sh zeJ^;U)eM_xsFX!Z*ibQ<7u>i-vz$Uv**&e81{{@^CL z>5>%r4MQVVAHC$Jwd`k@IRK6|2Wx@f#l#Lyj^aF?Xf88BM5k$TD<&2RHDVb_rgsw; zi*WS`X1W3+|Ef6{X=2gz9ESdfSp)Zur0*vlkyYN72EQt zB(iOdVB1ep*;a{iakg~{w%v-_2iv;IwyPxDu1aQGL_O^QR(rNL^k0&1@5A@v2t+wB zEf{xZi(=e${mke#5BJGp$^JJ63O?KFF7OXTtEHG12&ZM-yS$d5d-RW}DaE)Lym&WN zf02uyuMpgOAGr7H;NEYOs>eEtnGmoq=Jv?H6MSJA@3)>y;@=7&lM;9sJs)^DEt!u& z#&}UP@O=pkjP2-xfj0`S1O-lA^8dtER9Z9Oh0k^rWY&?X6Kf~kLg>rOK|sT z@<~aKVqSCAHp$9~pND1t(QfAxd{{H_Eu6}4KEgh~1%j4tfk+z+%IR2@G9(-(YWi|X*i~o z7_(Z8fm2H4fC`cm59PfW)yO3jj%9Y>OQk{j5$p76Vn~YJAyL;U*M5QO3ok1X10}O~ zn`uluz&^%$T~o2E!!31}0F{)*$8ieTRFwGHCKPJREa)-i16cis?*Ig0GNhjDlhc}s zl*}+K?AwG=>7L)El!-gLh!5i&1G;`)3tMe}S{(8dayrJimq%Txpe4rcpoHu;&w8ZE86|Nh6 z&Kp*!c}BkP?(jLE^+Vv4sCAWm|H5hd3Fn_|2i_eDk9^P--uu9NP~j2D_wFswQxBK6!c-@ZYsCeCPaNQ~KbwAKo z`E|PvDSQCo#^6eP-EIpMzHX8D2EEu%LWyRq3?U6!pxmTsWPQ9X&UzR#mHg<1x#+oL`OY8!t?6 zr*&-M==eM=UvP>I-gNd_ha@o2=fF=J@bA*83C|+^jPmRGSRH)6^Reu_=tvL!q^$^@ z9M(g0T3=m&pjcZ-V}G{+&#^5H0n(#@=z}}WPf`@&U*{3G=k2D$4l2$Jzui5{T=hOH z%x`R-Z1}^&%0R+|3d42K(*R>Y+ahgQ*o#1^#UJwY!LT5wPu*J`umRJaGyhs+IM+d7 z^~-u6hX(bB4XkKgmu2{xk7oG`Jy+O$&4+LF7v@~iuq{xS^Aer{xd3L;qPv&pB|M_= z`)GV7p&kHs`%jbTcaPkeYCIR9MXEld#b;m%;A9BNh8g~Su8H!Sp}S6-;j2$>n{N#F z*leBZhpXsd+NJ)(Iy3z1-1R6ljIMiWoG=m758z|uDi z%JsuG;Ok~{J23W$%)=lR9&IF+nBbVSQDDx1MZ3N)B@?p(sPd_s1nQgy5N%SZz0y#1 zfNDfig`RCvi$cvzLv;wKwo0lSK=pt^%}PVn394<9Ds*j=jwsaLX{e3>)ecE@BP&#) z_DMq(gRef4=q3;qFTP<$Zgv`?MIh>sL^0gGYltFhPeZf>S#?UP7)?$Zp-}s#p=yF^ zzNCr~>s>_(^`bOXr-5pTq}mFqrb6wPhU#okohGRs0M*$FH75<#GEgm(RNFvxp+fDS zhU!94t&&uafa-FEIv@>IiRSH4C0tW9vFglOip=k2~*LK0< zN9+M(^V{HcJ9>dX*C8`S{zCtsZG5(ny+~nBpN3X6$6Jg)=9Wv+pfM^3^nJ~5=LcLn zKqufjga$=YA1G2UXi_hvB{k}v`@YfN+tv7SQq2jp({ATZ!B80JMs=0lVZjI zyLdb7^3bsiK)1q_@Ret)H+Bb#&l#(SVw|1w#rKC+w)#W&9`J{jw)sQz(X%e?K<_H0 z02phybiPrwe=07AVOXLPW*uryWXv~?e}J2pZklh*e;+rW!fZtQOY@C`dHEI5FD+zQVLz!n4?K)`VrhZyJC3Y>ACJp+0D3-J+p9Cjrt-vY6NAXal0m*dajza61% z_yeP+qqjt@>0k~ZqSSO0tEkg_h)?nXKFEh^T8Z~O{=&nj5i3Js)1vBi7ORc9dL8yC zE+Zb`WCyZkyk*Dj0w)Ny{4dOU<&poT8LRqptWN)o3arf6m0A+7)M+QTX^9#91p_6O zc}}nmc@6*hsPiJ*j&95Mh7Dx@ukZ|VhGJ!F`Iz=s2CK|xs{*Wa!U#%{4K|05I*c`y zPy-?2UPq`mb*iwun{TY+B+L}nqZ5)rl4}xAvkS)YxR7IxZDx%`_F^whZ!>j<7 z$sH{*R(}(NjCQ+z|EQ^Po?S$fN$0Cn8T{fvW7am7-6@l2#&iPdnXAK)dCB~W-XhFdcE1j}w z@xW+N&14cX202wQ1oINcyfLFB?$xh7=KFUuEb|Uekj`b%65u| zwpTVZd@cAXI{pH)auF*@GR+>DD^Y34&Ti(ZO=S<5+i^>V5uZ9lflc^v68wtV1qKSh zFPrm-8vV%&9JK8`JKpkZqv*Pye99^t7?|KhcC`)6?uA7y;$&Li~7>CH}wh zDG}cY^(~2Okm7ej|8f+?u_f?jEZP`e$Ebfa-Wbq7r{6_=?b&^LXJz)vNY$ZjrT&jD z6>dd~>Fk_CWmrj(gk_wrfvc;MuyL`35vudy+Ga>-J0zi#N8-Shye47U4hieNEn#C= z!pMI~*!BmTZEMDw%t^iM*?anYBWr4J$AJCDqy2Bs8PfN4`wuU=tDke|;bA`;KL3gl zpFei_uZJxCT>ix;F8TeydmTlC&kTC%(v_E$6s<1aenX#e=1uFq^8Aeh#!nmjo$Fs7 zbLr^Wt{>#TQE)|JS?*7-dizUPU%l{)zx=}c&TFr%`ttu=^VgAMM=a0VGV1KLU%9TX zYQopEYIasPEW7#MoZ7v?^($|CXwZsR9^7!>9m|K_|Ca|E7vH@kxANVk8}Iqr*G4V; zaM7l_tIJ2vJyq6JasRv<=bu{;F?;zuQy#v#<(7-4`u*Pwv`)Hs@(l0yJqO&Em)tqw zM-$s-d|~FiSwFx1$n-DYws_iaZ|%6F;H$O&vU&FDIpgkp@UCY{ZHKnDtvNjDE&IEB z-uuQoQ{Q$R-~ZvG@8ABxkRz`j{bBoE$DE%XKKrwC^P?lq9Q*XwpDaC{fAYkM-*?>m zQPE$|{OzfaSDq?)ZS{feulG4<{$<^p&;NPA8`EC>&MPm!eCeNNxBg(?8!uh4zih`( zx4*sf>Rk)B{&L&<&DTb%p8KCYe{C7Nd-?NQUO4;WSN7I@d&2sx@9g|;!}o9g*PQR| zeRTbgZ~M`pAHMP*8#dhWZ$tn6FF$Au-~El;Z@&AjjqAP^8fAUhu&KU!_2{}&tD4r_ zzxKvQ&OIFYuU;EHzkK*tEx*0!zx}`Y=C50Saq-V*{OtSxd7$y~pWOM_kAB+rhcEno z-sYeG@yP#t`SHcS`|YNVCkwXJHf?_5^i$)We(>36o|$aAr<>0CmDSGWMPp0HjvnQd zGXay`f$7e>?{nTbw+g2nmQ+?%EUl?od~Id*g0Cbtr}c+035TypUNayBwY;AIg4gqS zo;z54*b+?cLAN~23rK$h6wrjX_LVRTG9CTYuM6<< zW@p6gQ-VKfwx;vM3FZOdy0k0P)%-`oKD5g6?(OEz#tXGMWexDX97w7V8LqERRgcbZ+uV?|JD=?w2|-5VlA z(Sl;8*^ zw-swAk?d(-+YwA=(-ooiuEwTk$)k>I6x@*}X&mTwZ@dQ*hE4#w6C#SB-brXRr8BdmzVHZq*v zN5dmx$H(M+n8a}!10QJwIe_&N)Cn-T3Xx^_Ps1NuMkYIqf!R%D`1z)>Gy;+EG*uvz zM<7pgkf&!^e_MWpi^vs@51EY;8EbArT?VWm{uOqyD%A2i1J(+M&zdvD7hX{$js-Y_ z6y|a8F?`-$F6=q2!n(f-plWY8g zXIalh+OuuDOY9#t_#Lp+x(A#3>d$lp50})v_ee?pa)VE;vqwHbn#cDG3m1^$?{t88 zkqts(CC1rbf0-FN1P?S{&_QJA&jJTEHWVX*%9m-jF1WSs&?EWga6#2{q>v@v z`BS~qkxKSDN!F>!I`L|d+Y2VkoXQ-ZaRi?cIlf7f&R3*e`^{ZD`HDnk2}G45CN zi%%%>xA=B>N3c6O7WORAaLHZn z(mC4_@{7G;W!#6Ow>F}kdk=sWq$K9o(g=x$naHjotV31I;+@J#FLv#pLhoS5$a=n4k+_Cp~2Q75fiFbInmltZ9g`r{$$SXg=Q~N(9 zy$_J!e(1{3d=bP;B^1=-jF)qGeNS9Z)8z3uV>D?4EvqJ-c1ZI(ATR@{S2L{Ms*}Ep3S+ z_@%?fW>4?ND_dVW;zNCgYJGf;QGvHv!n(r?zJV2XhDVVQzlecQhI~wY3*EHrJk{(QEnH z5uN)XV4ESF7d52{=MPnxp%UCr#60T6?o8nqqnQ^l!(uXq7fkXHPjj2@ z0CQm#@wwa+ZUcR8_d}IJ$!5d`yU51L+D-pBA?AESU0F3az=cE z#F1$1c3tSB&;M&N)CI!$2JPfG=wH9hbT8fM0J$Q6C8MPIRil)pS?4dv>K4l7mPr={VgaP}kSc1-@5^h-1 zWITKm*tLC1Qwfls;e|Yq*l33Kgo2F?Ro{LKoAlwKoMbM3Pz%rVB5F9cf?(gla1b99N$QLW5DgIk;sl8 zjbscPiO7d;3d|E<6`J%y`8mcRiCr`YA?@P(h0X@dpbR;rXNK2FRx-njDh169{6@x@ zVJAEn!VKI!a(>K!u#yu1JY1;D~>9u)b=@FwM3M3!nb0s=c$);GcCJa;RQ1I-K1VeGmqA-jpb8Lc6 zF~hjy1H0^(<(r|0bYHy^nR+4*;}}8ynN6%^Y|~_yD4*WeNl%)Q>{8?TZBP8C#wS0W zk&(2~Ln%1QK|{Mb+@#w_!EoU)SWX+S2GK0iz<#ma1nME2SFDr@x1#Xr;#c*NsCS{+ zrKA5Ql_YRb9jD!gamX&?yE@dL#XG^iL{ff&xe-*+o?ZKdtGW|Ebc)DD^_8 z=YOZ-Z^HA?es_w8`bM~}&i6j8_FdE|yx6{oH2XCCz%eP(!o`#udf!4C{0D(Q%kZdn` z~kT`VIa-jyo64A0}&r$j-gf(&GM8}JAt3N|WOr(l_aB?>wf1Q5^d2jqDo zx;CWuh^JroAABA3*P#$}W%$#t`!}ER>;CYJ^6UO>nex{G(p`x^ zpVw}*^6UQEfjGwN{*7%e0o^t^#eaW_|97C5h;OCDhf?Cdm=fQX5+6zN&q%>%TKvac z>N$Y&n^#(1S#=+*&tqeY+R>rHmsTuG4NBg-qVQ7puBhPDy(=o1Qx~>U?`^l0Rt0NI zE2^t2t5Z|qK9QwCY*|tHiSJ;EpVuOd|AA)d;>yZov1$C7LckZ~znRa6$zhl&j> zdhSGIq5G{X^Q$YcwWYJsKb>opSh}q(s$A6-a~H#|Am7j5Ge1*2W-NBG(3M?O*~7Vp zLVR;dPT>4ZQ4(XwaDCmV;tnXN{S-U+SIrG&udP^KtDoYzG0F2OI_Aa{dO94FD|NAZ z-1Id6QKINL)k8y&5$1*MUqzwYi@ToYKg!fYrh24E(bE+08DLi#a|O8TZvLY|^7x4s8R}4t?N(tr?sd z2+gQe@?g(54r6w>X`kqGQ0c^vlga4=t0{IKno@mCo~I|x89^N;&eMAqM%6aqJUwiy z5XS{Z5W!g)+A^Z~{*S3lz8>>BNeKxv?NIU_F|F6+`7k^;5Qfv`@i6auGj@=O*BXg| zM4~Z?#0n-qrjuKHk~{0vxm%i_V{%H0T*I`GM5psXV*QzHtTF4Tn3uhveQAXS1x32u zFRPwg6*Ca33Yl(S+J(%|+ST|%&!>t;58Ar@Lu?W5eA~Z1k5tp+c^zLMg*5GdX-&LC zN$pQG9Vw>SY%MCEGB=&C*zj0WlMq~5>cPgdgaGwCWS_JywVn3VKb5J9X;jn>fIhkc zTLa`r6?H-Vli0*ZS}G&Ukx|mq?n3*gO~?o2JKK6Zcp5OVe}brq*CGF`4=K9h<^o)& z{)x7HjYWIWP>L|}2pdL2_2=);V)e?$N+JcL)+X>3gy zf`FYCGb}37XLxtgj(-@Ibu9O3=(5B-6ZP%0)#@u~mmd3k^1VCdog?21OZ^NRlJDJahVgI+S>a((JAK7(2Eq^7tA8p~ zcfw9vpI``{2c*9%_&-;XEO@+~UoY65IYCRZd#pXU3)DZ=fCt|ii_oB`$z?|5% zn7+o@8<;aAVH6$5QLH$yg~dF=5TNuI<}&^wyqLL;)4IXi791dFvZ1FDnr4BN`l?L4 zstwRCvU5*(oKx)KX-5)X)oVx)uPP8;h@)GN>G!n_p)`-gBNdvD^uo8}oIgCe#0+Ja zVHjnxCP3BQj2(|SI|e3II{}%XDS<0BnNkk_&iCzEC!vMl$Ls zn8xVL4Y4-|)!}x#FS-{R#M6P|_p5(__q9=4`RWr~$CpPVOs0i7JM6;f^zO_A?N-{F z8b&e7m~p<%_|hB+_7Vw^pQ`Hu%-BsJbBP=Xf0pWz3GqJ~e2Ov-Pj zF#Hyg<|nU5P{LFGjJHr-8XfG`B2?s@nF?4(@Cl6wI_8EnRg$RiOIsz-RAZ(UBUv_s zi)qXTbE6OhjMbTFb2y<0dvVQGhtWIM8EZR$C5#iFrbWD9q2z@ZIWI#qnET8Sjx3#m z5_4i>fS8%ldVkr}+lL3jE3k0}mL9pr;{@_Aa^)-DWvpEb>a_L)12`+1wy=Z4JU}}% z`l2nx0>uMZ3i2<;X75ulJUqnM9C+GnKIAa_HY4a61li5LEym_K&zgO=`NG}~u=r`5 zkW}*}c);BBY+H6Y&R6n6>&uyON)Bk$*q_uc>nr zSRUcDUdUH3v~Z&kNNJ%^>4jJ>;WS=~Tt@t#;Xhv49bq|z>jwX2AUM_ea4dIs_&DQ- z-_*QOfRItfe-RL(PTn9uJ75kVzTd;11Rv7>8$eX~uyueSowpc}_y!=K|0|G5k9r^a z_X6U(oc9Mne9H5F0Z2X0!^;14<^KdkiGK)?&u>@$F9Q;P4-#YiF8~=IQvTI|Ouq(@ z`I`#}H|!Qb{PJ$Xh0k3D$mi_JKVP8PhTREB`ojT8WfOOQh6^F8J#pAiMaAOgY^08lwK(^ ziz?{)9K$Zwo4N|(=jbl~C!S;22;QO7`V8%-_|HFCiSB&IGhOs13+vQctzmf?#OCODzl2VZM0n8H*nq=9oDj4h(mhwy-?a770e zHW&fJ^Um7+0mJ(at;fRZK%=qx+bAgQXF~LE;@qdNa4bzA`U-Cc4VnwQL`{NXmS5P5 zhB)Xt4PgT!JyL=hc$gtHX_h|#DeD%yuuHpUA>IzeN|4(!$Af-I)ORd=nM7nyN;liA&X~Yy^Y=Eu>+Hl)FoU> z#2SL+9EO3#!jXO`SPI>!L${qJ86|{F*KVq0MqjGRa#=}3ZU0Ev{79DOEi5*ItPN}6 zg-b+f{MI!n7)mp-Q)!G5-c80V76C$Zmzo^5!*p^`PjX0u`kw1{+?5={MuIopwH`-y zQi*z;^yjvA)!!9r1upcrrSle5Ut7r}ZRzwkf>oR%TAUqHl=#7s!Le(riqrj__W!;8 z9p@qFG`)@JRK!5(0{goWicX23h70Jhe`3F-6b>Nuy+*72lWf*J=q7%h0sP?3s{)Vj>j z4OmGERcd7L7JOnb(3TcJfxNTMjsWyDZ*LT#!sfoM{ky7AThxoB-aMFEqVScfDsEBL$puS_WB{)D?L#VUtbkhozu9p$!k z@m;n5T;LDIf4S1*YC5s@Ke0aRnzVgMD zH5KUM5@b<1f2PGwkMA~gr1Ro(C<8D-h7fHKjvLBABG)(d7LRxAXq$*m3_w2qu6ZSU(<7fIYfuqxgYL!Uy`Qd zQ1r?L5#<3$@#2-0S9T}IPE(JTC`dg&vS!QI`AZ?$lN`HV(IKDFH7R=1cj5hd3G%`G zRN=z5(_O!w#K$_p9w56wS7gpMc7eRdJ_U9ma%aU7+-<4A#ofg2?g;+q^X6<59o{yz z1Wj>WIV0l^eE?mjEU9o?VHfc|^?%b;zozNL`ael8*8k-zJe3ZXvL~<0$pb!KO&SUjiNdHQ*?(OuYc z9IK|yWIJbfq9iVv!*uOkye6lN?`ht=N}|Q&B<kg z+xE$NrgMrbco0OG7uvy9^^d!_>#2R_E7TGN*(d6Qxmz9^Mll3v~;4S-+Q5 zJ|?Af{2Q0i$ZOr``MTiO!s5aLy?&vRvSK&mUe=+_$(+bDGduB)j1t!t#Te{I=(Jz+ zt5P4IcmG?X1T;;r1Rc|rB;2|G?N;8ZQ*^|$c>FXfT+4nWr?Sgi;V5r)w+>>HdiV{6 zKLQ0zq^E*opeOlly{ecpylgr<>XH0!LW$457%nM`J+-F}#ZdZPEkuX+kF=*o0 z!TtHnW8(LL8RMT}h>pn?xIJ$tWHu<}K8J(3CK#KuvT@1jGqNRk5jPXzfX8DL*oftx z<-Q$z86fBtxH(yV66=$WFdZ|z96GeWc&szhiy<&HkZRYt2x{+@u%$d{d#WVp=N5Ks zlE5GtI?0oDH`r=%ip*Z@AVW~F!$0z*8GZn1ykhN%C4sdAyX3}py+p#jGi$i5Jrldh zlDC(MB4WcCshig6Ivf)zsYe8LbL8p70wSj<;w&mER-NNq_OdBr#TT}rB_UOo3)J4ZGbC||6yCBFTJGM~PD#+{n=*KHb+8~gp>Pk8| z%r-oRN0e{j{EybMKpA4J`6&YMs(jXt_Hj6M1!e=@Gd7@vOIm;+znnEc0J+fHY|#O;p%Okbv04%8mNnK@2)#HuJ*%q6QgS)!C#u;VVhBP zvfA$jfh`MgaX0+}S1gqiNp0B(k642t7mBoBN7Zd!VB}{3YgDe-UR|9`L%zEIz+-|y zB3H$XA|Pe1huiX7ro>!Yl6pc`<|E48^xs6VUTgn7nee`NYm(|PfB43GQGXu+Y0GoC zAfF;lDwFQUId4#st^A5>w_mRRfeOsnd}BYe`FPfZb%U}SE;Tj}>IVzp@bqf9J!9vj zUgK~y4|ZZ^`il4BTtutcpYaJ+Kib-hk;ped|5@bOwxtD^qxhr!_GhihOj94D*!Fqc zihKw)wBD>4&%EN>FUmzcu^giXW2p<46v;h+JSrJSdkGGei*VqNyVxL*pTcsCn_UHk zqsNTBzNpweVWP)7DUKPxBSrRm>{r?MvkPap%Ws_>f6ACjOic?YyRy$j*DCr=>Y5Dv z(<1*L2<$3-WFh9RmUk>_l2hTfTM?RWodehP(=En7UHn@jR_gh1+lhX*3L!_NdwzwA zpC%s8==A&xDr8(2@toVDyGnvi&yP~^6A_bcexs5v9d0ZB>GJ1N!oY+s;(L+{J5I|N zuIo8fF3bg85B?u2JiZ6vw0<<g2RpF7oa2ii}8U7UhvlJfR zk8m0FqT@t+Eh?@2g~r}hhx9`{$hpz!#3;(_$JII)zE9!wzNUoo{2q9gTIa&|Dx6MV;mygC>q2e@gia>U35fAW zULU|-5TT;r8?^Df4nX>U3kb5qxLzIYKQE-hxsM1RzPu9U&jlo%iP-~aRKk;4F!Z7_6ZV4Kaj`1nBj{6N$(aw;!gq`2!B2x z>FmNo^#2Z!{<(k`15QHg!_ z%CFnelgh9Ar+buNx92bD=Vkrat^h64)BVBgDjq<%J8)&Z?r%^x!msftV)XS{6 zEUZ{wzHn}J!J?(Lw#B72%NEs^FTA#P?%j(kuGP;Zq9hZV3ss`Vx;r?(0GLQXq^@Qs zQg$P0bqufsLTP-55`yL>>`a1pX`&wm5ni2~UZexO#n9};vccz)0^<3)7TKG(Xh9rT zX14$sv6VJ*>O`&lxnFJ~(u;G{YzgYROM7o!jLQr1$HvaPsVuEsw4~ynqes%~y7YKZ z`zfpNk0vGDdFw@0d(-q{t=D6o)$Q2gQ zw3*?o@Vx7?Z042^?mpe}RG)i_&5v<3^DE}6=GQQZYFe#W=zNpee9nML7jx0h-;L`9 ziF{h7*?b0}$G&2QJq~zI_cBK|n~Rzo@ewn7i|dx~)}_{0AN=@IK@cNyMJYPa%-Cfv z+Vuz2pExjD5z4@6IcIvAAHVJo`v(s9TP;}G3&Sxvb>^1G9?JUa&LeItHfj;XUNX1r z-ch^t%pLb*oGXJA@iYC*jIH@&-En~V0zm}Ab2J=QDD9}aIm z(>vqDJ^OFG=c5~$%G9ip9d4_STMW2878lt##6-N$+GlQ=HS*TIjV<0GtRTKAUGV-W zILxKP)!mBsX8bn~A9A`!HZPiNci@wp@roy-#dFWBtQ*}KTRoYVxmTSb;)DIL^=#GF zy5F9Qwh!>G-G5)-=wA8}C3w&iDs^~5w+wQJC!WNT^F@(g{qmPzmgjt<7EfQ9(Tbz! zGZyXV+YJ9;=$!A_nm--h+!UXjuoEPY-WCazzGU zugqCFo{ZN=Ze6wY535OYzgfQ1%xL}UoaH%KIN`M%q7JvYA~6*a%oCzjIB_O8st)5@ zC{Hj@#AX#VkOMsORBHz?xDARJ80PT4!5A#l7cB@eU&Uf695U{02?gG`CUAh7gdcB( z&7Te1oG*oc$I4rC(C~a@Y<|uh*F{wC`g2OxX)V%JEm-PpVz^=D;^ zK`7UnWV)>ZVle8AS+`2=E+|K(v&+D6x>r!a>DFBgR=p+l0qLHnTuJu?{^{&qKz0)@ z)$T(sLb+~ZTI&9PE&nFS^B&+WPMUB7@aBu-JaSUR6q803rpd1aCw^G5|g%@%&Ao}RMGC*XhPlJv@8L@2*Y)}p_!H1Euk^Lx;ze_pmd>5`wYWI3U`tr(fef0~i9Q6ANXN2-omf#Wjz-B9E&(WO>-PxA&;Ouo2`oi#;AyEpMNqNtufcf#P%c#^0s^@@<<5Wn;n$rpe zH#U<6Bc4zmOXd!HGZM;pgDB66mDV8Yjx5Nit+1w7n`v5D zii~C9Yxg54Qi~%Jr`Z`%W?H7B{SIh}??k?ywS&kr%;*+3F7Bo!xQaB}M?)Q6oDSta zpu`mM_rsH*i0790gcl$!BPQ;$)B0v5SBUEVF;li+XEObZKE+r2J>bM&^drndQaWu{ zMIVAhgWZ3ob(h`hlNd|I`@|=y2!vHte|QBBAX)qN^06T^3-xhbbX)zWeV2`bX-Z6U zK}wNib=Bk9U@Ig&*QxfwyufZ@6;_YOd5k-3>$k_{k5~bPWoPU|Maf`KIV}r|l6{m^ zvbR{W@R$fbvXY4oB0#(lq)xeM%^!$iZSz>N$nI5d+v@lZ?y-BU@+>RUZ#|HdL6uoO znZe4qm6L6<44fUiS~6Ma`r?k2mnW9Z7kbF<4qZ>1u3VQN9y1cz+VVGKK+kE&&B~Z? zNvIJd!1<%k&{u5vL}XS?PbJ{Mwym5(h)uredJ`Lo-O_4i=VtFZ$SU|ZP>nM~h-oCy zcCUI*@d6s~y{MJ1B*wD*Qz<0J%bzRCA1XxgKbM3WdcYnkq`f>@`fFIC;i7MlB@%L| z7)d51FXU0ZLs|5zke{)K_lQ+wT2;*&FH}nbi!)cai z!uLAnMB6%dj@+1vDLc0nMIV)v>F|v^1l91E2hjU&xf}VFI79{~xhgn{O2ZWFk-?i;2z9(ztPze7N@_LiKR-%65 zWusCfp=`CoMUsM72dO-(3_W0vIxwA#mm~wq`qcqP(`|y2?^1 zK9_48!Y@h>ik$3JxNUA1@#JB;ckpDod8I{4?m7gVbmOy|(Uj?mx_EvyIy$;n@J}}{ zrT1@A?*#`c$!?vH4WvAlF8(Jf{xBlb<-cAD{#Qt{o#_8W#Z%6J>lFWlisz>_-S~Dk z2N!T(lAzP`52^S|yNLguiVq+@-T0V0;_2?fKVABIT+!9|xJua-)O?USKa~r*9{lf7 zcyn-)?Sx}ce0En{Wl>_D=>J~sW?1&i9|I)bTgv|$;FsWk8Ibwep~C+F2;n8K3Xu7q56Jv;z<@ROdDj7Aj5^E-2wuwj zJRtPN!v+B|o!)>LA`g2L9`IJ)p8)y%PQWk2-wcS~usU4${Bl4(|8*5U8SwK6p8yC_ z!wLYIkE;MlXCNT!opuUP>}P<` zuIBw15bQf_10dWm+BabO3jm2<2FUcM1L8N>#N{gZCjyfGXh6n)2@t=*7vsYG^#>IB z!}mz!4^ZR}a0KH20?6lSH-Y)v56JX>49I$04@i2e0GVIz3t@g~N0a%T2gv;LfKcYw z1<2W90n+5Q0VCcT_y>J20H~ zDAB&gFIE1zfKG&S%>wC8QQ>YtwAb+*(UUIc-&xPsDF2lT_6B77=TI2Z|0^K<9{}dz zcSME1ro#6F@_oDj$nrh|$Rhs+koB_>5G05F1Q2f6N?aIU1xWn)fUM^^fJ|??3ikt| z56zpb;!6NW!hZuG$~6pSp&n@%@+6)^9SgcxBO%g7+ZX8~?{vf3kO}GF z@@x6(dn!Fs(VIzn_-py8QRP?5OI$EYy|$Jwe+7Ek|I7Er~HOhZ8(kH%_SGj(LINA-yO`?AnJc<6#Qt+ukON{?bivP_Ne9jLf;$N47 z&-EaQ@#|9ZvpR*|*HWHm|B?7SNB)Wa_fz6$rljXd!Ou(a*QWTtnnLe}6nZ5o`D5KD z=I3`Q&!0$%uS$u}O!1FT$Y_7g}AT0`)gvLSSoz;Doe2>q?Gxrn3ohZA4^b@V;Q1T ztwD){OKft;Sz3EvRfY7cbtYKL0xQAQi<2Kf1uhLPMxYp|mM&gc%Ec*21zCt=qSQJ> zSCY&}Y)Ol%_ux|2Ja$B(MDk9huHu(fqvq1aaIdh6U{*@!2bY%DNOL#we4vO`!J38f z9aqS&s>p?NMYyg>>D7gbQ_v+Tomh4~-nol|3C4Cv ztzvOSErLX~vC?H#s{AK!l4kZRs|0Fl#R-N@S{Ic3C{jv_RrOgNTv}SWw47PeMM+|i zgz&lZ5_V^U9JXlUr7l~FN}rn?1BOqG>2{q`sZw#E6)mbQt;B($thiFVA;nSga5UrY z_kE5@zwgskIJ&qd55TCZ zG;9xoh@yguihb;&j*E(WX!zmWw7iYD=8C`E$?UN zH#J^pQ@P(DRFo3GzJ9+qA9+5{bJaA@hxMi64g9R%G9Q`yTvYD+Tsu$p4qm#<(+}sk z_FrfzCcN6%772JS^QFeW-1k?HgLl-``}ULeWS_s^n=fsV#lG_6MR@B^{oH04 z3&J@DkaNnvH(%O<gH zA3x~fgXHu=b1K6dWF6NWG}PPSsPU#~G z1x2Xe!`;#VVKD9qG0ekas^M2oRPvp!@+rX)70<}`kt*lzFB5B_E_{U19h-Av92b{a zhbmlPeNT%_KZ)DAa06eDc-W6qoDY|(xd(rimu3XRLwngkVif5Q}+ibnJmdv6|9=L zpyU<+mGd)i$P;Fn9lG(R-BU0i?oQXm);;FqJ-z0|9#bE4e;UyBcyvy4_{-@0@k4uR zF>5kS!Wo1hmM8INSrmVwOJC3+T}YKKq?6uQvFv5I`!6-6fA8tE8>SqB?{|F*lSS?W zbh&TE#kD)=v^Ce_mYO*l!~4yZaXbcw^??gq;WYQ8$A*Tw8W6AN(QEYL)hzK!xOlyT zzddoi?nsKGFuA(=;em2jdM_)k8Pq)+Q>G7lrwjsCn`}lm(J`CP(?fcjQZy0Uq!1pu-qJ8Y|Mtf`bRl@lp8}s>$ z`E586FL?sttdFewdoiDuFXmGa^Qpd%(%)muw}6j5ErFQFemCZrrIDE#B>L#wM4w-N z-yoOj-(%3ui+doXUGv3V?sok?+we*}*#{qyY1TpJ#ibpB%M+Z&mpgJP;vUMpABgcz zi1CVt2a0>8+#-Rzfr+Vu24RZ5=MGFgM(@T7+7Lby`b^n^@|`jF|8Vra&$o;AdpP>+ znkvbp%sN}27I+!-87pS3m)ShJ=HZI&U+`FH_sknF}v4XmXg`&1tt4SAZH^GT}Rn7LCa69Nf?^l9x_kfZlY=3{eZjhYcRU% zUHDc+f@O`2K6sgypM(xxQkz&~s=9whKDbG1CuD}*5!EFRyO%&C&m!{`_7@?0dz>5#Pnkjn*(k%FmGibpXEd75t zgUo8Yw)z8?!g){Ow*Tu>Xu$`$xfsG*@Zi~yLkQDka_!| zaK=XyhlhsDlYw6OsOD`r)$;C>7njdJaTxd^3+0WvcnkILWylM-32^8+{i180?iw@? zS^QHNyDymK?uo?NSo$;vFFlK{_-q|{1hu<*5$;_au+ynS?pQ6$kT%l%j|@5JqnmJW z)wMFUfu1zOgehEL{^UjHtQB2QyT*^;{dn=?qUhW;{qQZpA!kg%IbZ`P)m@Fvk2aCW z-S^%)hjJU76dhy9!RsCLixMDFp3iWg> z-x-49XhC8LvMHJYU!j1)$5Y+uYQ{w*a2`mT#M!4b$+^VJ=O-3d#b1!37`H!Cd5$}v zV#Fuq-HF8~kDl1SYmSC7Qr1Wftc*WW)$gf_1&ssxE&C29h5`@;S}Q{HuK)b%MLio; z#UHHd_mG5x1!{{b`h8OHoMg~HwP7i9&ykuya>4h5OSJnzmT)Lyk!oGT%DX>zzIppY z=4}Q_;=5s0{AI)yFGn}$wX$bBTzxE4;kQDLme|h&i z(bE5(bU#wvTZi^r1^R9X8m}mo6>=x9z(T6$GE;DeoPs|u;SIFUAZ^MP4A`anf%|&4 z>-WI3KXtzn9dhHt6XPFF?BDhX7VxYx6klhvzLXPzcx{2MlKLVoi z;)mv~{WLa0LzcTkmP@JRvVvsKRoI!>{S)59u;zgw%lBQ5T2GB#pPbWwzr8Z=&s&i> z@S*-V9Iw4t^T6^!0ix%e{;+Oe)&1s><=^L6Hj17z4vF&+67AidV!Y^KpXi(e&<~Ol zKRRUjDPqex;A62z?}6tbygK+ZG?L^yMD7&kxOj&$h2C0C{cr`+F^s&#B)~o6tvAJ4 z{b?QC58}hS=BC(GZi>@ZN{Z&aFWhTI+>4I!Mv*nrVZx&&-f}tIwHwJDT99qKWOhbl zPbLq&wn`(SzN`sOl zuoRE@TwAcJ`-iF_H=>^TXs7%B*MGsVs_q{~Jc}1YZ2SD%mGQ?a3m!o(n)@)`2=Qvy zi#@{&9_`t+a(-#gfXex^y#^UJ9bM8{y zZ=s$u7F~tCmH788{(XdhF1hCq!D_$wA;T)sQsf&mqVrE$EfM%$qKi^&2u^!=)%?ur zY&<@=4mY7)f5zd`cxbPkTf0J&YvgqlU6?SzC-f4Hp;S87m`;W!)knkS7&;8sC*oZg zpr5^GxT-zASEzGZJl&TuTsNVtK2%*^7;0-QgqA={LX*mhL#a6arDGNCE-uNAcJU%Y z@~~v41-reB?(p8my0H~JKGZoiApmxx?Tv7Vl#MM5c|b`nP!a&9l#Co1!b?W6 z9IqoaJB*p08OeAe9o}uqUa*V^!Co3Fs|n#1nQa~IHJEt_m0_o=J(HU4_9lifG#_h4 zs<_?yh7exCpGnlF>QWsuk{Eh-&b6VARCBC7c|t6MGxnS&=eWgMCu4-%S&#sdLN0wr zdw(Nt=vESZbR?Z@#>J5fLR+GJMxqrDH3!{12q#*R$B5^T6X{Hj5AI?Fd?*SvwoFLO zjy7Yqr!9fUvL!_;%EpEo6X{4IKGp4)jq~>7P25L{i#@Ilx~T+Ovmls`O2Mad4&sz@eQ6-QP5E2TO=5vB^VcRac~hA7rA()p+s9O*&1zZ zOeOH`vMvmFr@G>qu2iDYU3m;xXOP$pGEIcXs?xFMM7g_GA-SG-^rr#Oc6r$^krJnv z92>&3^R0N?yg5-9OQ&acq#AR4*3j@VN4#J+(O8Dr%w$tCj$9heU=C|)S0<4T)g&_M zcnsm{Mz{=FzN=k0WZ5)!Q=NN-+S77)1-=WJ<+A>TVMw&6<)&^=Oa5|a;*;VMc20f* zGs%!4BASaT$}5n-SpyOn$)`tXBFhnytaLAO7g_U`v*79$$fYjOYwhjjx!NdyBr7zg zV`7xeayWIgHi}cWEOIVVqKMBC$yj(xF^e5>!ri91vu^B!@^OXE8wb-bdSBpt@{%$) zg(Pvk6lzb8#q{rF%*Xo4Ck|n8X-`i|%s{Cl7bb_uI+H7lWu0=!vS>JK@jbmZv>*HW`iZDO#69c`IDKR=DO!9)9lVsO zPfYK^w`YSnGLX}JD>A?oy&q?}dokG}XW1&NDjSoHAbL(r6Es*9YL}lJN8EZu$oRs1+iM$p#A*5M(5=kqCBW|*~j$jf?`UR~>9%q(z zOidjcB*E572u%uv!}QK1Gpz}!B;u)Lr}!Kyi`F-kxJYBUN2bKZ*>jUL^4uhu$RTaW zA$dGENiWaMRWsTQl2%Tccq#25DbJ)J3Y2jL(kk;D(KL(X6qJ!dS8!@N5;$d;Ub9(VO*Qki#}sknENvhP*gC9Jq%$Ei3wPEPD{YO*gUcErT0 zv7r-MlT*WJi*-u%qJFdb`j%8j7j7ZMRotYiaGGir!O}D=7u*RIy)IU{mUf`s%7` zH2S0PtA20U4wuC`V^fpp-AUyq=_tKT?_f znMsN1!5d4P*2wUvtneY_gol9i+T6auRd9{%e(FfdpkbC~ncacEkvJB01_O#n;^jDWpf!=>(3WnF z%qYrrLsu)}Y75tWi;Nlbo95Ed`OV%v(C5)K2ak?tA{gjMpyiSE5pI$rq-&Pr*x5C; zHJNUa8#Kqgp}s-#NUmFXZ#Q;jd$Hw*men%@_X^Xqr907hP2?J5F^#!qem{|6LRsX- zr6$IvCR(#GgQcytVpeCYy|EJ28pd~WY>Z*0ymT(;8?G2KHT&H`13DwIPL_18+ZHtH z`DXhXK`TnJL*3HQpd)T$^eWJC&$x&OauQ-r|0X4x5-HaU$~n>vo}pN+OC_3eBA@o! zAi;7qc%ZvQSVaqy8>Zh9Y3P`S*VzRRlq?Isy-ZaV$m58r*w7|xOJ<}y*DGasXnP_x zk$u*DKEo`d5xqgZ^yZK_Qro0EYoY|N8-7lS#6qw$H<4;C24gL)ZC z3*=T~j&>p*xVN*BH$WNIv%CI4b$Ky*xWxi?PD{?x>T9|ylkoWk&)p?Y%&WBGZSL}- z5iGVwS8T`PPNri(9*%LZ+7tf@B8gd@7_v!bSW$S6$+kR>K3Q6%(J6@dr03{r!Bm?o zbi5kTMMgHKVH6i<-GpX8!?LacFT8tIfaz?*$)HV2W0}X0JvgSLmhK3Ns^C(1xqC?> zk?DwcxWpGrM?CG)PqyU-(IfCQMd3&c|4&VJw8>)rxT~zj>Yi&0g{H@G2crukt=mv6 zj>;0fiwg7*GqYtkgXaVi8R@yjVp27vIxwV=p4!|QNp{M>>sVR1?>V5F?P%|4>*z|O zQ-tvV&lPQK3co_TIt8(^+uJ(4+dY+Lx&LHhw zI=fA&T|;{Q$Pe*Y9TEzaffSOGCUBFIMXHrpG9_h;ODZ^{0?OlxPBcJe*s0BWAtgYaw7a~~2kRBAQLkF4bz?^^ z&D2kfFw1pBKP%`T?*yswaZv(MjC5t1#>iz>Pb4sRKQRGO*hDZ+h3+E!lb!Ys)WV!_ zpi^UuWSEHb(Y*1atUI1#kpodyMQ~GQy3%?w;*w+|iGwWUJl71`G$_IKVB{hUVPlrV zm3DHlblKDR>M{mXymp8S!xhIh?ok(dhn8-#Q$}xcT=A5P-(Pa4E=MDK%V0*Lv97kx z4;cMh>(-izfk1b(o$Y=(7`MOPK)UPYaoLkr!n8ynBYTd`!PLM|mTU0_-O#~H&91{q zNy)+!LXu8QwojXc<}3zzave>am~|yy(uwQL#AF;Dhjg@~BbdSfN~~2I*tk(;b}>=g zG&Y&SfEXxo>THe0ty{B8WhFQZTH92H?(qreg0>{xHJ77(+oVKVuB#V1YAM&*VBVK2 z$O6JyTwl~H2~oHr9^xwRg+@)@Y~7ntaJt|GLaFOc5A~m`MGq;fpWU8`&5Fz@5Pwh~ zM&e#hmrdNhdh*;wEZrpt;Tbc(9+9MvmWSou&yL99*+Ey1#u~$}D0Rc|()abf@CM*r zci4CHvY>PGHp^12xKo{j8{sNPUE;12UU{uYp(E%huS;JS`w&O=w;a3W23PQ z6%F3>=xi)7!gNEGAoJU5#i!WF*ytJx4Tc(9!LT zA-`Y-Go6{#(UA#xBZzJj1%`|#w6w`YcDCHWsNG24l+HKr9tj8RwUfrn9C@g`wmj5` zZhcj>CK|#UFJsvwL*+VmA8NxJEko6?HhVMHXwG2hT`F$0!zzM1oXrVw;zq`@T>mkI z`qkS=x3_i9C=AutRM$bOF=88nKZz8MOrut;2y8dT@z5CtcSDWwT5qEqv)~;VFw5A*Vy`uIh9XeyADkM3dJQ z#IS4D;x&c>KI<@Tv@G1n*?N2fs#=G5^+omN2EjLO`qWIcQcyVL2wxhb52nV?_zk?O?1StG(fgxHb>oM z$WYy71XA5);zQkK@c4EO|Bk2sj)(s(Xtq>I2Er-`(mU(=JjiZ@1Dw7iKrtTFPx=Xtx)G2E?;;o_1WGjk4_t(E?UDrI< z$*Yq*&MPX)TG15s9L7t1h89V*1d|iEbqQl)FHzOp-jPaF8H@9qC63$1q_fP7pdyjw zNhosST~herHb!$n_fXi&P`kM z$wH~7IHD=V@6?W2nA|~cqA50`L(1qxIZ|nwJ2}p+cDA6~=lt}NwWR}NqdIWPKF$^2HQ7er% zE^?;218-kWCK_E&BIqy{-AIf^$fBLx+#(sMaCE3`3a#xJHg#CKHp;EIyySq}$VeTS z=)*6zORMgUi@9?jvt0dAGWRwZ2kywP6yAr^gQ)o$t+XjdmvZaB!Dmdl;! z`gb*Uw9j@eefeCnyWJAu3TZW9_7aOc8nQhhj5#FG#+3#HmWR1P(XiK=5O<7dqZOws z%EGRJCz;$kO4=XpaIdQOd_vDb4v9m#R?HqY6`?l@EG_D2jcZZ+dtR5<->q$L#Wi&( z`ub9I(p2Sd4tmWd5$yC-Ri^L@R;3m z5ye^}KOR^X0)KO26KNP*ul8J<7vS`)ozcqYFeMO47it#LcmzUKrz{kWPcMt58l{S? zPRsnOBz*Ra1E5P9q(bm4d@!8_5eAYf&%Q?00YP7!gQTxHh)y}jnFwIOvoZHT-@!l3 zx#WcBTugvLx7Viip=e`UvOSj!y5~emu0fTTOR}j@orq5F z?K&yZJPwU)T!}2%J5F@5NKT+Qk*fCTIq6rCN_C{N2h~-TV<1%uJXA7cD>T1W>1~vC z^E0hNex~j1py?|JGp$0|9Gb_)KQ1TJ+BkR@Ru2zm(Y$VBc~Y8h74r8rROf&+&jE4+ za|oSs4wF0-I8rmI@0IW1ALU$n9bl`~DmK(qu5a4WjNw_i zgo3ms<#MA+!hmM1Jrnkp3SI6T?|zVGm%0(Gc*1eNN&$#i$BkQDx@4I>-MamAXwoVQ1+6ST&LHXxHI^&@7xN}`M~fF$9uyrSB0})Hx#;omy9%rWCTX?Z*Qn$T2)yYS}Y+*xFZ$L z$P{{5nlNsr){hnPb9rKh7f%c}CBlsfH~N-CMqJ}6QWb58M(|G#rc*f{%)!u1)**`g ziTQ$d3~;4nR61)p80$x~dxs|RL`inH8hw&PN*WXa$C{2A81Qpzkjksaxn~*TjhO4h z7+!6(q7KQ#F{b*8hEP?*AY)igw~!YAUn9xn@GBUk~1IVG`U&s*v& zw`L^RS4fAdg0^t51Br%py1oqw9!E4McF25gc8J9{v^qmudU9P&z>Ic0N`N#90%WFk z%miR7XG8`g9RR!CtC1_$pAulI$O zH4zN#hi0O*#lOf*H2#q$c}6~EE+QT3XqOp?bSTs5X(u&a*x5d{U{nzXF#XNK>}C-+ zN6QFjyf6c{v>>=CEM0}|@POj%W(hVCMB&IWGwFjjp6U+s##8-G`XH|KK{nNg(S^yzCghwMc+Tv@u66fy>xf`TH?&22gVG6fnxw?(&6MV>DiTn;?~TeOz?ZrJkN z3XAjzZ1D&r7=0-m<6Fn5wRogjvBe`wMi=l1Y{8AW3DdD{7}Q0cnwe=$_u*WWpDxbt zT$0~;RDS2t`JKn)cP`EETrjc^_dZStcRC6#Hc43aNa;lvueDem>y%abe&OU9!@e_$ zw&YY4ZPp`{bK)Kjcvu^o)|!}&f%L+fNKwcw&?pK89g983Vl1$&u9!HnD(WT+WPm-6 zBC!=;dUFmk%AO@;$UcXVN+w81-I7CyLk^+S6FH%HPn>8x;Hmd8ipB#DIfQtcLx@8T zA)(0RLQW_$!;pI}IfR@`kZ|V`B;2_K35J4VA}7hDCbi)N884s!!;k_Dg9Fhuw+Ul=d@&ACFiVi2?Ufwh_5+>I0(TxLVqGv8pV7ll=p?s z8Tv?eY7&E;=mFp!33dhD^H5r$qxmlOJWosoM;C<(JfRkBad?&qRhUSaCXLwoii&cV z+tLYCn3Bt!i{x_WBDveS$k{phKjTY_$wZ_Qw=E_haxu4*sk2j>ObsyyzDMnf@L;_13h@`UO7p#OV`h0iaWrjwh21=#NNS1by{!5)aG+N`BFWnzD<$ z5ZILq?{)(dnKFwYPh(;ZCTD)L6BUCrOmZB(#!KL6Y0jVlmg^#opIjGd0OQjf@hY$@{$L9B*qJ!%V|j4SK8~K*l1#OBc3>5tH~4^tEw^x@l1$^#_MKEz zTu=}xE%qjJ)n#M^%K{5R<7?|1!jr;9#d|p>ETM%1j>LY)tJ2~>;1Qs<#$%fiqu#j0 zRWhc=PU7owsuvfHUPz9%@n#fzdpuG+5$7?bUi1pb6cmq+V9#@m#L>)_O+2lJXDB5l zlyKR-Gu0FkbBYPr>m2JQxx6?Yj3lxb5v&vLm40Dw@o*L_Ew)%`aRAb2M9QQu+JPR5 zJRODQcr7yY!i(WUG9jGD?qBx?EE#pn2J6u`vRBd%!4kgr`40Du{^5~mq)#8R(AYl$ zmHiQ@{EtAjc-lV|DZqb!AZ`ke{3GzBsYZkJ zpx$Yg2bzMJf?g?*pZh~GgMWQRPVVI2NGfOk{lqd@Uy(A{Z^kJb=x?Nk@epKRK_f%B zmFvO#KN1^@{%hcFl+r3PwYN(E^Y6O2Ev~!>qtFlg8C^=Q(qbj01eFl@M5|N}0?0Y! zBH|K&0ujtthak#&_-|GsIRXEUpDtbhkgt8m)hmkqY@8EGmeXEJVN^X8M!6U`WvPc; zMI4fK5UnV9rQFO8$~jl}$Tdb9@gOKlWfZVzm}p~g9G&F3Ub&v$dQ`NLFaQ!5@WxUW z&n@_NhBU@r<1ORyynX`f2CzZ^!<}Uqw8lz9Ebzh=3oLEGUM-qn@x)lH8|iGBjdvno z#Va4`@GNdLFk@D5$o?#SRv+6K>uo?>k{GrOM6W3p#}b%4%Oz$N6c*^%TF#hfvc9~A z-eSQv7OP}sI$MgUSnOIz%!ayB!Uz~VmVqp@E6kKu@hZ9j-fRf zsOBS>A-u>R&1+fFR~wIa;gL9*2uMU*@sOsh!qFzKw|pks`VPgTfziM0v!htS$7i|Z zf$?BN-dga~x_e~|2M}e+ImX&C=M%>Y)4&x)`^-JG5gcG_lvRBgS;TXQd_j))q6Y6V zQY^ti)B~3#n+&@86iZCyDRL91#y0P5JIH^su)XfENmY>v6%#^blDp&5;1P@0iXLB9 z?T_m=<5ASCr7U2H=UAj|jm01CAvw0beQ(eb4|sz;-y3WPykUzy;ElA})f?H)dLw)4 zjcjMVkv%^){u;uDN&YEeDM@yuTHPfkba!6U-FXdnB!TurgZ&KOjZqJB8V?zAso?Tr z6dvBYRb-Gv9Rsgxs2)GA0Bd@i-0OSlG0Iz4UoSHeSW8ofc@90BDGl}h+04Q)vbald z>Mq;jE|2y5JwAD3i1a5S((6;7(1G*_*8{|b)A5$T0}hVG3FcuX)uzS`E1~yh#Wk0e z6}AYg32UZeScQXFrp(Un*mw z0efj-jvZs1Id<&l+Dk^|+Dk^|*oz8t!^eKE-HnoF!$&_Z$BvF%j{n$)y{^8lqO59M zRYiHIv)=E3Hn!BGENFG_xWY3fjpdcDgFdaXDUy!2V97VqD<2`_xWCI_T=(}F#Qk>} z#J?{l-ho;Jef-~vb}sfCaW`P!Cy)#N##!Wo_EaRvBRDyvGR7jjb8-9mZXaZD|E3IP zbaBsj3;DdciIj)t+(ycayY)YwITm$f9Cg^SX?$ZhRMvngK)0`RSoLKM7Mq;jo*i_=Fq2eCTJ*aDQ|hH0 zLaL@5Lh7en0yRu7fodj~a8+~8psv)@Sq4$gjR_obV*-cVn7|=7CPL)IM2MW22$35T zL2_auiIfu)ama~@ION1c9CBjfh+s?{5sZl=a$@2Ti3zG_JVA-Ekq`wAnRwx-z{n1+ zlRvm4+a#nlm=!1)TK2PcAj}- zh%QYTOFxqN4wks(J($t(55}?!Sy!!z8S`Hz+RMeAy~Iy?r;Ok4LJ|*!u;>{bKv_qi zE|R>csjRam1OtK}e+=rBhl|nMmEo&ASA930`-pJH_2!zx?f}<^mcFpYDo^n0bM!a8 ztz-CMJOSt3&^FEFRMfArf6Om=J*g`kB3{1FlN8=H%wuq8;tjj>k;6VU8JUZa!l!E(G2?Y0LJ}J15CP?nSvAYVQC02&@DHuWR zXq{b9G!knaT4MMgE|_cfTmU%6H-#`E--H)MV4awIQQf%gHpXo+#4Z!|c-jw-OUtVQ zswPx;8)0uz6~=DR%R=W0;o$ACsAD@Z=Z{Wq8J<_)8$IqBNqGz)d|0$D%*O*gpl1q8(K}g=B5$3iy zBe+?ZYzkWG6r^h1ScW^++YB5Uu<4PW6EZrUpU1jwygW*lZ+kIyi%{`Aa7|SM( z_mYUo!de$KIcWs1PHv9QQR1Pa#7m*d(dBjyjnd!q z%aGL$u@u*2NKq11i_Am&7AYCB7R)|pEhr;=i_BE}7AakPi!?}miyM`3;h@=>jRAJD zF_0#z9|LKf`Y{lTAC6f3aIlk&0d}%6kYoH9$T27hUEFYWvN4byKL)bn$3S-c7&wc@ zz*#f~vg5}AZt7>xnfUm!E;Wxxp`J8JrP%Q&4)BJSIqk8bg&*qoQXjecTT zX24IZ*bMloHqTGm=qGLTGw@b7ysj$kRbPP);h}}0igK?YsVJ9{B)Il3FsvEJVma@@ zOIfH{6c4rMI^bEw_O$EZ;Q_W%jHJoaEZ*BuQ3N(&l-yep9~fDc1Z)@AK_Z0q_^R@cobZ);ap_$9>*0$WW%}04ewlJ11=LP zknrL%Eg>7uMGki^vVj{oF#Yd^=31uC7m02!0!IaiJbp-QvV`neKO}ZpLiRxTkA6$g zI4HR8fSv>qIVyc!Eb5+{o?o)(puT9oPNjR&JOZl(#jipt#uE8iNH!m^g`- zMKOm`ma|@5YJC|~m@W26o*hpuVPeO7;5D2D>Z^;rWnFE>t~QZ17c?ciA{k#5T1TH#OO;P*)7S ztr>}to>y)=JQ9iOw(yvUB&O$Dpsw=u3E#C)U5kRQMe14{bS+lblAvpex{eCEj#Agr zLD$jhipN#5aTuenr9s!yP%@Fg%bV~AZKU)}JU~@ZQGvc9P6x#X9t_0GmpW2-xFmd7 zM+!Z-=CFHJ25x0EBH98YKyI+fb$L?A|G1Y%7L;K5T63FQVB+o|4ra)WWEpAN#^RmR z+!XI0h9h{Pj~jCRjU%RYozOlzf!BFXllH?O0{>`avR?Z~S8 zLxOzhsx@y*I#S-2RAqESCC4q_O|q93NNC8oIs(mI>x3F4bjwEgW*B};soq}izxUJr zD77CD`6{pd{g3wdsrYPMNIvps+5Ym8c>LC(%Ga>vYkuy7a$?|bFzrLA_#Bzz+?Tf% zf^I_l=2ZE*t@yW1fRW9uXjheZt&4y1MbF@G1i1pLoP%(C1tDyYqrHYIVG1|eaBYib&pS4no+D(ylrTZgP#M8E!l|Rmq=neba`UL{4=xawi!sPEK`m za%UKBCOOsN}{{TuE7r0!1ceZ$>F`@_^dj9qu1r~NJJ zo-jzd^e906l=g3^5x7hIzB1e|v=3wjWa|UPhtRINHw+T)_X?M!yQjf6-^Kq zzfp!eiJYp`r*a+#8g3Ce)iLBM4R-^%JE^7Mq)tD?a4*vSU+O+!H&RlO|++}2lm0uq5TZ%LEt3cx0v%d zhxYTRQ802n+6;FM?Ke}$(!UvoyPNiv)G~4>8tx_9-=~%{+&PB(nRe9*a@~gOFBK_% zL#gAiE$90e!-Z+zgE}6JobN@3JAn2|RdP!VcLeRnQ>(~bW4P04Kc9Lqxmyf(Bkgxn zCy=|#aL>~IU+P41D-HK8?E|F&fnPQL$@xBMxb0{kL9HS8lHvBDy^2~(?!Sg>roEF| z2QJ@lHtnj10Frj>hsM8C$(>J~1V-9_9~uI^D*QI0 zPR6!``<3AeXg`p8D7kM9cMRCYa4D0+QZbNSe7cX}_MyF;+6E@yuZH$1)b@N3+@{jr zO6}-_n?bv3Cpd{;nTg-IIr!maXOIp@zfLh;Qpv{E&XYro{R$r<6p|0M}qbl)KkF7eRQ(n7SXPH zDi}$>IflD{oa!7fa(&M<+@<9HNj(jWr1Jv9t)%^F>gnVzFx;oK|3IBf?lQv-lz{;J zHlxnNwuF0?;dZ0Fgn9x;H3P!-EbYW&!(P5?q0)PO8ZsRv&lVbxcg~; zgxXE+dBeR=`zO?M$h~2>^=04#zm2K$u`T7s2Zr05_A%6R!AO2tZMb^ckESjl_m$x? zw9ln3B=@c1&ZGTO>Yu<#`SOF|ZlL{M>LM_5J$^OZ%d~$${WG~iax#J6ue7f(13viu z1^>jqjSUx}eP8N%c!;h4EHiQ)xVNE(r|B*Q@w;-li@xjr+O*5>4y8Boa$n5l21=E+}dF{;-`8U zwuL*xa6`jz#835a*p}SaNp2AV0!@gU4wt(--m|Vg7#gg z*OL3faQo3-LA?%~T(=($7o)v}dOiIcFaR5Y-wCv<{u?&&Y6HWaN>23#azhO_pPcHA z;G|yN#BhHmr+O2)Ee&@Ox$CGmgOhx)z2P3AUG)}nBMkQ>xtFQ8k}ELW+q8d1y^UO{ z;eMih4fS?#`F{O(@LY#b@4#+9{EHg@wxfL)>YZTZdW#0U z4;X0=9c;MCw5u)yBk5dcxFgA_-bHST;bP>Psds~ue1Dwb+G$t42aM$Bq~T5^r@EY6 z+Hhx)Q@xkm$%Z?Roazd4XBln@Io12f{n>EWlT*E)+@*&54>{Eb$X#W)hsdd}1Sj?7 zjfQ)foa%$*mKp9ta;guJd(dz{kW+n_+%tyTU`H76Q+)*662Dc3+moE?qvYN<+yru} zkCFSraL1EVeVp9ShU+G$`UJUk%^*Kh@{3E$2~XxLwGpK2NT}aAo9FUm$m^;f^7v`XagG z4L6IN>PzIh40k>`)tAZ5G2Hd!R9_)C-*69-Q+<`(g@${Zoa$@j{$V(O!Nkr0@LPp{ zlFru~Zd2M-Unh5`;R?yAzCrGO!_|^geUsdihD(xD{V%y!40kp;)wjsKW4M2kQ~e*g z&kT1TIn}qx{b0B^$f>?VZh%xuf#1*MRNsY7(s_vCw%WxzNcBB(TN-W@Io0>c?QFPu za;hJY8)>)oa(RS zB8GdHoa!2KV+^T#}sX zdgK-wu9KYVU~(52ZYDX^^~o(Z+$rQ#HvlKs_X@+EM^1G^a@QH|YI3SW$lYqVd&sE{ zC3lzMo+GEa5xEBp_a-@2S@$C6@wnkWBB#0ux#tbHhMej!a;prt>Fx*wKVQkcW4JIm z)y>HD7_O9@>gMFWGTbC`s>8|sWVjY`s#}ojFNqWQolZ`5OLBt^w~(CbR^&D@+$H2x zw8)ji2wYPeP8R3qfBFx;2q zRQDoxo#6)U>0Mvdy~*8bxGl)3jwE-N;r1q{T0rgr!&Q+}EhP82;Tp-Q7Lj}2a3_#c zEhe|haEr*PmXLeLa95I39YwCkaLdT4jwbh&;hrIa&hI@~kYALz?>jnxxY_2A! zx(~U*hWm+}>b~Fv*~D-|BA)-M`;pt)aJ!LH-Jjgfh8sst^#F2v87@vvRn|=kGTLyn z$f+Jg?jXaRM@}_LuF7y%lT#f_Zj#~dBBxpgPA=JzhI@pZYB{;M;Z~7Ttspnea9@#A z9Y-#0xPE(i*G+Xixf2by2|3kDa&rwgf}Cm}p3UaEo~47WWw)kDdBWw;V@s)v#L$#7NVRArsA zq)Y$xy!hzfW5}rm;YzOfGG>v&gBokUPNIla8SX{e-=MaVyVP*+(f%E^4V>I+R~T+^fp>j3qPCN}-f&yfz5}&`-0g(&v2WN+ktul zxV69yG2B?%$5BrNhyOzx8SY@(Yp5sDzl{wyiT1;&Cxhz`|AravDB7E-r+}05-P~}U zw0BWYCAXE~=Fq-?I)~hLhP#CJ%c-Z4+tF~>(ta!TbaJ~I?rz#2pw1}PVVzDhWml`pQ&eoldKmt-1c z?n3H9a&3mYnReAbk?S(tedJUZfs^w+*>De$dxiREa&rv#CG7)>-RZjLdc?oEh8s@% zj@0w$-!o@=xO~5{^rxD70XWHj-NwHuw5whSPKN3h8m^I?>P6%(Fx<)HR4*pC z*l_2PQ~fJAxxQBz?jmxkmyo;8aF>%)y_DRohWj@;)y3rQGTc&fs+W;_z;F+cQ~evc z#|`%sIn}?Dd){!bl2cs*POir)!+k{V3+g|>$$j*;;Rckz5x=3-%gOZ^Zfn|iqh3Mo zYr_@Oeh~Faa=#dEBJESCSCJdIz84?;i%%E0UnljSb2yG4EH+iA5yO)x1Zs@rad&uJMZhsRTyr4+J{sBO|Hgp zJJCLddILBqUk)=|4ee8@H-eLVb%fz&(f$|eP2^&RyOH(>sW+2rG29!ptKI?*|A#sZ z_cl4zTLH;=bQ z$*C?ScfR39kW>8+xyuY!LQZuVIH~vlX}Ah$m4=&1 zPIWoCrwn&0In{f~y<)ht$*Ha&_qO2{kW;;n+$V-xOiuNFa^D*6dUC1{kh3pZxYx+3K16O?!+lOp^Z{~lH{6%xR9_?azTti*r@D&VYQwEt>fIlz zuao=Ha9fg7eS_S94gFi(ZHyqN`X;#z4Tl$PyPxWR$qhH$IC83Qk=wy=wd7R)M{ZBU zO(CcHHn~xTn@Udg9dZX5uAQ9fyW|cw+^OVL-y_#xxP|0Y-zRsB;g*n7{eWDH;cg(O z`XRZL;Z~AU{fOL2hI^Hq>c`~HG~B1;RC~xRGTd7Gc=hi`e*!1%`>hSP(Y{_xRevV8qv3WZr}_&xIp5t4cK|unU&%!b z=Y{(Fe=F%-D(|6?a1SutD%w>Cl8YMdJ#wn+fRpjHa>IQ^PIVBuO2e(S9}dP(bzO23 z4L6jW>U!kr47UwA)xqQ%47Uq8)%D3uFqTWq)#In`~+Eiv3#h|QWH{9LiRCgeEli{8ur@AA#+YI*>In|xWEj8TN< zIn`astu)*or+Z;qVDCx-i(oN6Jt)rK2- zpyUFyf2c*|zBb$rw5!T{cqH8K4OgW8P)o@DY`6;ARY#Ev4Rz7+{~S(ERo?3(;SMld z3pv#>my~TWq*` za;oLz#uzS6PPKyEeum4CQyoX{Aj8cgr#hZox#2D%r&>v_(s0+2Q>`L5(QwPjsUA$O z&TvnYQ=LGr!Epa0rz-D@l60P8xG%}6R+Br*a08<_7(dk-a>p5ND{`u}s`OY$(?Js&1m0=dIY&ehTD&J)g#HBZ@6l5sz;H# z*lZVPg%&E!@Zu8^E+3%N%O zcQ85CB)KOHcQiRwd5@c1w`UC3K~8lVxfcv~4ms6Ua<3TfB69ztwvl_?a4Tt7Z727Z z;a(#59<_tqyN3ILcGXUBGJf@;;npknuAAy~a-SM*I62i6xi1a3J2}-fx$g{j5INNh zxt|SJPfoRqT)&OHcdACt~w8# ztQV*;+<(cvM?C{vzF!aRKT*%@gBv`~J9<~@S>XD?=`a&+8SM?!v%$%FfhmS-qdiUS zCO6e^7t($O^_)K9cN6XRQ0Mo-Jx2S>)N}jb-lhEu>ViJFUuhpa-bHHxI<}gr2eH3E=Bts>Un)|3u(WAdOo=RIQ3R@-L9Zr^#XDo zhP#2B>V@FefqyB(-A?WS>P6t>{+MmJ|Iz+6^Zx!#z#=Yt+A! zyVG!A(*6T=3Aq)93srgPw+{6ma0-{%uYBj?^p2tuoy1w5whT zPRgNo4L6pY>Q&(6y1i$(T5_uY1c(1a9~!Qnoa(>m-^YeKlAP+*;0D3JPYpMdoa!~; z)&=*C;Z7x|dM&wM4R;nf)$7QuvoSmk{Qg8v^?Jr{sNpUlr}}Sl!wq*8In^7;g$;KT zIn^7U$f@2$ZlvKJBBy#YxiN-&mYnJ>*Q2#C0A*<56G$BMy}3qUy@V3 zo!k_|{X$Ol4sypCZqUKrMO3|$T#Mm0A*Z^OT&Ll-C8zoyaglUroCgUPAhL+)b3O(v(hoZJ$_9Y;>}UUF9(ZW=k&72wuJ(%)pbE^?~( zk-Ob+r;<~>pWHITb(2$lfZV-?JCB^|N^&a=cNsa=2gyBZxPOsTeTdvshP#=Z>cixo zH{4z1R39Ptis2q4r}`+lHw^bQIn~F=y=}Nx$*De0?gPWULr(Pxa-SIPQ*x?LlKaAN z-;q;&irlw`>o>u>e^s9*_mklUlT&?$TxgR(A&$*W$*Dd|Zf(PDM^5!Qa_bpx1Uc2` z$qg}F5joWt$PF{x{^V3&B)5g(#*zu|Um>@f;S%IjUnLhY zTn9PT*T@wbZZE4EGB;)py7pYq(((y)##Rmt3Ra_8_PF9=W99 z#*$NgpIp1)4kxGj0lBo{rjt|sklZZ8b(2&5h}_AB`v74@bFv{?h&+4qpl`* zk>O6FeF60ga+e$KZ?xY?{SutC$Nz1(6|_G~{fgY}hI?D>)UV0iW4Hk|UTSSh{f69w zhTDbq(bR9rJ!!Z~+7G9GNA5+#9Z&m7)bGLN`z@q>3H66QxLasnN&T@8?j_nkr2f4O_fdp-46aB_X$FzM1rdlz*Lx%UirChZqdyz8b zaJSHYH+2JYdm8Q`+Fzq?2yR`RYO&!yrTr)B5OVt)ZrCASI;jq2xZ@1BE4gCoM&xP? zHSpBhJF8x5;QJHg zR5u5=4vc3R|NcWxbvQZw9;^EI6gkx`z)3#6!1(tTIn^!6U1qp1$*FEd?kd9#nB>Jk zRlctx;r`ojn~_u9hTQFj+ku?ww&d4hRHo?xLR_m+mn0IaL15S z-2t5Bmp2U8PEK`4a_<}N6mqINfs=CWbHklYPIYH+(vSbfaDO4Ex(m4<4Y!!w3hJ&5 zca7mbpnctX1cu*kH zPjcHB?jN*YO^uM-(QtRruDTbve82n1Jx1M|{*5sHy-xe5)RE-&HeA03FO*HG1>{N$ zw>$0oQ47iKYq(n4Rg1t$`4Tl;hMa0Kxk|&GPfoRjT&>}5CZ{@z+@Xeho}B7vaz`6( zH96HW13uKwUpd6!|g-6ujEpOJC>a4zT{>bZXP++{m9KR+|A@v_a}Fj;oc;t zdH}hFhFj-Q?|fAcBzJ+~b|R;G5V^&Mt0JcwC3l74+R3SoC3mgi&LgKy9YBjm<47WQu)f#g8J#5bxd>@gVYAw07H&epX zL&&Mtkz3zzP2^@P4^G+XJn|N0%_9lZhdaB$+~M8j=Q z`@Ym807*L68m^9Z)g$TOVTL=3oUi2c`{iD&@Evh-sz;MM+W2=OIn`sx9cQ?1a;nFY ziyQ7ra;nFX)9x!VkP207Ie$=zwVzmiiuiQF>7{ezt9$>3z%;vU1@ zOzsZqDd6(`?xOus>Z#zQUU$bDnDDsqQW&mi}!;o`JUr=Ce}oy~Jo@nqUn&muR}aEr(-rk)Kh z-|uSLZ=-hi!L6YE3F$8ZPIUQYcJILUtp7_N%;2I?Ym;|+HV?Z;F93{Ki5b%vWk`{~rbkegz-g|uHv zJr7*I-_^7)r=H&j_X6!7Q!nU)3mxl)vKjTlKDa$;A5FaooTT4z<~*Xb*HJG9C;j-O z;SQ%=^{@1=({M?0s+W+PZMfOwR4*lWy5YLXsV*ir-*A5=r+OK=^9^?mIn}?ByUcL^ zA*cFxa{n~kqvTYVkh{@vuaZ;!2f3w&`-q(C<>c-&+z;ebuORoB;nqFQ%P*=|l6&58 zTaZ(|irnjl8$nL>pXA;%Tq(J7>c7Z+X1H3~Rj(%Zo#CdFQ@sY9jAMp|%b)D;g5$hx z)oaNOG~9p4sa{8JeZ##$PW5_n8yl`)%nMib-{9na8*aGW$f@2y|F$>WA>>qVB)6;K zP9Udx6S;`tt{|s+Gr1zeJwZg|1S<7q#Z zdPg7JOxn+)-U)6!1W{_v_iwb{L|sa*%y5s=zKZ%Ea@B_Wn)ZHi?|hb#JIrvK(!L}0 zE^t!+#tgR~?GvbXlWR5HG}>oV?;$tSaDS%#GU{@0`F_{XemnKvKDhg6f0DYQ5AIdk zKc?OXPU_#&P5geMef>r+R`-)T$8g)wz8CcYa(^-0fwUh&T}kc|!^LUOP#+|Bx#7;B z{X*(PGwwEs$dl-&J>8f)u+I%4X(#;>4UqL zoa(dSr2bfK!o7!_>T}?vJ@l>N9wYZM^?7iTpMNpjue1+t@?!r2xwW_O_VsTe?W!*_ z+zkvDC09#*iT({UT$=XNs4tV-+HhCVuKEhY-N|rwlY5W)D*fBTaKoFuGm27QBUfa& z4DG6`81BA?n?r61^>z9;)^PXG{)Q^KgAMm1?W%7w+)0L8x5YaT)&G(^+;CfwQ+)1h)=?SYo*4qnF^XXyy?l9a)+EqWHfA<=$n4IdT;MRuM4;!wOoa$%fo-o{j1&9u*; zt|s@A;TF)Y`USXrzl+JKe%S|i1v%BP`rvLLr}}jt+;VcN-}J#fMNakGKDal@seac7 z_Zd0W@B83>C8zpBAKZr1yi^TSf9!)RqmASr0(%wk@r4Rqw zXrDp-mHxeB{QC>-mr~b|>oMHzwBJjW!5oR-SB86&_SMvWTPqc5)>ZRjaFNNz{NEu>v_9dJ^P?_s!$ z$z4Mo1WwAo0>j-+`$N=q$&E4GD%w@o11DMGK*POFPIWN3v4;DA+$Yra!R7mXLHl>q z4f^1IrF~$V=gWqDa6@R{lscpjZfn|iqYmwZE1~^B>PCHV2h-j_-MA0#SlScRP5R(k zX-`py^})@ieGYZgKDe`KUqs!k5ALtDUqRix5AFuq@1PFvgS(gZhpAii!97F!D(aSf za39eAC3UMlxL;`>*zV<*t^44H&_0~HO&?soy!-#-wgbb9P{Rm!Fg&a<_t6;I%c$Fv zt20~;?W#MFJJN8iMnh7chG(}b=N+) z2WWqsx?3OI3$*`_Is)9fh~P=)JU*lSC+hCx&M@4d4)5$XrS3s)q2YF*eQ)ZXu_&+?BN7Of4X{(s0XZf1FxK z?n%SFLi>BvB62So?n~O&P>ad^*Kq51de>tMY6-ay4Yv#JMbuH`zA)TD|A)Nyj&H3l z{P2@Dz0I8jxEI1GgdOhXLfB!49d;Onuq5oT!wx&_A}b(5MbId#ilZuORn#Jms)%)b zweG5j*IgC0?%(rCp3`cD?|8j_uirnv>XYZZ-{+H)Pm+_9lic2m>krdAJMJ%Y#+~5$ zs?Ia+)qbvU{VjTz*BE!d>sxx)*BJL6*FURwdyR2laQ%ed{WZqD?D|*q9*CJ6 zi@Yb}!tttmy??*gn>a4=UW^Op5liNbTj99K1;?#EXWX`qi@dkvmd+Vhblf3&AIGgd zXWa3wKS}TFxOL}@JJp?qW=ZyQf>m#4VxL5o6oZ}*&{Tk!G;<(7w*BJL5$3;Hp zHOBqKagon`jd8zm+#mFLj0@je>_6xJu69M|-YwJTJMOSK<8rRg>kAy$KWALQ^+kQ5 z<4&G4uH^c%zQ}QB&KXy6{W-ekxC`ctyTtWZ>x&(C`J8b#x&BUliQ}%DGwuP`KcX*n z+^uuQJ?{Fa^<|6;=Mi_$8TSd-N4}hK;r+KcXWXY97x@ath3{3~IA`38j{B;<()qo4 z&bV*5{`{|f+y<^+sjqh2GjqlrH3HD&5n!rvC)6|8FBp=^exVB z(VTHVa{Vv$t&Ur3&bWWNe!*3p8@bKf&CD6Mh3mJ|w=-@rS6MM<+@Y@T*8`5r&lz`` z>(A47IBx$rW zoBrsWaVs5{*Kc54I9@$FXWS{SKV3h-xbQyn+?;V|yFT(89ryV;ZKGj7dmxDkFLzsc?WV$Qhz9T)jw$GtLV+_jF2{AR|5 zi4EG*nYnn{agiVOb{EYV_jSibev8{%HfP*l9T)knZm)07xGk^k zOyO|da@^)~#$E3EhxOYWx6Pb!&$<3({dULY=Zsr?UFUWqKgPIM`&rv@ksp7JaT_@< z@)NHyZiV9_KlvKtc640ir(R>+UXF`A^cv$1a$MwhFfP1~_MY>&oaDI3?{wTjbH@Ga zWA#Bo`0uGd0O8+#4gaR=`&s@F{WbV;a(J%_|AyehxdXr;2c;2t3e7LVEyWN4G4eacpjX{8}vzV zGK7B@^mX_YsKBXk8k`Piz?pCsoDEet2hN4_;C#3ME`*Dq1{cF6a4B2{@8mLorKtCJ{ z$3YqHhVb7&z6ak0U5xLB@b8A6O+FsNzs++3zK?O&hmQ5(-{HBR{04}#+y&i`fF76! z;oqFRp7l3C18#(y;AXf5>ToBl$u=txex)}2dqMZG{a&1e`LF;M!Xj7bz^1SnYz|vM7Pf@tumZM%m9RBz13B0h zwu9|q2iOsIf}J4`yTGon8|)5yz@D%d6ku=I2lj>iV1GCO4um2c1P8+*a3~xGhrRa6Q}r;j_bLJcpY@`2Di*yBOj3EW+zuA<);?*q#r16x7?4uJ4ANciX&z9+mFhxh-laNA#n3HTDc2&3>Ed@JbV#efbYO};d}6XsKLc>30w-7!R2rT+yp;> zN%$fB2!0GN!B602_$jP{pTVX)M&WZ+58eW@uq7;q6|fbogl!-P+roAbey1+{z7h{z z>?6?2Hg3RwrU?HX#PHGN9jt#RJPq%H_rQB$7~Th0a{G0-3a*B0;2EyF1M9Yj!{Bf@ z0!pwW>;yYQ9(I9UVK>+v_JBQMFDSs?un+7D`@#Nj02~NKI0z1gL*P&dzyBA07ccx? z+;<@SzF7EOuyDTeV;p{8>1Pl=A2HR~dzowaZ?L})!dFP)>)Hodeh3Dk1#2@t4TF&6 zdh^3|>EFxPZrs2L+ynEV7m_d^7QjMS1P^k9!;B68?a05uE-e3!?jP_6c#iFV3Z92g z!|&<-34esokUtBbgE4r8E{6YvKaalvUxXJR{I}S{_Zi{4its%|`0gNl&k(*F2%r1I zIc@lS-Tv&%`1!C97Qivk4@be#a3mZHzl5*B*WnxRP52gs-xvHYd=J7oa5x{GWch~> z&i%sqTKKH|68Y!wQKr2fd<>StHb5PVGiQdy`UsEV4e*ALfsG)XKZJ9G%~%)C+qZ)7 z(e7sM{}8+j-VN`8_rfr|58e+SfM?)?@FDmxjKD|Wqwq0!7CsK2fKS4kn9sxTW_Sc1 zg}1<4VIAhPF02RZ!(zH6uo|Rbbyx$|gr%?y)`GPm4eP+VupX=r@8f>-;SFFz$iPOh zF>C^x!rgEWJjC4o#%(^%b)JCD=x)R}!Od_BY)-cYWZ_owGq5Gg|KNK6gz!Mep$obp z0X;Ae!uM+7JG14CUjbXeO4u5C2B*Ura3-7u z_rlpwg>&Fs7!1!hycyol!}9?+kN$jEooz3I#c&_o54*B{H~0|iKMW)A5!f<3Zmx z6YLCmco#ec&%z_{D7=F?yc3>=w=wrJbG!|o$ht4Fyc^5A!yd3F>;(nb8}@+<;6k_v zYH%@J0++&Na5-E7SHhdv-ox-_cmy7Wx4>JW1#g45!(;F`JONL_5WE}S&Nd!{$KeTB zN_PV^;6`|o?kO08cfc~bo8V@+1>Q;bG`tJm4QtWe3b(=S&#cd!x2z|BVl8&5=P-U_!K-3Z-KW$3z~2r z+z)Sn2jGqHG~5Qa!vNd?uMf*S|98NLc|J$rBk)o94c!#{7Vae91$V=Z%;hGy8N&CV zpJp4MfzQI{U<^JFUw|*d3-Bd)5xxxL@D=zfd=1uMn;Wy8O<+xyH^pD4|1bCkd=n<% zTkvi84ty8B2j7Puz$E+-egr>;m*6MxGW--)!O!65@C*1Q{0e>zzkw;(liU3*{vG@t zUV%TrAK_1MU4Z#b<3Gb+;IHsE_&fXq{s}Rjw+GQfFbHpghvChzF?@_|JPRL(47a%v z+z#P8;5*>;a3_TCT*LRN;k(lCJ!trjGkkv;e!~088zCHr?qNIOz2|-O;TY8iA7DAW z=S1(r;rR^DZFr8u^LumH2-^zp>y+85hn4w}J5963z|7IpPY~7UsSm{p)*CcyEf%9lyo$w_z*T4x)3( zEm_XN77)%qvk=Zj!?|a89eo#n50=9)b9xWF7v2Zqb4U0*7tT>PCvO2+2;c2|h`E0l z!goC3{XM+T-wxsXi)qH(0yjW-UkR_T@Vbg#Z{d9=yw<|&to^#fcQEb&DAI@H-obDn z>AIn@_>7x!%nTiZi|o!r+_8uZJG;JV-z{%!et){|4@5 z=sk=H=a@IKd?VZn;k|JI;}*gq^8MtWv&|D&J`T=?GTaT_T=#f<7hDg=lYhzBV_EKE z`Dpww`3-F2KKKR8$I$gdob^ZHK|F##0^zv75o`!|Lk7Yz`FwaC*A4Ht4>0~22=B8` zkY7)KHw=)&dvbUW{scVEayXBB3cnG55W;(JcrU(_@%O+TI zf!!gTCx&y!Ga#HdhV#YKAe=Mq3VT2}Zw%*>XF@oSe2Lrp3555tEO{MR8`g#Opbyfp z7OW4KFvk;ld{2gx;B}Cp5687PvF>5`zn%w$_t%rSUi6tO`iwRA^I7;T7JcptpSk|^ z^V+|DMhlV#{s#{4f1hPJe0Kgb{0+kA z=FdU+T>TjwK3j+P$S<%QK1crr{thpYzX;(ocKB=^gK$1@K8qK^1#l6B_lPGL(*u_> z=CAM<*opoj#@`87vF>`h#dL9&x5GQaK0LV!}=_TbJzF4 zdtn&f2jQId9q>+g8r}s98GAMJxsv5;;XUO2xF6yCD4f529l|+WIFEV`qI0`zS-u@U z4VQ79ePJKC7!H7q*;Y6&oqIkSou_We_10#63$KIMh4o;4NW#ifz?$6NraZobEdLGu3JKU6mc!1l z4QvHF!49xJg(8;oSLK@O}6$MCaPSX8BhT&bfaKKZRdHI4A!F{0PE1`b+Q~_y$bC*CCwy{|0^l z;kOt3o3O1lc+5A(Um?E;FTnHg zPl$2<{*L|%e}jL($KliP8TbNx5yl{V#`zq47Cr@kfj`5GZ2t!^2|t9d!1v*2Fv#t` z2_A;(4$*g=-(mTy@MD;OH*=l0K=|(F5qK0f<~BEhO<`+zoagm^ z`Y&-`&Lp47_5K0BqW?8~knSRUEBul%x8aYo{$ubgJjnVUyan4>4OWLGkb-5fCMMHDL3xUWl`N7qBXJ2~;5or$7bHW8ewQ zuM4&(-%I`rv<>c?Md_LEE3Vz1&5_|=|fa}a> z%n;OI0lWhqfF`^F?uR$Reeh1$4}Q;ee+uJp3fuZ1{xEz9egI?e5qK6x;B)YC_$b$1 z4?YG%!WQhPB`!*akLZ?yqC}C&L?=Yxv%(%JMnzAlrKrJPdD!N8nL-3%nJs zV9Y=82VevEJbVgHW4lj=ZNnC@Ib@*+PK7scy*j=cu7YdeEV>uC?&U0B2~CzSpc}CMelz_hcw^WUzC{04x)a0o8UGx73Z92g!)M^L@HrTR&qMgL zvoFF6@G#f?cGwQf;m_H=4CC+>_$qu2z7GEd-+*tz1bhp=4c~!({qwVH$QLq~`LGa@ zumH~Cb}nXJH_U_U;X1e$Zh#x%CTKtcPJtSn50}9ea5-EGm%xQ^9-IwTI2X==)8SO8 zz-e$MoCRmV`cQyfVJ%numkJ}{ctcG0-M7YkcC6x zFgP5xgypaTj)0wE32X}spcm#t61IYsun?BQB3KN0*ag;vWpEU12PeUaa58Mk^ICvQ zVQ+Yh?yb;*N1(`S?jSfA4uQAPJqmA!1ISmwfp9gvg>E_9h`uA;f#uJ#Z%)DHtiJ*t zfGeR67sAC*gG=C2xBxDK6xV%#?fs7H{uZugA3PV%ps(Q5;8ge`>o$XP>HkiCC)c@w z>pw#me$IkA{myt>sImMN)_nmkV)=6XB-eQgegHp(Rq!*Igdf6>;K%S1`~+TxO}XwF z@F%YS7Pi}h>md3$pZ+m;fHBX&6D+@;>)j0lmd3}yoBZ7 za34O!od1BQ;ji#%^7HUJmY>7_z*F#9mj8(V41a?$^5@|9EPn?76aN;z!1AB)U*PZX z0{M&Z3d^6zF_`<=^Lo0)thyWC#^d-`a`^0d5zDv3hV(ac{S9yv-v@mxXJ7^F4tv5z z@LHc0ORT$=ZC!@kG?BBojmt*&vmTdn0^!36vFwO%jJ`iu zL^lE-fp9$fKI1lm4dHIcKn*?t=RqCb2=}nfpK~8BVfiKa3H$-x$2LxYOIUv#zJRU| z-b8*F-VBexqwp4ZE41Kk@OF3%9)~C3N%%F_Jqdq++j<5*0w0BU!Mou-@Lu>Jd<>q2 zPrxv|58e+Sf)B$8d>lRr;d`Hp+3t_o{s)-n>MZ{g!in_9=muGQf^pq+$FqDX-U&a% zx;x<}md|7C`EWDK+rf_TCO8|)a2eOx95#cG!U%jAJ_4_>jpyMv@P4=r?&3Pvum~oUF1Am50{ZoXWfhVEVgwv zR3Z8f=y=wBhIK!OM;QNiybawrtbn88Yw&eg3BQG{;mh!Q_#JEoN5P+98vX#Uz@Ood za0|EBhaY468{iEg0~juZHum3+xKJ!S=8R><)Xv z4zM#E2}L*v4u(VEP&gJ2gl(Y!d&54kFYE{V!vU}t90rHO5m18dU?F$ENVG;QpI2WpLB)2ofYpIvz!{G!t7)o#i91TZ75e|YQp$x~vac~&)!?AD-90~`* zA+RR5w<*u(G0+dkLiqFZ==;h+#?1Xr@^5s1g}L7eCg`??<*+ks16#pPumfxlc~}WM z!V1_Hwu2P&$l(U}HI3JRWw1W14(q|1uoTvXwP0;n2a<3C*FO=@hYFkuC&4LjGQ5}V z_Hw^^Snh(wuo^6Z6gv!NRv=eke8E-dd3d%>Qt2NYm8*cJAHy z@L%v7_yPR?@q4RZ@K}fMuC9d^ybazCFVVjYKZWbaKf&LH@4yC!+ z(SH{nWqA@m$@ZUu$KhYUzj}dnzk;v9H@N;cVM{mG#Q*ubtoykB zFSz3CxV@9%jVwP6RhG|z96ZRFH^Ia3W_Sc1g}1<4;YK)y+rEOa4{_apkUsz$z~|vp za2D&D_yRnNzYO!Z&Ml0;ie>))s^3e!mHxzV9mYKepMvM%)9@MiEPM{e;PdbW_#(Uj z|8IXM6%UUw+{9!rWKOTgJ>+?ifNnU4`Q8YZvhHH$&<*q8dbkd*g&W{TxCt82199kr z1e^jjI3KQri{LW20xpLO;2NmIRd6+23YWlza2}iuRX7*Ufz#nssK9A(CY%Ll!1_>t zU12R)4R(XwVQol53igIRSRFQiePCbM5cYs|pbT3>3ATYF;W#)J_JjQ)0~^7{Z~z<# zMc4#3h0Wj~SQplSJz+0c4|1>*Y!64nF|Y&d2>oy{90Hre7LbKQ;V?KHwuI%d0*-*4 zVF_#t3!oR~LlU-vm9P+&!Xj7EdPe(-?98#xSHj2;eM7Y_%t{bzDV8-Ze{$r@He`5vaKuW!uL%B za0k2|?u5JG)qYp$8OEQ*_3K=JXS^-cSpEwAMfh_3B-?!oegHp(Rq!*Igdf6>;K%S1 z`~+TxO}XwF@F%YS7Pi@f{h34bv;4N=ZGT$axr}$z)unqn?oPNm?tpmQ5%GAmswZ02 z)7{^n=udR_C+77hdixW}{=|a*#KQjM%$0lHT5oif-e_yR-O;LOv%O9s-aF4#(U9)= ziY47$^TNgaaM2qsR$nnMo`~PLd+*E)ySqZaMz~n5vxV;V$fTQ_A32)L{Ae=sqg$FE zO=f;HnfcLV=12Es{>=8~S8glDZ=2pn#dUic>w07Ho-m)q;bM_h&%$V7QK;98t{z=K z-W4_7(Ly3x=#3VV(ZZr=VX+HcJ^g+CeM|cLR_pIe_4lpb-?v78-OZ)pW{e7FX zAGU}3<6Zs9?la+x{>1YB1W)6N`S)*r#~XgP)fw@v`ujEvGvkTv=}#=`Pqg=$KVH|n z&w?=Xun_Lci}^%%7}nQWj<49XyDMCDN4re-%p;ZRPWJb0#!dJ1^mZ=0Ra|%Js85)a zI1#^T=dSp&nWeQ{TELFcS-YS+TrZ4U&>cNiiFkkCdi{ON`uox=&Saer`l6Ygb5S(U z_@a2U11y@^%NNC?U0_i>+6NXbn7#6X*=sMDz50UL>o1tyz=D}A%wOs><}ZsD){15} zf32DQaqXz$G>(#~#o z_Q_1eXSW-l-EP(Dvjf(iT};m| zt~0wB9S^zT^=8}kXBWd!gm))q);;_1bSR-rBs`Cu`p9tZ9|^_ZKFMcZHO?JUu&=~TyYZ#VAk#=TwM z%-XY!d%JOOH}37mz1^G6lJSw7l-V@#Rp6I^!M0dU?y7xWNF}SD8?aXsC z^P=qindklKb$zevdtKift@r-+dVhPpzrEhyXs7A*{zkh^ulK9h=dU-M9I;pRuA$e| z;XO3;;T<%1ZJq8o>HOwLcAoQ{=X~cm-+3-@+ycifaNGjNEpXgI$1RHN_(hJ-MfQ5R z==sP+&qpqLK626Xk&B*>T=ab8qTMkU?T@)=hs?!&#B%Y4;glu7dFqN4;eqD=fiR~q zkMgNQE4ZM#14w6daC2!Qmhj9FBJ{?%_;t z+IjW%spOg6iTKPy`MhnZMg%!~PXN%$J z|6;x~`+WN?kJLS%2g%1NdblFTqlNBhArUPsh!(nMs_vesOU#a+S(}($J8x!O@61w| zMfWXO`BOSz2>uY3a<;vYDl|qNVuEorrhMbTjjd&&)4AGr#!E{Ngk7 zizjEUJ2TVx%wrH=IJ0)q%+lhSrI~vapSefznK{R2<{Y1$^V&1lP0uW?JF~Rj%+mTZ zOMNp-8_X#zS!kGE602aa`SPV-b1*^jvuqG^pWv~{k z4QW^h)`j(8edvP?U_;2jMzAq#0-M5SusLi2S=bW7%vZoxuoAY0Z6F8R!gjDd>;OB$ zPOvlNVHemHc7xqv57-m-f&%ck#P)%GVL#X(4uAup2nWHza0na0oM2O822)!modGJ>E$u*Wn3@gdU=d{d5n8`jJp}% z&G>G{cQc+ZLBd75Xpr^gu!*Y_PBoBIWW7q_^T9Rue z-*XMeI?hwOqZ9D>ytCPN!bi`g?bCqH5+9xC_a}TC_FXsbS;#Wa6_@b=bpx);8}YK} z%rhRH%*Ufs`FM09A7A1Tw<|iRcSQ&FuIQl7+31QJ6KAhDdqp^_4eu+RcMd#Lblz%c zd{b$Ey5dcw{n08o>V30mf1(P#Z#J>cn@xB7gH-6lr;_0Chy;hb5ZwNb0Easea`+e$ z96qQ9hYujZ;nPQO_~;QFK6eB!<*sms%SCUvSU+6!g^T&&A{j0=2p1cMi%huKC|oQE z7aNC*O~OSYT=ayCwZg^P;UXR`y28b3;UXO_)(IEuhKu#WMR&MJg^Sh0#irq6vv9F_ zxY&XRI1vvQ-Qj{qJf7$Y7wio2L~poAhKu>(VnMiA7%mp^6-=zZZ=?RcotEF6yzAjZ zc>m|Ee`c|Jb}`ZY_HBE*(l0~bhlnxujuca-`}@>e_!A7o7cVT;r%+7 zoKUnAClnpe)14DGzQAkmm&wk@;_!t}doK(N?y(6^HFL8ciQ=;#Pvh+`wZb_?Pjs5F zPPDMH{q!a}yJ4cUvnAX;6YURtoXNOzCZdme(P!i6({Pu!6@3owTIlAxqZdbaSN6;E zx??*pzqOk)5-#Sqm%7`RiS}iuSz1m{kfog=OWU_FKh9_1@Bqbo+BLT4S!nk>3vIVQ zAA|$k>RtVPes`4QP{)@^tMw;R{fRaD6KnP-mi8x>^(WTqPpsXaNcSh!=})ZNpIEOy zv3`G|uRpOte`3S_M5aHnQGa6N{=_EziB0Qp+B)>e_|*08owTBf9)Fft$EQd)&5pAH0^Ii!@|1Js+k>e{ixYGTG%F9$j!X$ z*!`jxBlmq~F~OIY(N|eB-}7*ae^J+6NAp{9dgd73K0xl-`7X4J*HZgS(Xh}Jz8wt< z-O)lKTIh)u=0yv=(Lyp>m>(@Hh!z$`3yY$K#nD3ar4Jv0ZtO|jR@|$7z>6=8ar}z& zfh=5xLtuO%hq}&yaLkJ@X%AS^9B7My>>ayz zwT~YzhEppSql42t4^F*$zFwf$)$8d#y@B3ZZ=<)>+qG}%+Xp5VvcK|Y4&lPfNRh+q zp#4V&9Yrzh@YIp4+ph!a@G=N;BOJrpIlMrr!z((-wS1ctvX`B*YbJJuS0`)vU$o#z z)!AqlUs|=t@f8IN-8Y8MhPQT~(Y^??JmaEpQR9wt8WHz%e77ea-G2V>_Va(YXCmEx z{_pnle|L1fbvoPWUN^Y&ElyW=`vY-Tch8D5FI;ivMeT?9?p+sk#lt&5A|4i_qcUIK z#b>`YjL&{47+=5r{&FF&g=m3S8t+Fmowp(uI`2g+^hB#V?@BbiQIm`o=0^()qJ@Rg z!lGzlakQ``T8O?Q=Ud2aR-9Q|apuMSiBtO%r}ZaJ?@yeuV$)>z%$Zd5#?=)aWxArH zOjmT2>57g-T?;&v%)AYCwf|U#BT-lTk7dHb%<0=|(cqK|GdJ4#vkL}yN4MS`-FkO) z>)p|5O%$s0z>)p|3&Dtb^hixxJI7Pg2MHjWlHi550>4_QyI zzx>AazuX_M#&wtO);&6*=jmSDUhL$~<;|<>x<~tX^n}Gz?B?O+;>#iINWOkJgV>b+ zvx-yPw*GC2qjFS+kzp7=oVB<(vp#%%(dpXXzsxMoZkC>x?d+g`yGHohW9B;Hw0kyi zB0U>sZaHj?Q|j3@ylu<|zV)9C^H*Hdevj!qIybFs-}ShM2HbfpSm+!(c->)r2S@vD!D#p|hfYEf@8{Jzzuj9(w>wSW9G{6w#V*kMajw{`8i*r&BU zZa>C-#Bs|yx5F>}{O7pyS@)#lW?p}PbTy#HP z?RH;cT*GnUb=3Zews+9YJ@+K;?GE>M5$o2uq;r3LJ-zDv2)}zfVGlramM}C+kIPfy9fFD^6?7W zdx3GcxIK>tuX?+$Fzyw{d0hC9aRVGTcH`IBs+dD`-4ALsf#T)!RWwY+j8ydI8Ye$Q;>_m{N) z&c+^Jz#Ef4fSJO|>oNCXrF{>XE`@=P4&yEP8a*J9j$zRbU) zWGa2nVt%K2WefAucOK^deFt+9#_ws)VW!ac7Y_7c{P#Nt{Jy7gcs}pLVcxgmwaHiD z@VuRi!}C_b;r<_u!?=Smzwf*NjQcLmke|b0+#NW~?-a~k zURlE2rM`7=nAbnJQn(-Q$6;RK-(v{d3BSh}t{47}S{N7p?phePHRk`zGF*i9f8@0g zt`~lHJ@jA3p??O4>)nsT^)7RL_(Mx3PWr`zfLSJI9o8z3<>~y^rIt-S^_K z{%#!huW$?u&sX@J+wl4czxx>;ukibwA z`tW<~;c*PV*B$bc=7-GJnJ+XSYTm;f{*KAkTz?%Lwj2Jw2!DrcAW0&oT3;9=30p2laq`-CWZZ z`;xh+^Y&SDMyKp!=4t*CM|hl8;V_>G^SB!khkGoATN=}8n1^b*itJC&Lb4*WtpfjII+}{87nEi-(Shwt(<^f%|ubL~m zWM44nb=E#@PU)Ea)cf7f^aO72|K?FWY~L~u>H+(@xuz@jC38{d?X%{LPT9xI)9-U$ zxV`_I$MvZFuz5%i+7Fl;x@KQ7mvzxTZ_eqAeaf8F)5D$ltitX6Uys|5nn(1YZt9w@ z>Y^^_j85z6_jYb)N>AeUer+DpBlbh)mTuZN%ynJ0FPlrcV4pK*b=p2@j_IlQbmlXO z+xxX1vmY@J>y~}fJfQ3LRdYp`>+B~X~rRM%|m+7 ze!$$&HT#OWtc&(}b53XMQ|6?eezG&4Rk*!B>v8*0^N1d@A2c_0!@g#&>Y^^_j85xm zK1hVyozmlaOpoC3cnz6bx@q4q*LBstY%b}7ea@WKY5Sx({KfS!pXTEo59q3{=z`Ac zv`*=%$2!+vrN{KBZs|c?*ELzq#Mq+a#5 z&h1Rp0w>s=1;II*%!=towZM!Q#xip^`_2zR_O^G9=9>`s2;X&nFsZNecfEs75kF8sPpz& zb4I7^W9I2W=Y_+3Cd}h{)PC4Jqz80ES9DnyaoAqooYNWmlsT!VAL@)>h1>hP9=9Jg zkLV%$L32|#>}%$#F54H)1)a0cnA19GKmA~5K2v%UxA%ARm>#hoGPiWozG1HGs(sm9 z(gpjRIjfU8rYGOnnb(9K(Zjlh!#tbj0bRGRnk%|wUohu&);?`c>6rc01MWY10*Bij zGmq+F`<8i7*L6*obWvw@Mu&gAu6>+-gZE#L>rotTf7m>v2ki&U4PCRZn9I6opEu`p z#y(|E>goGCx4R0r_g_73KWZM)L-vE_rf%5R%vD{sFPaNFXP+^rb<%$NzRrB6^dxTY zzveMLVn1YV>85?dT-R0mvbm%S_BnG_r|pyGn4W5O<}-=g$7?-iKVlx%E&HZbkD!k}m43&gk%u47T^{d%Rs7 zZg0Xou1D>M%|m+7e!$$&HT#OWtc&(}b53XMQ|6?ezPmG@Rk*!>>v8*0^N1eQOrb5^JAljfM7 zy0bH%N!;F#^@twUExd?%H_ZdOZeKN5bjiM8&g-mw+MLoc`>EHvAL$7kZgb!l{oY5)!n0fjR=Y_+3Cd}h{)PC4JqzCN>%ne<$ub9iaXrDLd zbjChqPU`7_&U{wk_WrHM?MKZcddPmz+|&*Gnz^dW_C<3+=j=1)v`*Sj-`<(el%B-l zaT_;}=@I)Ob4xev8|J#M+Lz5GU9iuYvpQ{`G{^MRZJqf{;`V;8$LvSU!@6bPG!N*y zebrpiCHsOoue0`Pb4thTr*3sW(-XM8|C>j3OAqP+9LCknHC?eUnTtAapEYN6%06bE zzQy_A_I__3*Q55s<{>?3KVWX?ntjDw)6rag!~IN8 z;P!rR9@WG4E%Trru&?!Qu8&=A@p!zSFP5iLl@6ar;s8h#s;ZG&gm_zGklKvVGB9&^h~zIjxiS z)7N$8Go>eSnE$wWOpn+PnOnMP-!Rv8)xK;l>4JUEoYiUjq&cRiuI?p*-u^L{-q~yc-+R!qk7oBWggT6_H}bjSL{pX zqR!iA%^97tkC~^hc3!x>-argUon?;(LQg^>5P5KoYd1-b>_1Q zxA%WNZa-=s(L?rw=B94g*UVL2wlA6sda~ZR-EkalcT6|!8|J#M+Lz5GU9iuYvpQ{` zG>89)Ot_t?D?7J4iQD_F9E6#WggT6 z_H}bjSL{pXqR!iA%^97tkC~@0cRskiADYMYsQs{cNDtZ%m>argUon?;Ugva5C-wAY zo!ei9+xwj!w;wf+=pp+-b5l3$Yv!sh+ZW9RowLuF(>iHCeQ9StQ+g7I$7$R=rbq0D z%q`utZ&biqDn&g!&%(j3!MmvrVciQD_H9$Q-_EmF5m+TAX zyw2LE%_$wTpSsxnN>AYMxQ&@d^{{=*Jg5ik>*kuS*q6*jowv`LGdg7-Gf&r?7jEzG z=5al0KWrY-gZ2aFhOXIH%w=7)&zo~PW1li7_4GxZ`K-e2{a=sUkD5pHko};!sT=k+ zb5)n^i{^sP*=NjYowT36urr@2J&D`!@>{I5Xo<6rTpH;ZM|Lbx4QS*o%vL7@zb;G`9uIjRV(Ol3u`;0lQllIf+bmlXq zCvkY(#?51T#D2)!(oOq@xvs1BWphav>~rRf$z~ONlGmq+F`<8i757^huHC?eUnTtAapEYN6 zOi!QX*%!=towZM!Q#xipby{aWtMmkJ@1N#TJ#61H59$H?y1Aw+_9b&s z=k2rRj856d%+sejFC6AGVIJ3`_QU2OJ!n5*Zs?kQ#az}!`@A`)GxjNSQcqVp^I3(% z^Ej!;?MKZcddPmz+|&*Gnz^dW_C<3+=j=1)v`*SjpVFDnl%B-laT_;}=@I)Ob4xev z8|J#M+Lz5GU9iuYvpQ{`G{^MR>pJt9#O?iGkJ*oyhjq)oX&%sZ`>MI3OZEkGUT5vo z=9G@vPo3<3rYCTF|2L27Vf&VOP!HJG%{5)IFPV!vZ=W@1bjm(vo<7NW;r9M-9@nGx z!{#A9Xg^?X=$d`ST-HVVyg8>c_9=5xPoLPC&nn#B|Mj^2sCh&W*$Ks=DM!hm(3+zu+N#ZI&Ggc$Mn=Oo%u}S_WrNO>_^PQx@F%q59qpm)m+gf z`+_;Iv-W9oO2_P{j&?uO6S%$qn@9Dqeak$k2kh(Sny%QF%tf8I&zdtjWgjz7ALYDo zd;d3&>rwk*^N=32A22s`&AwtT>!N+$oYNWmlsT!VkL=866>jhUdfa~0Jfer}2hC00 zu&4JUEoYiUj zq&cR?j_Ay11c%3MShwt(<^f%|ubL~mWM44nb=E#@PU)Ea)Zy+=dIGoibMvSkwr`mS z^?-fdT+BF2CZtv&jaXo53Y#!2s_5DGRhR9H=7P@IXUu7xw4XktGoL9vi5G?Q zeDjzdu^%$Gbkn|JuIs9O*<8{E`6rc0LGEXI0*A+K%si@x?OWzSJz!rq*L20cWG?Eweb$`ODf^gt zy6C)cn9qcHT#wohn}_tE{eZclYxWg$Sr_f|=A6#hr_4z`ePCxkt8jb&*W>o1<`F$) zKWJ|1hJDRk)n)slxuA3Q8FN}E?WYgu%x6kZ;`aV;9@8WCL*|xl+BeK~U9~TpOS)j6 zGiP<$K535Wsr@_inZ)h=Uys?3n1^-CzG)uNb^EHhqD%G#b6#id)8>?p*-!1~ex@gI zd;d3&>S6nqc~B47*UdFuu`ij6I&YsfXLQOwW}e>HdExf{Zywj9_QU2OJ!n5*Zs?kQ z#az}!`@A`)GxjNSQcv&Gna?Vm2;cMQar;s8h#s;ZG&gm_zGklKvVGB9&^h~zIjxiS z(|dR3Go>eSd;d3&=@I)Ob4xev8|J#M+Lz5GU9iuYvpQ{`G{^K*p);RJ93Hm`J!U^* z9@Z`Urg=cu?W^XBF4-5%d7ZUSn^QVwKedz}xbj`kEF6*Lw-kj4J`;<7(FUDH)v#^HVz%>|va&zRFXX+OPtXC6~}5{K=Ko5%Es{gAn( zoAwQJU03bP=8`Vh=ge81wojU4dTO`Md?s;wf7fI7Bj#b|^HXU7Qzg@Au|$ zJ!(H}9@2yM1LlUV*;mYEU9``eb2?+6GAH$PzB8XyxV_)&ar;s8h#s;ZG&gm_zGklK zvVGB9&^h~zIjxiS(>r(OGo>eSd;d3&=@I)Ob4xev8|J#M+Lz5GU9iuYvpQ{`G{^MR zPM!Ho;`aWpTlP)!fUetD%@tj;FPQT>Yo9i!bj*HgNB1W^f!q7Jc~lSEx6Ffjz`ky- z>56^HT-15{tU04o_A&GH4$cd=_jB{O9?`K7F52hKIi0ajnUi{Y z`_6n;;r4#6$L&YWBYMbw(A?Aw`&biqDn&g!&%(j3!M+jizNiQD_R9$Q-_EmF5m+TAX zyw2LE%_$wTpUSzP=?UE4|IMR%*uG^R)C2Z)b4^$5OXi}^+h@%gowARar?+ulxV`_I z$MvZFuz5%i+7Fl;x@KQ7mvzxTZ_eqAeaf8F(_44uvkJHOe?4wLY97%;_Jii8ZrIn% zRb93(nhQE-pE0L((tdhnXFgMU61Vq%^Ozp7A2PRe)4pM@>#BX(T+#*moH?u0_DOS0 zPi@ti&m?Z||9Z@R#5}B9_D%DEuG?45656^HT-15{tU04o_A&GHa_5D^d?w7}denZ{JfsKh2h0s!v#*%Tx@ey_ z=XAzCWlrkpEj#mBh1>hT9=9JgkLV%$L32|#>}%$#F54H)1)a0cnA19GKb`H&XG%}v z@VJee$MlH(kh!Is_6>7gSMAH@k}lZi%vqhbPnu(TYKzW%CUJZJ*JJi0=3(8kZ<+^m z-M(tB=#qWGoYz_Vv^k|?_EVd?pXmwQ-v7;`df2{Y9@GQ&b#qNu>`UgN&f90r8J)6^ znWr~%Ubwygo5%I2{jhmR584ly8@gs+F_(4GK5x$HjD540Vn1YV>85?dT-R0mvbm%S z_BnG_r|pyGn4a3WGoMME2;b}IG5Znoux{Bm%>%k_Uo}^B$-ZFD>#Tj+oYFD-sg2yv z^aO72|K?FWY~L~u>H+(@xuz@jC38{d?X%{LPT9xI(;4T5+xx$HT#wohn}_tE{eZcl zYxWg$Sr_f|=A6#hr_4z`yoNNg^RRB&H_ZdOZeKN5bjiM8&g-mw z+MLoc`>D0vzw`ud@9*YOJ#61H59$H?y1Aw+_9b&s=k2rRj856d%+qT*FWlbm&EtC1 ze%L&u2ki&U4PCRZn9I6opEu`p#y(|E>gi>j`K-e2{a%mTkD5pHko};!sT=k+b5)n^ zi{^sP*=NjYowT1`+L_Okp2Y3_-#n&A?1#)P-L!9*>$+-RHkWk4K4;GAw0+VX(^G49 z<}-=g`@bHuA2AQ>mVMJapbI*$(>kT6)^NYk6S%!Un@9Dqeak$kEA}OGQRnTm=KqJi zZx4^EI`F z$DY!2Y@1fwa;j}s^<<_S$=|_3pLYf_cJs2|aSGluvL_Fb-rsb_l&)aGUVCj|}UjL$F$K zmEc0bLcu)2Y{8K{ZGS&dwM)T4;m3vU6WlKRZ9;Dq>=1s7(Dj0=gzp!+Sg=s|ZlUu9 zvxU!nyO^JYf=XWWp?d|l3co{W?u$cvs{|_q3k3@V^MOn!TWFWy!5qyW z0@BW2!9Kwqf?EZ*2-XW$3swMWzgXynf(63Q7dlT6GnGpJ;B=kte!;y!+8Gc!F1SPZ zy+Usj+#>vTp<4v2gR(14xzUTZV~Jd zYysjgr&{P$f_~vI6uMB*E&M#8vjsgxi_rCg ztAy_tx>&GK_->)|1+#@eGEL{_px_V?SxI8c=nBDN z;TH;BAeb-wY@uC(Lr3ZS?G@}3+#$GCaEoBQV6|WckmV^BdZA!}@biVv6LbmxV79a$ z!M#A*84x-yxI_58LT?k?BK&rtTLi0xUm-O2Ib?fSDEtDU-GX_-cL_Z*Rq_R7e)bAI zC>R(14xzUTZWI0%p*sXygkLT6D#3+<+z*QRa|4-Pp3vEXBUzfiAE?^3U|g_Ia66Fk zw+X#futWGQLe~rW1&amUg870YQ*?R<1&4sNKPdEo;C8`Y!4AQ8!FnL$trD91OtBn= zf(3&4KxwhKB0FA_6mQi&|3uCg+#&p4p|=Tc5q`VSErQj;uMnF1j3UXbg~Bfo+AWwT ze3#H86D40j=4Y?agMxA4?+|*s;5OlJ5xPULMflZ1uM*^bTC~4V=t4oa@biSu795$N z_4fl=o*}_O;m3vU6WlKRZ9;SJOvdXFev8ocf~$n@7rI!mQ21`4^98eoKjPAM4+;(e zS*}5$2L$_szg_5F!L7pY5V~EkUihnot`IC1exc9>g4u!qT|cNdWHBo)*elo}SS?sA z=oWMd4k5CNFW4*CAy_R~Ea(<=2@WA2ILwL*_6l|gRtpvjx&;9$-ots^M{u&M6wjN) zr;)E5{5t*xRuOoM5*4#HwS%NAq^vZfFJd%#NM|_L*8+%mj6KLgUlGhL;&S^O`5(Lyj&a(Dk=5~ zMBYfBfX2gcywLXveKhh<`4l`?GTe(FX|oURWYHfHIro{P{7*vjdL`YB`vSukgnmqu zuH!_1A}$h!uL^xH^cc9$9OJV;VR%g9n|+AS22aV^5D^{}x!GsyIc?kR*E{4lJK~q19oY5fIp|@B zy;~gi{^*dO;*h(7%PV}#Dl5x^ZQ<6&S}ea6T(T_K6uLPfDDw-wPYa2r~O_7#hLlYP<)Yw+vuoj2j%4J2tmPnXNp<2d=v6{L%i(V2~9$Xg+ zw`oajYp5n15+QhPO+3ayqd8z=n$^^xtU%~nu|lO0YHe+9)rRUKEr=a%tz8dXA6l;v z>4sFCpd#CvwJr?JYimjzH{zI;5+YA333XA|T+`U-G9^9VLCaG?ydZn^HErM}ilk{)XIoQC zE6&4OseRZ%%?H~WZV4sXXbpv18$uh%#5vJ5FHykol~e`SwuT@rS#eE8)p8+lYBkqZ zF`5BMTPPg7xw*AYwE&)Ei)f3i5yD;_>moH&X7XrwL7WFouqrH~ttoNbXgfx+v_Mrs zQpuQ)y5^gkf{o2JFewFCkJHy&tMay{XAXrU=NMHp=q6Po%zd?a&8ehpWp34if^%)zx6FO zxG*A3H#aoZ1%qX!mJkQq#GYH2e7~T{gFq1_nG6O)^|&-@)`xTiXa4#mQnA=86njFl z%=PA&$a>DlPeseYU;uvzOqBc)#Am(x@sAN%XBGG{P=`OpWuB8V3ObXp(jWcPPS@6~ z?ETdCcgG|7{+>&CtQodrRkYQ+D6<7bC1uWwYlo&!m3nX$YuaPz3QaFGbg!n14PCA2 zN<+73`g%imX!-_2$2A=>v@L5q#Pf~H-yI^yX;U2S)~sXPg2*=af#!xfcc{Ig4Y$Tf(~V8&&fM%1 zO_1wwOl~neufl{|R=6g#=S|2vW@`3UXw3!}Q;@C#y*>M=xsF|CUwIvkZZo_NJ*NW^ zZ5E~n6^-c<($17Qw+ zq=!f#T!f$fd6sS8UKu>L)A}iaHw50>(T}uA2c!pGj`N8JCL+lB7`8ynW7?f?1C?sDUYz~Z`>y+V!c|8-Sa_LJ`?#t!q(!0{A&knCElbp5qo@>MJ`I9@}O?Z}_l zN-~+QzczKscFeFt>}g8%w??E`>H2GqbFqzc{HzgZ@2`zbW{^L;#vXBCf9<`h(%(Ir z+w~4&`=kFnwA4Kzx9bfM`)Lk+cy3n=2Z8ABSc$uHV7fPYx!YgcHpAb2X!B|Q*sbW{ zXTAc3N6*4P6(cW9}f6?rr!v`PS(uh=z?ASn7(j%``A+r&n}C;uXElr-3NwE z%d52JRqe`f9=&XV#{Vk2j>igC$8S*kKLZ{k8Q|beE{mN+SZLN z;pX#nH{M1J@{+5i%pRtqJ)NdT73^GGGt$mZ(`=ySs=^8s|h^SlN`+nKpnqvuhfzYRo_^ZdKeokDLE zdIbmHn;B_hmu@RJaEJA+`dK?R24oKFvWN=b)J%d;H`# z6ZM|zc~@!tb0eLzw_;U+&ld}z9E0qcQD#A zIa-lz%g}5qL*4QAPm920s;B&*KRRJ}&X|lH>}OkhG~3Ep^aI&cu{uv~ZUhCV` z>Y4u*&fHGcR{srF&XBE2e{@%A)Lj~FpIjPku}Uwcgu+TwA<;jmdIsw%Vd;9;=Sm%` zA`UOYoqi)zV--ApBa`&vpSO>PN^f`uGISMG`q|z1qpvA$QT$r(b>8c}LAkZZrp8?U zSk5^U44oVEPWHz>bk*t_E`S*9MQz#&3=sv*g8cyaY%-M@lZouNc1) z{HpN_;>Wo4_|XnrqPRS{(xE;psu(}=Io}b%kNSLvoq!*Ydx6EkZNU2{g2s>huK~X) z$6p72OOC$*d_ayr&4M5>uDMU}_yq8&!{ZZiOq)DD3CFa_;>U^qJ=~M4!i> z!SNjY&cToKraV3uzbZLi0bD7^mB6j|F);tzaa;`iG4Ma|V}5x2J^Yv-9zTR1^TXqZ z@ne2?{C)fw_YvR^@MBya{}4aM?=ivc!v9FnjF$|E{3pWC7Mkau;YGo?qFk;S zLcb|=Sm+&s=L#+qEETK}91?t6Fc0U4;bcMczI%btDW3b)BU-JFX8n)hDAjX6`3zsg zZ-TnI6lwiC(c}Yo?9r2jvc#^lB_Da3HAa4s$mO|WjJ!(ZJkP1p-zst$rx_FfJ0j=! zjWVIp`oAMh`ZGjxym6(4Bl>;C)RXnTvNZX<=HEq+^{9e*ukm%_D#G=TUn71KKhXB_ zOi7I1($1{Ar`$97i%MHx2W-1<7=0Y8VDyFL_3|WszZ5<5{AT6TruR0E9}_*+w+hDI z5}i-lV;de6J*oGx?`hDx7*M5s$$k=Al{)o z8-;EKBFt(4;@o-afVdyc;yf++Cjn`PV`{WB1&BvI&oJ^p`c)vx5cexj4G@p2v#!?s^-F<_S1j_yK=hfj ziZp-y-yp=bquz62Zx-KkCj$q7a548h0i^w(0^u^?VLwHh@1=})IS@sh#rIa2oOM2s z@z~xFW}S(Dj0YaWEcP?_%kc{`U!>U|5eo$i1l@x9f^4_=%V9rA&@WglxKOZAut3l) zm@k+om@NoU`Q$(RWesUMD=ye8*dbUgSS;uk1gQ97Alt5a|HQdd{wL=Bk@EobA2IzN zA8@Hp|3`)g@ykI2GVh0<6@AkW-bFchrr+KqwCShc5!&>-XF`|bBj!H9_GTZSo-4HJ zAKw?+^y?f~!Jic_aL`VFi4upLeUUx>E3jmzd2FZmIOu;I>NPE5GA-KgCJ zFcpG1i(ngF0?h0%WNpogfzg(=oMuxKCc!lugEfuoFt*N77#m+R9RoXv(jKhA20Dyv z9kk0NK3GUajpW!;ZHaJpJdvd!Z}v&~+ECLNu}z4>MoV*xV{#izJ-OY6g2}u$GOWv> z>7?0lTLxGtT|CYjsTgBsqFMOF^fGi*nSx6yeclx%{$NRYMey=vy3{D2lkfV!8mGd1 z^a4FUjroS!ww7Q`TT{Ams#UmdTyFdjI8McT!g!(nbS*JsS%&7Y1b^teRmgOl>LYaG z494CNZoKTn(D`=|Oh`8l#G3`fHn{<}p#ddNRr8P<3I=55hJuqe^-x*JgG{>Kl%vAfw)cw zpUb#@Pd++z#J9$Q@Z7*>2QG2S<=puka>PLm-1l%4$@a>P`3NUNy|*V`%4MX*&iG#& z$yNBj_3^*;ae$YRzQl0-{{L1V%n={bQ-vGZu^c9tXqz2+Uv|Wi?$EWxp=WMo#*T?* z?<>i3i@@~zN$37FdVH>CcqoltvC_iWvO{mYa>;E_VqsoHj=n4RGfObe z!EQ%7&U)taKEtmadgJ9M>86HwrhXoAl^@#^PG4n0#Y2b*IkNx{e`I}C(l>hMdlHkJksI2evp+ZHk9XwT=o|c{Q8Ww(ntc2wjh+#| zVh+TP^L&{8Mv>4!``xh4MJ9C}9XU|a89Ci?|)aE6rMnGd7q>|dSzlqvtDV@-_I zXv&rA&~x^~Zi#-PL(f@$lmFQcy-dqrDCwMU&cCz5M1G;ezO($sPP*rmVzHO*ImIt} znLejD>#suMdri57zE{u*OC9AidZr%D`CT@Sp1Iyk^{sU189PR9(sy2urhU-g;BaBJ z!@e0$FmX(N>l}LH<-_FP#5ei8R`RjDq_QGd8Cbf^TeWh9&!xx`--@b0sXku5%(ue# zS$&Lyz_QDiTf|CVWtAZ+E0$bS<*Q7P%a>J(xfQ<33S(}C@2cfj`braKm{w&K5|^lz zfn`g}kYr^=!j$rOQ8`=UtqhbTge5D=jNwY(imL)8zOv;dE(|m^)r2FhA#dZl=GKNV zwlcO@u3CK3)8^vGBnfFlTU#X5x(vSUetvYK$tyz}6@_nr8fqGsMb@tgwYpkEHsVl!fV>ZkgK^RjMz1e zm8JwxZ)<_!P!+zWu?Xv+GK_MzS>%$9;Sln`fxo$HHnKbxfzm*2Lvw8nQ>bcyC_%1J zp1`8JuDQ8R4ykct$WY>?t!gk(r$EvV*Eh7SY{54sAy*SVvXDbvN4A3MveboI5xb?e zxh_&0s`Ii&bP*Hfu*Ff8qvfUihNZT(ab;^G0cV7uilWb$3!lH#pw3NGS16Z>xjZbH zxqQZxpDvo?$vMBmFrK_ri^r9(Oe0^LMt*Y|`Ia>DucncIFOB@?Y2?qQk-wTo{+BfJ z(KK>1uR7lOIZax`c=CB^zQ&&yH8W z`_jaJJB|F~G;)4xf4K6UnnqrjM(#}`Uy(*$n?@c^BkxWl|JO9~@1~LWrIA0KMo!SV9{O?ydYrfUMFx8JLGPgq^d5uWeHrMz3B64j=pBQ; zY;6X5oD*N3f!=k{TbO}f7xYfcK<{DbP0K*pE1HIYk1D?u2uMB!W z$UrX)y{}}TM?cYy4D_CaUPA_Y?CVx!pf>~8%;F66E{5Lh4D{-tH$4NryP1HD(EH;{qeWW2opC#K*s;H(0o>Ae6AOED&+sfGdAP@14#P6fsFsA z&@TfS{{^83fQ%nH;nqlK*mSg;}&_d&I2<39HIIBG2?SSfO2{-F+RFbMRUE?N$?+T0b&X? zhwH1t=PZZotCG)kRc`>zbyZ1oJyqg<^bN3;GYDJ_8~~EP9T)^H-(6;PfW96y{pKjI z5Tu{+G2nB()Ej|$!ataeJ{$CYAoT};^`PTI_W}z*Zxgy*a24=q@QZ;Bz=guk2cm9r z@`OH!f-}GSfyzD*?K&qebT5$k=lZ6Uw+nI|QxrX?7^v(EKOabYT*s992eZUJP}v9K zy3UCU-3!EdQ|p#0`@&xZL>1%|1FL}xg`W?^b)AzZ^uZ}w&hK~`KQ7n{L=khg0MS-* zI)q;hWd67wDfJ5l>8Fh>=WyK{w6Pqn!$bKXkmq|q=w87NAhM8C4?GiCE&O62(_1KX zp5Q?kLlQZAfwa&5pZ0g)Ukzw}Z$`R9uo{S{Iqav=PIHQd?*`&J%;EQP_{%ytQSzxV zrw_>UK|gcK=|7I^FlUR<^}uzY*-uhl4CMJ`e@Hq{@F1>#9Oke;qrE{OpZcDG_KJn?2Ce~}FZ2kmGtvivv^NN>2R$J4cEK$`gq#-qoT(DQLL$F$~SkNu#5*)%wRPhCS1v><*1&amU zf-b=!oKzKGuvf4{uv)NK&@Jc^96}*ge8FD94#8@{VnMf{OK=D$RmB(V73>hK7AzKY z3%Ue{5Lv|+>=o<~tQIU5bPKu!hj5;7m=zc773>hK7AzKY3j$QU*AbcDS+G7BMugrW z^yh@$iuz{wn$SFt47~rT_-GFdoJSzNRcMZ@lXhooImeMn?+}{nE|M-r=fqGha`yWS zO(O3==g4rO$UD#(Gko62(b+Q`Bl2qHMvH4(Xs!d#Fa_n{cOJDke+-j=9D8?*{!QRf zZpKU3i~h|@8+k>&P`^Uz<3-V5EAk&xj`(IgdmD7A@0a|aF8XFX{9dtd#y{tZeXdK- za0oxzGvlYPihVO*^_tiplKfmL`rl(@gcHU7s3u*XlJdso{B?s*`+pJnH^e^ABg4&N zze3I@o^h4FnNMOr&iH2j=3$c`(MMmaZ>beKQ~A5q&fN!Ec4DCi_dvX-;6i&zDW9f*kRZu_PNdxLmWTKPbY!!F71If^AYbNFU$|u$!Fkm z8s%m_<7+sNqzhq}p%(Q{x>S>{QAwZI9m97;ZpQOJEAh8zvFjF6H6l0j#lI8!RY~w2DX*DNy+q_@eseO~5z{mCJ^w29&HP`1&}Kez zRN|ZYxmQGP<|~#9eXOL<^+jmk%x7`zRH{yC@VwdSOVD2IG~b8q^w%BquTk%I`C5mZ z&oy@W7KgmUk=_>_^s}fxdwd?->31FWb~@6lbjamCEwzLG$dR6`Gt>|ct(Vnr=>P=J z9y;^bI0?TT8x%O5#}FK}p=o3VIXSSeC<*jiv89fZd32(}+P1c`*(xT9Z`Dl_*Va_9uxwHV!EiE5S7ZY!(Y`Dd zY0L9WdxHfnUZT;FwQ7FhqM)~I>GBmyLs{NO9EBF%BmIcZ%go& zmsI)2as%G^HbtwoscXQ>TjC6>oN*oMr9L?8dCLNy^OaTwurwzH!qaPYlA$uIR_?S+ zNvp7Exo|96UpFLGv3$!`mLr`iU#Ut#<M)Lisy*sk8 zY>mvuO|%UgQ_jAPV>|ygZlVR)n5GRRu@bEyi7gkNjh8qnHl|dsjUyFoDoT z<62d!dFphix@?$-uW`A6v$PgW*TGnZ{so8jzo<8$7CBv{Z zbW5;l7>1>xeOwb~QfNz_Xec%-cBZ9C)5?`LVa#G3@w%=H=E-N)Zu!o-w$c8XwJX(n zfZ2S8b?ZkH%pF*3xM@!E{~>w5DPSA~L*wy}Ln-F>IVk4U~cB%&Mk@JQ!6h!;okp-D2C?z?E~duSR#=*4@G z94Z=Qy*iM8^MD+?QqP)Ng)ZWFbiHhyx99Vt(0TUzw^~nwB4hTV|8JXiD-#h zhW1lsQUQoCtt>jKJhQfNSgZs|>yqUWla2qJNP($?duW{6H)Wt=KZu z|H-pudAXwJ%cDc((F39w-sJr+mhq5pU_x$pH;$0Dtwh(G^=`Z4n{O!E2TD$5QWnD( zj_xvwi+0`i^6+JW&L`c&XJUapjuq|v4D3GMgn#|~=k4PFl*&L^EHoI1T|8TtZqMY| z5V(9r@03ROs}%>a&fe-oyYR;@OMFz%#q@$$*LPnS%LFf01}@=(K9NGT5^!ujO)2)U z7x_5b%11N!{f+qN?fWMRC0@aBOM5S-@|pUmwMmXLo)uA^fSLc=ywh zGyJioIDZrUdsL@0oTKS1{~p!F^zr2BXlT%SwMvP9ii(ehdwZTrGZ4)}L86lai?Sm5 z!zWpMu!`ak`WHRo1KJ}gFao?4LxPfE3jt^>y>YbH#Bq2xe512t2vx3^PCU9Jtl zRPpDFMV`RlteP^$K7Az_WY~O+{0@<~LnqaGeDu3ukYV~U@i|X$IQevu%j46S_#Ag< zI8nnGxf#Fx^f>aRY102}8u_&%=XgBAnDprf!%&G|s`V8AB=Q=_Q=PxdahG8DB7UjP z&u>M}iz$`d%%?<=vsChz<+*aa`jux(*Ldq4)*oUwH9BhAp|y_S<(+DE!gGZrVAc^#v5sLF3eSl?+pP*l-)8rI2xh&n(`Wll(kt(rdUsZjwL;=-2s!qCuB^K# z?HS#aV?BB3yocYhqQ`cvg3+_Bdw4R^tPwqF-zn{J&CZex^pvlR=vl7|CSAz}%R%3p zEYXv8pEBLYpf@7*BkdoH>y9n&o6vhp^bS`J&H+B1f!+nsdr0);x=5M7>!8;!db~bV zFy)nf0N8%Ip!X-ys}VKpygAwr^?w5WPf7jox>3Q{y&}0?Q2$NnM?|03kqU>=pMh&O zF8aK#lJrxwyHe<%@S$#}B(c#rmM1)?wT zcz}4c_M8el6F37%yWJO?yiGEN5i zfo>pQ1sMM{;Hf~)L*dv{jeNqi@@FBsg=YRq58)p%F4!yBAy_R~Ea(<=2@WA09A?D@ zdj&fLs|AY%-GTrWFMvwpJej#K;84-#KC(vS)Mp6cM}700@hy~tw7DOA6UU^@a|R!< zNSph1me@1*L9P=@xw)@#?P}8IKE6=o=Dxf@4p&-#kaGk^GtG5{~mw zZk|KV5PfssZWr1-=WzX1>W2}J;Z(_wxlca<9#~eO-=&>qJG0YU9rRBeH2pd4`pX>h z*Bx^9qjr7Pvz@-jA%D*izu!UQnn;TOO$Ys~L;o^|ywj227ajDI4*Js$dle2k?9l(Q zBR%v%N%^J!EuvT<=AcU)G}jTf>&t|b+MqIsPv#ry8p7BkR83Q8CN`Pez|A^u#HaIm z5M3q~^d_Q7>n7;Q!lb#DgqAD@!0pwFf?R(<%<;o_teP0%mZECd-WuRe%&VB`2x|&O z&D>xE$gy)V*yz!2Snd00KC=(j*kxQ$fV*~b?Esy!%8Fj6)XvtQ@aruk$LgyT^m+=; zElSnIMAGDz+M6aZ_oVl%VI5-S(OPa|s-noWmtv?YF?GiU9PE=tnzpS++Jxl*?8~yM z4L2j)&{P?APL0XNq=^ZXNE0?o@?t>(u6BxrT&1yKQ`qsA zUS;uA&8nEpvRanHv@$Gt8sb_+Kt=M+N(bluMa9C8 zOTPMmcrJ3az#g9G#)Ne1!kWp1X54=m+D*YU$;X|fkZ%5?Me5BhvBb~Z6~_yURCkie zbn_p4u4X7!|KWp;a!OVe=Sb&229OUHF&_~df%f?iW{f}PlW8Pn6m%wmL%BO$)mfj} zPi+jtAL%}%h^o>tg>2DuuAw_L&F^VcXql??`Fy3qRxQ86&=s1#&d|M@UT^3fn!eM} zaZTTA=t6D(0YeXJ`OggP*79czJ*4Hv|IbydALK`mE}mKms`7D+ zo?)%fB|_gK^fICGUa0ixN6)ZP=sSg8C-i+n-zM}AgsvC*8KE15{)5nHGs^z^La!H^ z`y?{lDRjQjc;8U^X9?XQbh*&YLRSmjB6PRVtwMiQ=r*B$D0D>VXN1N$j7slSq46BA z=nsX)h_9lLlI!Yrp-&O|W}!VoV_Ze)mkND{&=o?fLfigvc3O>!HZ?cZhV+_G>VBXf zm*lBK-5NAo-T56fb{og`v%E`a9W2Atuy&*7@BxJn8GIho!>`4C30;z_B@&;ka+Jb z(q(XIL-pZs3pQ|U3KgjZmm1bKV2PuUTSs>54dLq=)?uwF5-!DXH()DWtiu#hOES6F zHiR1M5)v-fltRMfu&9-rIbV+=@tB2V#udM5UNO{iQ*QN81e!^QTHSp9mS=GuyX%@mZEmKes^4xO zOG&ARB_&m{>#WtK+}N%=jFcG_Nt>0hbmFbeFjrfn;)PoyZEO};_Y1Y0$fd4pCs&;% zIS))xJ>a?5)-*I?{V}!d7;M<8Kqavj&-_S0J!xYPl$K79fJ8qWf;V|aaSjul;|dhn#P~RiyH%vz zSDO7Td}R_FOB+Utoux&Do-E&1w|`##?{(4Ji*XlNKuW=Jxb?m0YujE+<+cDcSV?U`_-&*9Y=BwmTgJ22?_ zFl^eN!%dsT_^-+%H(!1tI$-=aZqH75r@*`7 zf1ZNdlPv{M<7K44rWU*Xf1c{xW48%vyo`t+jPZR*%GUpctaFdu3aHc>Njig;lLtI4 z3bX@T_wzr8>z*rj`R{#2Zx)UAvx5+ymZ&d|)4b)Y;P`9dw=n;12>ba3lu8Qwu@0ae zgy)y_tnUlJ2ZaU>JxT+qAK7vK+82y_)o>n^hdq{W+~(8$JuBmn z^J~DOr@ei=bdBo-6uaZz+%G@rk8K)2CZ;kIGfXB*qeJj0DR4S6B%LLz)bQDZTgfOI zXukI`&V#806AmtLe~WD{a4@^~w%2&0Pj&BWpW=gK$hF=3HXiMzYoQC|##n_@ht2_o@5o+%Lz6r>L5B`Z&RL3T*+dNBVR{pXAlubq6v; zpPkc%J9#!wc9SwsM?~w~g+E6x!Ba%7bT&Mb;^E5!u?wN4m>@5t15!dIk1A(CUKTxM zRA%gK=Gi|~7JWmpP<_~a7jAdjk4o(*Z`*oS)r!gSZrb}Sa|L`#4}*!AMTMz>GpeFe|Y#F^Lwv$!P6_Z>p?1Y zUOd|sK28*t@ZgzI$uA+TA+oYyHl;m~~PeG1~ z_QClvQ8(`@p}By{j6bP$Wx$u~`7y3ae3+_5CK3U+aR#KA9E8s`D;UPeF^8(ccycoq zIi8%)zYOEaFW2I6l>XY2>e_ zkq@Vle<1Sl>WB004C9?YcN#grn?GFqi_^%t9?jw6^F8ly^0jH?oWDF=e7XuUj8{MZ zo+iHeK6bqN`&pX!^p{{5Fa8T@aT+=OJs8HTpV=ZGFaPsI&R#B+KirA( z@-bfg0+H_=C;nR^=et@ee?KoD(-0oRFO|RF$0EN2@>KCR%X?S(IC3*ydlBj}Rr%75 z+qnO({gkBqDgCxek#<%FdYlJ&`)}#(-3PtrGtgt5^<|*dHXx0_fe4 zf!=k{s}MbDpDF9F3wquR>^%&<&t#zYBJ`$bp!X5<{{GkW=Y!YK%NgjEL2qXUdi0g~ zb_RO)Lob$r-jmR~N%Rg^&u>F-O$PSp&*#rTk81|Z%|MUqt_zCoe zGSGVkdb=~wn~Xl@;SBV+-s+b`?{M|3)?3ZM9@krK$UyHw=q=AckL#_@&p?mst)7&D z9@kr)kbxf8LV4@m^yiK1t^O(lJ^ErkB6^3bXRf#UU>bWI+j50qR0E63gh_6&W5lN`actWHFn7eM&IV&dmr=;h#vcR6^x$4zn6BO zgnmS>uRBEDX_tC$L+{t3$NQxU#;z^>85k!t{UYz1NqP={;bGYHV)*cnK#X^K_5m@+ z;n@vb3j8+E2fPc2cM(qm@O3C>KVACkmI7}8E`aIlfYkE>eZV3h)8qW`r9jRjGre~vyIhw6Iqyt;&PUVk zPl2?%9SGl5&%XdK0Codejz%EMaTTx_coqNyU$9LUchD}ZtIK^Fr56L6IP0t0+4iXcx#*R<&TU zpj*%-IE3>{y|`enV25C}V6mWE&?Pv8^Q+W=LpXmbzF@Clhak^8 z<;8+-L6_hVgetyZuV9B@wP3NJThJvqg!;l^R$Q=GutTs~uvpM72vG5QQI9z=VBS9p zaQ$$g zy-e~G75cZ5pEW}7hA#D6guYVf%Y}Yh?4fT^fn#^nH{(IGBtJPKzenja=eJ0H%=>tQ zLYw#1?@4^~etMV4&HFU&B`Q7he)%TK zCq;uqt!0};ABXsM`Bv!I=}nIKEQeiwn?oOcVUnEV_ICZJ9Py7v{n_Qt^|`+8(C2!8 zcKzQu^RuUSxG_IL%Z}-e!#`<(8jf9VgA_ zDoTmfml8au`?!)Q2QO?vhefUuv|h+3K_^yXu_?i;UoE#rpKlDYi|ezvbSE>D9jk5H ziH`-W2z0OCa6X;LYF(%5QA(s5Kyl5F{sD}wM-n}^~{mP{)_4HvPQa2cyHxphjCv+0y3<AUWpFK#&l*%i&!ANw440{54E75jbZD9Y~0%BmW@H}b*tNk{_M%lF}|v} z)bR0%a?sVzx^{+YS2mYjV*n>Q+#a@lNn%d4ip&$O7A>50j>=>yQ9(TvBmQPp^pWVXzwjGM^5Q_Kt} zx^nanwiHujXBoD^9q$59$Wmt~Ay1hdB_5j{vZo=OQFPus?SJQ1p=kbsh4U5`Ubtu+ zf4v3gi@Tor4yQiJU2n{~VR$@o)#I7L<;D-;1pM|UJuoP?_0OzZ&G#S%L*ubT`Rmah zL#E&1e4P*E2((9&+w#==_7VH*89VcoHGF$~j2s9^b}c6T^^(8qsY3g-#4fYmH{ShK zSOt4{^cy#%^Z(<15)8dkw>w}Dk8Upa@zxq4Nm)$i|2J^7GUxJ3tO~rK(Vhtq*PCM^ z>xE+&DtX&FWOKknmAkeeAK5^fquy4~p8@jYbeh|v`E_C7JUoAC$GSL!uS@hO? zU-uzj?(#pEMr-o|wOEa3{spkukKrMsUZQ+`rusW?b-NsCjznCuqap$#uYKx7?1u^6&kC1ovv34W18A01-u+D zmgJg(O419VrChy9EoO%GmAG7yaoXt|nGnGmMYp=kdO~|2XA>%VzAXB>uHV{0SsdvD zsqZJS9#bFN5FE53*?T7Otf(co@~rx^&a5n+2EV?55ywb-q=dL@D<#6?rFnyM!%g1{Bp2n(=Sxgi}vPr|0e{DTeR&zE5?Vu(@sO|}cw7eMEvjC77n%HbJ5dE z1%81Alx8JM%c4>PwFh;cR~Go^yyTx0(d#`i+x#NSzb!DwSCHF%A|^R#Wva2lDl2;4 zq=8aD&I`)oFn%rKGY(Y`y!^@NXpeui^Mi@4CwGoa%I#W!viuwp7mM1(xAFu0*1j;cJo*U@a=8mfj0j>} zj_m9<+2K|W-i}LAEPlN1+j3Svs|6lgTr*48PON;Obm3{a-Bf_PXuLdn(3|`C<_YK$ zZVp6WDeq~Sph{d8_4Vl(qq|V>y)=uJ#`?mah38#abeEE01;DIP* zEsF4T%>g&}iw}G>I(pzB%0d_{+=ZhQA2})J-z~vE`R4QCPfF> zf4%R2;;rmJbW?#px^gi0r>&#@qdo~lBL)7^UyKe!UJERa6yCht-&2+|F%T_R*BUNJ zdqbA11P!qu_wK=eqDXP0kc|UXx7~3Rn*Ig3-9LZ^%ge6lzynag`eU4N*6W?&`#V>E z8~%Cweuw|V>v;Jl>iOrKjYKs!4Ob=$-rsw|zTs6c^;gvF7*j(u#f8pZNG0VhK;_b8 z3%-BTd7Or5g!VBN-6P|kbBuRS)=`NvS>B<3ct2`KRDbjr2}g3?@G2{CoAblDwqD)$ z61P{FTS>p%vw1H_RciP^I5gnA9Xq%}*q zpeVhFqrX=6`J8bzo->dGl>B&D4CMNr!?J~@;8aYWiDYIf<B>2MC6y!A1>kFiFhZxCL~amOl$V;oiS7Ez0N)r;J& z>C;>l%PXr~CCzoAOI+u!2-UPTH(dgmQ9!Ev&(PvA>)f3SKIe$?-(%Aq9X034 z@;6A~pHK$eeOBj+A<<)dQ6Yuid(c~qdk2HG zn=$FC^N$;dNA%c!lI%JBLvBYq!%f@MCb$j=+n$v`G*M3p@N~Fl@Qn`dot|TbKSlU& zL5cDA0Wl@x83djN{eB?Mz2^}ivNQ8xAhJK}YeL6>FyUDVJPCNE@Gl0UPCe%c|1{xG z7e4poWjcQZGM&ePOy|cy+J6AZ^jd(Yf?p#v_f;g#cM{5%2%ZOYgMXaRufsTL&Tmrh zKLqawvR*m`uNVGep}B6ragc9BJ0qS1#JN@L(Gg#ptk<901tfhh@GKzbwMcVa2jZ_# znZzC-u5nKr@C@KpK-!%qID*WP=KfEtzej|=Pmue!lHUl#-^_D`J|2j11J938Sr|j` zd=p4J-9S`<+TZk8-~!OBR}T)VY~cPhyJxNWS5`mp!YlCb3D(k&le{xb_UAh2%N%r~%~=vyo-9(+sYyG} zSi9v=7ZYyy?wm&$XqTff7R?B*ZLBe0q;pbEFY=(KpzB*DD;RE939HG2`cO?>$SJ{$ z!dzyyzRoG(@*Q*48XjY1YDF(Zb0kA;XC4A}e~%E|EfF3XhX# z>ucJr8T=p;#DlfAk7YfY!fW;M&6ub(i=LSR=-H~IsWWCvvw4J-2CyhuBHhG{k}+YQ z?YTu}dmNKLT;KpFSD$=6?}K~E5zcFzzi2*YJQ!qsvBriq|C8$w?9al5g;0R&lflsF zrq#R#Zi^~pI9 z1os=Mf+Uk^=OOTX!QhrohxaMkGa=J?2qwyTgaSl34Y&{wdGw*;FlhyT_P~7dhv$kT z4%X;&Ri)m6f!|l-ds_YNExw56N4fcCW*~rXi=+AjR({?)-F#OIzS>}8KhwtuBHq6- z(&3N3Y(~M=?aoR|M#5JGqQ4GAU&I~>>Z5K|bN(0y8uchLlE64bZrAHDYWB%6AC!{6 z9eiuXW0F$+DOf5K*y2QgKKmdzdt9`QFVwgCd&=)t;{*D`Ut0O065W~?TX{DIKDVma z82xDGWJ7kK_JY|ap0DWX^5}?>W618-0!JLRYfLd}2)n!#oB0q7eRzgX!zjvnv;#e$ z#hYkpX_m-X6zP& zZE2px_!h=hqLD%D`oK*=q7yKxbq$(y{~e|dI5^Bx@-19EkF#b>`%+vkE`X7q-8_@? zxzDhX;%s5Nmic^?POx&j`6!5*ItgqwMKgR9sL7x(bu`J_v1!72n3#YL4kzM}Pjwjg zjR$&GPkQ`3ByP2I*q;OY--kl~x0L{2&-?TcIXCCPpwR$w6^Koq%|Xyhs0jT{)PEpR zHuV91Zr4-bbS%CWXEkzGp!2E8kFN&9j6tb_cB?dYv7p?CWIqb6YQvTxOk~8vM=1@| z=^muU?Ds#ONR6MDhp&U+5P1E+u%{6#$2pil`NfdGMEM>i*W+VqME1Z}z(IZW0d%8n zrQSyT^Y(EJP7U|+soN&?D(SQMuNq2Ok8&^Xe*p}f81qFrH_hpPQStOA=0*Dg*yIOa z$oDfZmRb~>l|(RHe`){TB=#w(_rBl=qPnA4!-r!=?Rbx@b*U$wg@p>+To+t$K0lB! zp%DkE#;wR_;PYgvaUbI&!1t+C<5s7k-7(C=FO|GfRWSOt@fmi-KN3CGg9;8k z=J#3relB{f4;74Fiu6B%!p9%$@t5(&efFaMj=_8FbHGpG(c}9-j+^|eV25C{U=WC; zXRZSBef(0P-GaG5#-AuO_sz`#{RWWnUJ#o52$S9ceiuOcL!2W# z&v{UsN~rO&avCA7KzIg?Ad zxt`C)G5)MTKYTmwbI@(jw99#Hr_XfIuRG}9LD{bVyhHwggTC59^ZO)w{1Z`rJAJW3 zzS%*)>7Z*J_AhYIJ_r2;2i@DPomm(hK8y1DX>YchJvIZ+r z;vG7S*JZszo^A91yjqSPB=oUrWJ68kvdH>196ONLPpBoleD#L75%cCRnNf0@;{xf* zQ4$N8>h(tTqUnaG6x3_5@pIQv;DebEC6y>)GO=Q5FvwNmu{dgN{f$AcVTnZT?z*hA z^3tGMNYW~uW6^R`Xp>F7WVy;3Y>nd&tBR4dF1bA?>moI+X6bQt*2B$eC2?k_t-hw{ z@P3FFrd|(x!MueRxK)t%^_JGAbnok{aP7I=_#vS0JFFk#Hr$LD+8GDI(CAau`}!2c z&D;;Mkr5G$y*za0H<2;+ecj4oaFb#}jsL_wkly1wIGizUWfwHa|orN`3|Mf%~w_jfWPFo!a03S&#hj+@e}} zKRx2Wmo+@*vsR1X4%xZmSc#=OhL7ew&+8?9#o!XPe z)qXC8c6O3>Vx>1a%P2R%kIQ14-FQvmL{&fU&ih$Lyd~b#fI2h70$3!?-&4Ui%5Bi2 z=V08tQc=}Q)y`Y9UEu<#+(T1%h_T+fsB((3)`oSjv^N0sZcC+i2=U-(VP2j$Uqk;5 z(512x8izz3|L3cD;*s-}XI!tTG?U zXF(ZWFWR0hmX|Mku5d$Qqu1*Lv8(fJqZ?e>PLkNX1TR^MmF}Qq7O_js9fiN4M8*b~ zPbKdOYpvmBz3J0wRh%f14`Y0d3=L}&Cy zsG8QvMDGC`tMnyUn{PL(%&FaEbG!KvZB-gx_k$eIlRb_TR}7aDaAaZgVq}d=s@seg zc(Ji5yko;xU_`4b5W5*?0l{-d$+2ZtIl1i&LW7yjvDJR6{HL{FiF}=;{H($0#E% zSh>Jdd`JiVv1_yawUZKk<09`!_*02a5#1clE|*M-plYcWQE1x)>&y9=ROY%A?Oeu&U6{Hpl+(&Hso1h#5KX0=Qf$gI@~ zb!kF2uF94+!;bU7yKogngFf&U5V^L3d5&Q%G0^XVf%koe`-PUr9M|`R#z|Iz{u>Oq zMpa;6XAjQ`ZS4O>Xk-6nhd$l-8I1lr4t+D9ZSuo?P8d+vDx4&=$=_K*oBS;n+9Z3W z&}|WXaog6m7E^%uI0{SruMcq|HiF4g7bfdMtxYwJdX_ZYy0H;^5wvoZdupgv>?2Jz zk#K!;D?W{@bFFJ`<^ud`Re!TcJr}5N3Dsgp04U%ks-$^6HmSmn10h$f*GAN=UE9#u zpgiT8ct6&pufbjHdjJOL5+s|xlpW~WFi6}R>x|d=7{EOU9ZdpTH7)FfE zN<1VthTOh(_!-h-n9t8^m7t2^A1s z?3fWKMG?sK*R<8Uy^ZV8M#J^%nJkzAwbO?>&u%Itv#-Ri6E<$8dYgCa*Li3rg}ItC zm#rleKGz6h7$d(<^T(BcLFD`%Kh=2jCDM`XgI=of@_gwi*cqpaZ{Ag$XB(P{HV@ z7*~G}3fupo$EjH_N&1d)?W^(Fh_@Y28Ia?xULfksvjE6()N_Q+15$4k9WBR4-vr`S z(enZjr(k9rNcs1HIY90UOa8q;>P3a-`cjnF30)3E1NO`Z9s?{C{;|UU03AK~TyKi@ zhJ@ZH^e+W}07O%n^&k*kzULkw?cNGx{0%_HUnw;A2PJ)(;2A)iidn~M+VctOjrH(n z!QTK`z9)gS_cI{lKMZ6#_Y41v!rubq_;EXsc#{=0Ovw=JhoHt;5{2P$;>p<#pJe=+ECqT9{PU+GP{j(_NxH0+MKbQP! zjh=EK?OX(;-W(v?<;hw;b0(1U4ikj`9x9LV{{Uq9ek1fQAkWVuK*s+M;WrA_0#Srn zmkQ1K1elzKbExd$vSOH(t<%jK0fBU~_6zP691!di+%C9HaEoBOV7=ffLBHTa!2-d2 z!EC`^AhMFxAy_R~Ea(;lD7_`D9~97xzpWK|Pzv^Wp*iWpP>LVdl`{Q0=LI;AVeSJr z3T^uJcZ8k`WH9q0=Dxx=V#YV&*Eq0|t_}zNn1lWfli zlHES%tL*fT9rR_WOS_!IM|PUWc6x_{W|&al)_IGop%L!(3%US);yX%wa!Qg^NjAu?g>84r67 z>~YOZ0cJF0lEt@dWw~#Kx5`&aH%W2PQ=XG52WsqHZ&O7#L79;-51yPlz=pCm36{p8 zgC0J=5oThg482<`Hw8)&eQqmF1;cAN|3Do_!gDbqoh(mE2(FkaO%v_j_{w$C z^u$z?DY!o#Zasx@<}v1DwFSPcSbm3XtsBzKWAI+#a^r`qrR&zF!fb{^xf^A5%io()v!l73T2-b<1~x_O6o$ycw`MKA2( z{^Ht-n-%W=3`r)_%{$~veillsV$>t;nSgs?y*VbPn|ByNJ}!h_JsxiSsC2|1<9En> z@^?0VM;g?;L+tjv#D{+PtTKt3s;3*uF>bklA4p~e=o*;CA+f1}p5i<|chGoV9m8jB zVjn9KU*U(34s^ybwljgB@o5wMobPtG3md3tT7P$mZ~nc}(f!Q0b~FrMi6PuTt@%hW zd@;Xe^ooLBDPhje^+-muVwKr+W9$4ywsVt_bRRofvmDsPC%-)UEWVx|h(6j%oa-^uN|3$azy zKvcGgS&R{7+vpeV6m)KSaWq^mdTJAs@C<)#1jFZh6cg2R9(RT@BhzZR34CyAA1O{w z<+s?D2Sc`hFwvhIM!BcYM6=Y+XX}u!{`L6h?c;NnQXB47vlCartyQ}~-tI@0M2=NL zy39pOz=(%WO89ApbB+6;YD{cE)+fByIjcaU%k6p;$tbtRU#ZV#-=hO-^mp1e&(2qs zTsI|CZgm2_t^{wHK}71tz~YGWpQOPw!0cv^8exC8RKEL# za>7=)&dcQmw61s2p4(o6t7mp@e`s)8>*tJ3^%eKa=q7aC-3;^ncjBM7kG>Ylt?%c_ z(k3N+0{>N}#(W)XETcC6$i$9r&BNezeqxiF@U#A&wnBgG%3^WRD|#NEZI?&?s_aFd zP}PkEG`>6hfSFRN>G;Yl)|G>ZB3;JyAsV><`au?h&nVVV$&Rt8T~UiX3MbAjk@=@yIc%vBn^99H+S5SJ>qYB(kLv7k7y zAC^b=D;)?=V5;zs#CA)V6db^63vngl_sqIG81qqmQr+quqmt`3HWfqFuzeGzd2+kI zgi@$UQ@zKKvJSbfcyu1NGT*?-3Z>9FG9z-GMg2Xu*|j#e$)AURD+kx+hJS;fFTOT+ z-!InY{w@w{mvC4d?$MlWfv5RtiB8FC*D6om-1}trr7>sepz|z^@%!X6N-a-HBH;GM zz!s1cgwJ;@69u@0kc=2rN=hDG?Lvj48gyCF}Nzp%QNbx)GYKCf4X@x}!Q z-q+)2<~)rzF8G5C^f(r9pXg!iMF%r}C**A4efUL0PtGg4%jEB-smELLR?(C5n^Nyh z=(USp2aZ)R_T>BHbHO|Y=Xg-`c)pYL9OH#dpT2oV%YL~$|0)=}wsq?3pm(n5u^lAo zImS6v`Jq!U{=jS(N&10K^>w!@KlJ_}dTbv_dbafWZvL+5v7IF8r6|`7wAoVe2UeX7 zBbahY`m69fjWHY#_ZC=yVT{iJ=Yl>NSOk0n?T+I~F9OlVJbQrW10MmN0{jAy@q$2( zuW>vQQ9Ty{PXK-j$nmllChPU|2Y|HuV<6L|A2H)|oDt_N4 z75%9|yi<5S#7$#1;{O?lXLHXW5Y^=2qDB}C@_Y@5YM6Pu;0BGJ>w)J$z8r`@PbvT5 zZ=UeE{x4aR@UIZ~E{xEx_bnj$GS5qb{|3AO^gTedJr9>r!E?Q5HIV6Z1t9#*S`z`KB_0r~yq=|FzWL3xGXLf{EHQ%3u)7zwu(K|fAd=~%27uu42gYnf8zKw z<>r2~49BERVEZF&`q9av-!2N2+0PVH^4Mvv zH*Tltziy|mci8_2gmyWd!|Zgu!yaE{>~i*(cACd_dbT6Ky^j2Bg0fwo-x=BIpF7h3 zio-ru!%Nctu0#JLhko2aZ*=HCtFzZXD5V zrBGj(bFkAIT2+1*!RDqA94yQt(=4I(T(3k`1e&a`-V>vj7K;U^|8FpzTe}*^R$lJT zj4P%ylX|RojOV*jv-_^A0xR1Ie{+m=tJcxbwAOspo;Zm~qqKUI*fwfxt#)m957&exSMND+dbKpwwyupLAq^tST6>xN+S(-eNDI)AFZqML|QOv zopL-`#jr-SYcUYbPuf*tRe^F}5RU8XLO7WybPs~ZKbFK^*97+*U1X_WrL0#|X5N*@ zz8=>%5p7n-|L%UA@$UuabERPh@#EjHcH{r#`1jsp(2*jT@oGa)1&=@6hE&LO{Cg)K zgb<89KD6CL#u1Kx8$0HC<1NW2O);RmP73M9zxPYN;u0$l4~^*JU0d+bjOT8KB$MgJ zzqcQ)BNfU`XHe{Et{T5Kk3x!tXKX&#>U&fQzxzJq1JBW}EqF++M#gBq0zU@k)BKoM zJl`I1Fk>-lX*&!EE%Zm9!9WlOD>;M*g0gFeLX` zGb9&?>hU8af%IFZ zGhW#MM*jw8sBaGbt8%HWr;Ffc`R0LpVG8=!CF^^YKHdklzTP}uVjZ|1QPgo6HmE;P zp$*WVQ4f%+1n*P^E;I(P(=`$sF2F*Ti;&u1vXhh}O8H`&GA(16v1s1`&O4*hu$tl@ zu-GWh@?Wq@f+|FJJP>^~w`&)ospSe$e0%{RLz99yISJM-ANCEu=Lsg3+y7Q}?w$M= zk>8@1#j4##jpvfrgc%eheJN<}(;nIZZq)afO1>=S?%ed)gxs!&XeGLOds%dSTzv|T zbFsrXy2dbY`Ih-Y8@9SvLwj`B;?YW`{FZ(C*OOz0RLuXw-n+*~Rh)mo8$}2xY^Rx53_MyoBg+R|2SjG{qMu-@?2Vzr9aDluMYZ4s|| zzu%c>&Yp9!n=G}zzV9FJe3Jd1XXcq_p1GVk=R9+}$i$46n^7A~i5_c_7j=f&%@NrV zy1juB9)@PVj^z+{wp(0?p)C>o>LeegMG4K5bp$<_jgC@88)!#c1m0G*gHX#e_*FLY z&v57K++E7hB`WkY{5pghk;*H*DW)PhxO8ANIYkXZ*sD%TtR1jsj&tnwfNfYYV|~m} z6$y>5QI)a3VFNpc@SK2Sr}mmM?vTrC@wjfAJ35-FhVr_1E+wgSnYN zBx-%3eAo4gf77%UU5M)f{>CDd5z3^Oo$E^wvGrp7gj%9V!>HGRF_d%)Y_BL%^c@g! zE2ly?zRg1MH@0KGwoxlpV_zbJkK6~LT*sk}_S}zqf2~LRdPYk1U$vhpdUbEsC?&4I zuTrA@I&dN3_Lbz83T?jv`rCaj_d0o64=%(~E77g}8NIEFOtX8R2icrDhJ)ZB36nn$1j~iC8a2EsPxL zl+{)%ZSiO{sYd+b%cIF@Fo{1IpItw`S7N$el5k#rX!qmTv-`(T0h_U6Ulu(krk)6m z^t2ue-Iv$ChL@@S=iqHYx6wE}T0{5=weXJZI2EDe+@V*i&`O446N~j||5QP^;caw&e?^z|_r6j89nK3q+FVU<7F*l0?7t5A$TgNC$hb?bJlw+`Bj7*_1%V?%tH2z?6OzTrx7S18V^K zUx??kBj@^gvBYTKUd%iGNseJ)1Vv>Ck{fP=WYzVWtUZDr02=7-#vnLv@FBjTIR@LG z)A1bX=^pC_lU}6!bKSbQN^R_)!HaV7c3Su7#?6U(4oUi1as?!{*K3BW-3+>0<#PP? z`CzcyczU<_FI+v-pE#aBg=XXe+BJ2>&3Sh5D4j~+0>Qw-n^PR~i?# zA5q$~z_|LsY^(fn$iJlb!jQjuni}50s7^e*UXStU;T<)$6Cc7SyG{U4_H{_4!yidr zW~U1A4h6a6%{Q>;i5}CjSDGmWym>>H^`#>!whh8O0e{0&s5B1xCQnzf>>Yx1f1+-c z_Y@1BrP?p_DC!g2Ui+KAM1Zvk!;7KuXQFX^2r@MO+avsqZ{y00ta3vj8IjY&w08Uk znkUhM2S&L zv&xDdu|yr6=d2&BUg8l2AMJb%^^d^ut^)sa$4Io#7?RbkYB8=_FUL=)C1Bd8*1uz4 zK7F0TYp4o62pVzR-Aa=#Lu~vED)(UlK-I!40&2m=sYoO3Xcz5nJg5w;ndXtdhw zp$`W_x8MQ5;lTG$FQlIY;yW$a0z3w20r3}1;0LV1#Xx-O1s4K24#0IqOm`IUIMCc@ zj&yI}V9;Ef%JjKjis}3YxIge0Ki+8NxP#`|lCl&&a2F-J# zsXxz$=6KXYK*qZr$aviUmRKQp7Lfe?frEftSP2*8d7j`4{y^{?AmvQZbm1^y0Q5mX zmIwF8V|l%W*MU4B=i8H?^X!@49l)WWIsP>aSO+BEcYut40g&;}7J4-B0MG{k4+4IP z2Q|lmI9@RX`TY>c{JjcfIvasZho^}UuMz)6LUaB+iYOQr`V1iJgXgd^{vh!`2*~>Q z5<=+zHz4J;;pafmzXMX=lwcf4y%z{_UNpxAM*~Lyj{~wEImepy_%1R{xz7OMRmgEK z(#=Bi2~L{JEg8;tX3{4L&ChwJw;zz>U7w<|s82hP{(lA1BykfERT@kI3s7FPX@||=Lgp;0xLUPh8JT&)Rc82q-)k$;Rfs-EV;s1+ApAHXwvnM{s zEuHeX?!rmG>IvsM3}^T^JoMQf`gTwHA9%vsJn}i#@09&pKd*t)T2&aBO@PxDdI>UeOp^x_PcX;IW_vmwjC)_inahZBCagOU4AIDIG z@iLb1QP{_q8}Eo6e&(#RXN1#x0xPbxABURaOA}bOs;&0r+`87~;~9ui@zq#`8JbZ( zS_w4=y-T`P>A@FF*;k`RnTKAKq=i-03pn~!n~$9%Zq;)59ogS0SFVn{`(qvu%(WGpWTM!CiGI!ahOssu1KDIZ;D4 zT}NlUYL?Y<7vZ!@dcZ{`;V5s}kyqw{s{uxAKh)*eO_|K^QIPdtlUQ1_1S^YGRF;~q z+4)y=JHny_+0}yO#vGR{OVrN0n8P&=rS0QB9iDnb#iNVEQ(rnuNVYdpMWlwAWb33V zj;}ZuAY|C5SY=F&sAS!*ILo-n*pt%x72}{urtTaz>2eMuUJraU3;P22hr>HTxBDN} z;bo9+8RNhi8t(>b+yt*N%H=w4;->;|M&2I0w2Y-k*Kw0>_dnvgLAvdtR}&uI=(>E( zcv;2syo>8;|0A;x^SKgpF5YXMPLi>`dK!l*W&y#?mCl&&+0<_oUOw?&Oy?5W(>P2s zUTWxeh`fOiLV3o4tTflep2lICpak0KVf_Zv#e>*tElpaQM}?KVsbmcGUG9B}w{9&Dy867v@D;TDd3! zrzjqY(W*p$rJpSQ7)%p8?9u5eju({XO&Cfm{e-A>WXCB*ukw1o==dY!Fc@nqJ4$^U z?r&{aS%@kY6YI0Ml-xT{(p34@hiF37VcJH;`i_(zq?IY(H=5VGW1r-{u5|}In@jDk zlp1>xl0(UJ7Gb86KSZ{%aTkBLh1J3v)oYy&SbL*DBQ!u7YIU>aU71!G@qaTbTjauDLmdo_!AN?uXjQzk?Ln# z58;22@b7~=lYM!SyxojKc&7CXw@5hOw=(Jfv4m&SkM<@yzNf%-(LW!Z7ab>6?2Y|- zDB{5G^92vl8%~x<}h@Sr5t?d#{6U5ds$Ez;`3~RtulxyNg|#`aO*Q znjZK@g6D1g&k#P=lX6DC40iE@QC9Z}KkLoK@7QmgHj;;h&%7^ZDj%+g=;%RD=I46w zJtKTlpI!3J{LuEaUietA%9;Fl?D6fW{~@r~y#l0tcq@?h#7#i_72c1ZV?f^pJRI08 z{y!AF7I-xLF9uQ$?PAbX?H@w^V?pDuP}Ttyev0-;d+V#f;XvA{$oBw{e7_OozTqR_ ze?E|Q&SLQ&55#-6+6RPo+Aokl+UNfSr2o@G^LaqMZv#^PY9QrbD|jK0_FwMz!En|U z!^aA8%z^gIf1>c{|1OaHe+H8OkK(^c@V7wn-zoHufWtsrK=Lma|AZjNU&zn}p-*e2L4SSL7Fuvjo42vG58cO3u$#&KRdY16;3J(D*5Hp)=Zrk|$$o8hKk?k)06 zKm1LhO~1Qa_)R}MO=#1vvRzP~=|^eDByIZ5v7r6gGamXi56!uL&h(l+H0}vk_)k!NPX6mWw0GSHd7b<|bvPP# zVOKUT&;BRMh*iC$y1c?MU%tob^Um4W&K*kjVs{fg-C1uiZqIdB3EPxcnr*4Y?toaD zV3RY$GtP-l4#&=(+}*7Cs?kfiHAqFdYo8RF=o~x2JM4nWFsdTK(pFZzM46*;+}h|W zZNs&Fnb1d2wDI(f_(;F$46dV=}fel<8s4@b!LXeZ6bJ>?7F zAC7iXK3lT69RVF;=7SrWHZ=ZAH|fjOPI_;Dx4e8jI5*I%tDUsl{Z)*d=d?KA%dq=7 z9kb|kJ=rzuU|*#R@PP@pu0TC^eY@~d6VhHTkv-ZqIe-aQEHAuU@zR6mxb5&hSZNcu z7>$3h=)Nq&{PI1=`FvFfZz_Ur(2?(x@{Ct{0CwKkS)E2Qm?e=F^Cf`!m@s(`$udr zy;B9(Zw_etQVtUSdBE3|u=#6C_-^+SG8b0`BIQu3r+e9QD3gBO>yv|ot!Q1{)Jx_Z z-GWFtD@se1`Cr(ZoKvp;)| z9#bo|o(fx!xf)LW``8F+qPpW#W50v_$RQ zchCkz&w2;-6uGXu$eGKsP)F(M_WKa8|E?m>p(I)nr<;<GOarx@_V9?m_-3c+;fI zrr#A3o~?X;EaBPe=UoZUR{mW7LYFOko`h%1UsDg^zmf24`Qy4Cx@_Sm;k%12TmENB zcsBiT7NK(4!tapqZ0WzLL6s3D2hgP?$UDvV|{{ z@ND(}vmU~CNO(5=`@jT6mo5AR3D2fqO%LI}lkjZi|6&jE3t{x5%a;DRJ%s=W4eEr_*xxH{rU*8<~I2R#b_$Hwal{52qgk<~M z489>b@Nsj13Bos6;@k6(Ce^Dq8Oq~XKVyZD{jzc_hue)||1m4a5B7EJogA(v{3SW2iy9j&-cj)`0JH8vicdYPrSHHCO zjmUxTZSV~jzV7Px0K5x^a^M>Sz6*q}yYk~%9kX)KuK|2BbKtuNd^2*;?yLP}c;_ei_?&>WLzMtj5cMJIL5Weo}Z8P{D&VlcJ@cl{nx@&(2 z_kF+T{(b@YIz`@a=}zr_SLmU@>%sR`4*9qbd;=xj?#ksg@QoI}?&`M} z-jR>bLEcF4g>&GW1-`Nz_?Cn3iX8av1m6#YueK<4MOev%%L{(k~e{uc3X17Z&B z#2*3Ag8y~mUoZX_0?9vB{7Zn}2LEBev*6!X{Pz+6*ZXRHUIsFs&jK-@W#S)z)aTdY z{|oWI5;zI|mB7isi-2L^WFX=PM+0NPBY;uh{@TBg_sm6*`xo3})ZU`Fa&?@_rY>n z4=e%x5JAAmwr&eEJuP|3C0-o&x`!K>EK4JO}(dx08Br z6n~!APXAkhlz+YWbHQE({4W4f{#oKbS^PQZM)}+~pYr{{+2G%UcOc5=zUK7b38ep1 zK+1nu{O<=Yfd6VB<*yQd&f}#&_tl3Bo(W{V1%Rc%0YH`$&*?l9$oci;+YV$oJqBbt zzXdY=yMgl{j{{9iXNmY%ihl`^`8ZAd#{e;Bd?NQ1VLtfIPC49$I@+XP^Y2wdwI4Qrs_;Y^s#o&Jp zje+u?0>Z0sGm!qxK+5NS7W7{O#9D}n+>eCvYs8;>Hqt)^r2NywpWmF7@b3qt{7+Gs zl=Dv@{kHc z3<&xJcObHgFW4+tCpcHISTG>y6WoFN#AWX`!Dhia!MTFPf&oE*igz-~f%E>2-M>U= zV`oN?3O9DmYv95CXN;Y85bBY%u?yddav^Q(uy-P#q>Wv3HRO>tc0AhaNgKQ2-_Wi| zn{kjN+9_!>F7sRHN7~rY`r?|j8JFOGFr>{m!EGYn*zL!Qd^66pMf4xe0)hLM$TN2M z*CoEOi_eq%89VfOlAf{a;+dn;H+JH8MPFk#t&{Z4IM4->KQk`1QuvJ>@gIZS2ScL_cHK-6;B*ajGjN|7P6mHp#!SbM6v(X58pA(a((ISR&tys|*wQ zW*qSMqQ4o}lF(*ccM#G8yX`(f{+u*zOHP{ofRmo#3FkaODhS`$32I**B z{Z$mVH>mTVc{50mW;Vh7pv1p z<;!@mK+JWTUAH<{fGG{?WFqK>Xp`yq4jy`{xDG!i>LAncm@W&@Bw$DO1~6qWqb?w? zuS(nL$;6$sJ9SoC#?+kw()wJCI&~+Pt-RAy8eoQ~%%WP}iphUvnE2tCJv+SKjSDeZ|7ujQ2)5e&_LW4dg|XkNc;m zefoBYoL>sgVdfl8vTytJw4Qa1lv_YzFkRKRH zsli0;;kcF^%{)>Ol|H6kFvCO9v_C6XplOcLD;LnTvCsHMX}Z5@pmkc_k%nHQ>5~mz ztocg~JzdkY3_VxVWrhy)Rr*vLdWV*mF!VM}*BQD-$6syeI!*uB(7QCf&d@$BpJVsR zt7&GhMucwjuR+Xqv?+fU8m_hd?zWlM$-j`F4pwXhHln0$Mlt3 zuW5egE7zv!^9{XC)8#g;^{p{jEklbK0}IslGFT%n;T1x2Jc(|h z(ANrmvCuaP9T)m`p>a>D`uv^Hu*)lYv(T`IDf-VsuM(R3+SAnvy+`QFg)Yq3;md>` zC3Kz8X9<0U(B}(%rO+IYqq|CIOX#bG=65|^mC$z!eTmS25c*P~9~XL&&@T$TSm-x} zUM}?KLaz{dfGP!_56?Vx#qmeF8li^?{av9sPD%G2p-Y5bD)hNRuN1mkXdNs4J0H*Y z1+}$4;`DQ-(kh^?`JJG*lAd1`$I+2s@_3NLyd8{7e^4t4nfw>l_!cZFLplPQ5k8BS z%rC2i0i$9mL#js4C)8Xzj;EqJF3Yq4rR0(YDumY(lLireSvC*bPpfkn>8Ex;hD>J8 zC#X_hv;-!Ts>^(Q9ZP>GxhTbF`>0o+G`sz#sJs?bEG#R>o*DCbC?}&J3!)h*YQh(@ z$m<$JRicNBXRV%D zRXuN!ij&T>JG+|lL{+caYIATqTW&8qgK6)y*!lAo1aLlT#mQp=3o6Q&EU56&2bW8) zsEMoVis}V{MOD>0pz5*!cIAfMf?SK|U0hWjz}7SK(T3emtg4MyRL29-R=`XtLLwVWYb*4r zHa-)?__dWwaCq+Gs@huWu%P1702*@jlDNL)d9x%cs#V$HoKjLXOP7=f;#bsEfC}JT z+of?`nDC#!sA6$#0BuxfNy^SwbJ?W<-bYGhog}@|3b1fhd8j~>heWk5o(k5U(kxM3 zo2aRQ%J9;~>~ngFo~Rv{Hw&(O$>JKEnpz#lW5Dg?{o83ORSX9UTekV#qju~0Tju@U zJ1=WE;^S2;I0OjcgRm!?qQ9x-4(bQQyJWBlOu*ip7eM4V1aXdFL~xwo2*H7Z`GR{8 ziSc#{a=rlRt%5Cr>jc*dHVG~htQ4Fh7!e#NI6`osV7}lUycFZI_fEm>f?EaoJ;Ly{ zf=z^Xd z*);CrT5vcb3Mcv&@nsbEAq9KAztq^#<6PhOJQdsdf&biRAAE&Zygbyc$`fu6AKQvA zfPXlaQ#RT`jX zOW>&v^^95V!tsVa{thQRDvzl3gxRVlX6@=Y8k>Ln^Rc-)3+53%cUswgLM=z&S4F^P z;cC|!`;b7FPLZqMZvtn;O3lHOCSu(*SHX%V#|d{hF_1fshu7l28UO3l{#N%_lCyDl zVt`5pS@1XXLAwQmJ~vhQd=DkZ-E~rlwKxy3Ig%<}7fXfL;K0!)6^*eHAeN_p%xN!dT+D6k8*l*r%BDt zgKh03IiXB@AL#II{1Qn<>sJ-{{EgoQM|8^+_N2bhmMNo%DtgqKQlQG>TvZl0#_^(N zh*Dwod;0lr=tPpy`o{-`9$Aa4SaKMnb{rC|KLcWqhuCn@?o#VZ35cY^EjT0;9w@|S zwR6!EwwnK-n#sgEo{@;-7bD3O>ob;YWbN8qPbn_eW4JDit&VUYXz7{~9>@ARV$~@= zXk2Q2lsKxrOff?i>mgAW>U>ED`5Ver$cnYC&qLo>YV5Tza-Z z;Mok%b*(SEJ=d{8cpHh)xAEU!c6PR(txD+(Y_cD2@i%h9hpSlHcj8z__@FlOQHJ-j zB{@pW->?^YgBq{F)(1*TD*l~LOJ5N>aT1m ze?zz;*idk@HU5Cd3m0{^|Iq{t>qH+Iso%56-}r#>W7A6%s-jE`&>8Ck80U*0;!WVY zh@&>g(wfJTiS_Ld!w>z^;^N1ZZ?w8PR%K^Ox|%U$Pm|Y>T-;!>j?E7vC~vX7Pn6mK^sCI(OV7r1KM}%E~H|P z>4krD>p$Ec>stTm@=%7pNYWSK5v_&jq9a#tZUTq*Xi#r2%s1{*>zOdS_f#8>ozy2w z;JE2X`m9lPcIylNhB}p`?n2DLt$2i#nCD5%+OQQO!qz9H)`z9s;?O=2J+CdYHkvBw zHMG=vztsA7*!n7#RLqfyc~D^~j|Jvw*t+64FSQj$8&n3TwyKK5@$7?fjYGM0xAqBw zqsgu@9G(4pbcvyPL-*zZpxaXi6#`4Lmv!C+fzm_s|QnK+y|Q z0TtdcF=pLM3WXC(R^S-rWm=t>HIyX-u{gpP$IMFHu(d0eOxe+KBdz{7@4@6Lcml=? z%*nm<|112}nJ|&m2I~F@U*@z@>563II0vV_T)mm~?r0k*{bFR(QTlup3$^gz!}b*r z4ThuK47z&w<MwxfP0I^Ajkj-Hm`u`}NbG?i$=KnZgef`|-DN3uX#GSV#AHzne$GpKm@* z^4)CGvA>%=`^u9)hX414pZX|g){{=J?{j_c)PAdb-GDAgowcgYo1G-*yiz~qvhc_A z)h9u4HV~|ZV+0F;gE61GFA&{tumdj@&^!1d5Z~~@dx7W!gS1m)uD5G_L?P&l;E#9J z;A|ki)q;3UWRv-gJZ40FMM-A>oz4A<*|E;34oo3dnqNeFJWn;9ID@ zVF-U3NdNUf`du&Nk>+`m)b9cO3q2DSX>!Sil{_}t+vfwlzq6Q}dQ3OHch2xe%+LzEo zg2h0D_YMdG6nz$iIKTh%z(m^Ihp&K-w7I{}!!`bF$MqUcn$I66{WlLkm3D^z*28~` zhfaCu>pb#K^~m#{$H{XSoat@y&>wl|au3aV!JqA#Jv8V4I>U#1=*K+zFY@U7l866L z56yQKr+n6{lm59!-XR_u<1;S)g&umDC%xgG_%l8HXp1g+)WxY!v4?K;$YcNOLsIet*4#t&3!*Oo1;TI4<_R8K~nJmb9Sv(A=T zh}2nor%OcBPIcvEP{#ln%0j1_j;2O(RAW+pq1kgZN2Z~*G@F{(<(v{Vij7OhwChY& zYkJa}uOHlA@1H+*>?zz;KOpm$7FEr6nm51p{H2|EIMUJXPG@L5L-`!lbB}Lqm3&on-!ij%TPYwwRot~P0--$ z49GuwmkBO&cCN2toHeRXqkJ+xENVRy zv7XyWL9mmSjQ?B6fA(vU@)z;3ACrR-JC=s5KWmQ0Hhd<%h!^UJKfJYQcet^$*niU# z8{gRn>?PJ)VQY`#!zc4eVB82s{lT>W;#)BX0v}wb;a4%0Snn8%!b7mnbaw1-NGM_s z>~tGf&zWg`jAJxa^l07_^`G~PA5{PO!SO@tKR+^YI8t1I6gv*Z1rqUf6yV}Q`t*?t z^~o4H_K8TU@ErK7Q&oA?Wjop3MHIE3MXuGco!X=v&3pVIzQP^5DN_D11RNs*U?O=_ zGQILF1g-@m%4Ox~((-pb$4r9u77`E%qra)gV`c#J*`aN|2E}fOcgLn#ZUK`zCTqd>#D^!xcasaZ;K^M zx9TG8Y6AZX4Ng}f-$=v+{vBMZ2+9OL(D9YcGQ4CTY`d<4k%t1$(Vp0-bXm+wDI=oQ zs4U%9DNNBfDXX-VsEb%$6FCbJmhG4|4$!Otc34s{NsYrfnmEW4#-;XB+`+I@f%6k> z-+oRVdC>WiP+zF9>v=Gv9V zMp7$a+;?(+Gm@NB1H)sB#DCS_cmpFP7dOLjwJrvGZ_x`#HF?oMOE)BvAIUWgQ`YM- zIgmM$+@M-=DzU~f7PCHNy?%>Qr}L=u)gcSay;zYO%ZD#U_FK)a8u<) zl6v3=p=ZRbQOrwcGBL0tf^&SC%@PnL=FnsY8UjUxL4?`s4c!sQP%NENEZRQjHpd;P z`toItUP5J0brt(|-&N$+%i(AW*8rdH<)4j zB13<@VSLd2UL|Tl`n}`OJXNHO{hm7Pd3I>lObq?4#e)Lf+;n9K-Hc}mdbl|taEL~f z<4btLqt;=}Mh}kut;E`}455HHWAK*#0W05nS0$G=<;JIBxWRbqs?;p?dkR*KHjN}= z-8xq#w#l&4I2}oq>^n4))Ir)NU4-Z25ion{oK`WX?At>vXPKOGFyU3{U;l;1DWZ#Z zqi92&FE_R=yU=P}j>N1j^;-@`JAUS12;r(~UAoY5Q6zPLM5)tQsi3!xi;+l>rHyaL zS3xTll`?6!LIE_!g7)`t0sWRkphG`C*+VVUO#-4H&vI^`Mg1`1;f@ee5!gp5jSxX+ zCwVK?Za)fd+2fXB}VmF>ZUc+ zB6SlvLJv|bqQRaHD|*CwN`HzP^)zP4qAX}jp+WVB+x_!9YL23h4f20_kQbwwd9^nhQ@-PW^DPWHK z7PcPf^F4SY60plSegAX3Vo-^-69X3PGaQ{H6lqVGaZA^`DSEaDUj3RQ>domz9Jhl$ zMd`ueC>A@dd8UF)q8z78jfKX(R(@RIQKq7(uC0F0{{F__t4MgA-EB^xFB!kb-`K3Y z@eGj2uu|HQ>-Y5bH?C3)iSI;C2>&{hlHX&w>6SvT7;@!6b%_h-|6NT`&Ub}LkuDIyc zU*+Nce~3o%s6Y04wEVeP-kXu+iZ+biZ^aYyrI58<38XMuag(!OYJ5QrzqXJ?g`F0D zDc+~O6FDtv3*|i?Dc=;zdn0=66RVnIsl-c2uZ{Oz@}jMH{Kn)k`cU$ljW4V`5J|O| zVNHlhEHvfDc_dI6PjY>u)$i$>h=M?(>+!O&&Qa(I^vk-YbYYtaz43_NckxTA$`VB# z1+5`!_-aR=qF0q4ZqjLf)3}!+EY$LSNBNl+fhIW|Y>%*jAH0#Brc@i-Vg2TaqY*Nz zS~N1-ahtmtUj65X@dDQWcNiGa zH{K=iZmq*lsO9IV0;%A)+p9oCtj{ADC65o{F;a5p@wr z^~&vUdK8|qh*^}%PW<}gu5MaorCMf3c~ zgc`HAP?nB@s)Poi7M`Tq{(|npcsQPefrAX87H)Z>gqpj`S$Zk}FO6#)y_mZfDl9>v zT)ml9>SzEeo~zoYb8U7rR#-X`=*VCDoX2Cq?`57?;nZ_}u0 z%P>t2Wp@mk#?2Tj(;2!Hfvx-rwd^t(!pB|5y^+*a{UCwo>nWw+S+{)Oeq$0ph@>vu zcmKN6MkcIC=O(b+4i+OHyP~ zXLt0_`!V?OJU!zVs+-WKU*fcA>cT#G&IFArh;jxJya&CnBddJr3bh=7yRajL(ADnH z8WqZK!S+Sa1Z6-?+Q1|gdf~qGcnBUQ89oD2z4ldame)-fjO(Y;;tYRLbNoc)8UOL}7ur{GqE4!R)SdFxDrN5G z+&*02KO<}g-a4%pD~5?=xE>PR&0QN=o{L&9p$TU)vYhJq{Ls@0kw1KT#H_bs)~B&# zc$>;Zh7XNf(I$0q^37ZIwRpXSDk_5d(7?%fZZnuY@3BYSiZkjKdJyv2D00$}OO&*R zi_#i4cdwyJAcI+r=AW?jT&cxxqNw#UzK3A&S)=mGzP$p?7SGn5c-og*BZtat#h5jM z-yOICV%G7c)(Iunp86fVALPSv{MN+zsPS`c9lw{>(Sku%Nk&(Jj~MF;nln z_0Zq&DWoIv)<lH}r-LiKWHXZW?N8;wa%5=y2WyWcCnDj)+ zNuT*b^;>q8z`OzdjozpVw7V96!}nEwaJ1zU`$xv6QdE#Z5Rd(?3l?~dX1Fcc>ai?0Z`+Q2{10ra|KsN+gWpoc@u4c4y3_h44n;Dst%lcwbDxm1EhWm^*&5Li zWs%*$84dL-?!gS%3z;jJ!SIIKtYo4OuAr#IA))%OLaWY$BK`;3tnfWrc1It{UAi39 z3{Ty*kbkItLqGKx>;H4SX6Pny1JY~N&$*GNN$3*Cq`>yub&r0z&F*L!drZq{uhm@N zvbmJd5Hs2`)Cg_ANOK+U=31z@xTk$bJwGU-^-uJL5fJa``U45iQ#37QM$)E6+*ya0 z=Di~~l)AZ0+d~gF747&*2y}@61K9OWi zKAV_?p^lpNRTZ!1j7Q27+amjdBQ?8$_qDVGf72T%HgsF-Bjw?SNI72l^ERp%e;v!p zNBW$$_zu_}L4NT1j#HVFE6hN{=G3yhlH>~9g4#w43y>ZG*cb05Y0uIoWx6~`b(YN# zgIR(8hMRH0jsV4uK_{h>F>fX@N%H9@usatD4pZ$%C1+!JgEM!v`4rmX<0PfW9bgj; zKTG}sBul^M;bqwLh0c@#` zzD4OVuIL53vvKr}RIR-Tk@?CIDeo-a{X|~k8)#YABHh-%BQ^aDg-?P$Z`(eMU~_Y_ zPb(|LaPKz-J`esCJ`w9r5$iGSZ@<^fnyJRMq)7Pq(MH5nBoB|u@vp2nHd6j-EbnvJ z43EVF4zCINk%gA;ue+)4Bb^)72>5?#K2?oU!|{ zUWxM?U-hqUfHJZ2&-qIC$b=*7JNv~iFRttCAOBAJg9LZaet2CyGJtow*!a(vzuYma z@zrGmp$lHEj|{9D5J^p@jSvsaRUcTJIyZHUftBHewAA#BP>32Bx~|ue6Z*vqCiIUV zAQE5c*axQf@~2XvJPfn-!Z@t{N>S>EtFZxA0CODFve7_I^}m=U{v<&=-IGiT&|E(ib*sNly*O90R+qr)Z9{Y^IOfy^c#xML09DPb)W^~Fls9h4874l6k#mRmqCyr7|mya(< zHz_y%HpVJj-=n{XM zgpbJ*j*nsG=HmCj{d;wZzd*uiNXm4spQx90e)QVc@x+DOs8Yd?nZN9rA3YR7G5jC< zhGOrW@8zFd-)l9VGb7<2$A7u-vE3?{MK1a8#Q!$oXFFET@Rz#hT~m*j@IPgT*2Cn_ z)?3F`dVGQFlZ21$Te)uJjzsAm_IA&5X%+4*d~EmK$z}c;z<-1A^FDC#XP8%hANU{L zsrBG};o|p{2j#yF{%^{89K26l{2AmQ44HqG^CEcPxcEKwPWdI^x#c6R5AP%8OgU!Y zkApvdm*&5t2Y%Kk_maL+_~kxJw?m0fJ)Q>NeBtB$rkv5kQ!bSI1^CbXMC&23H9MFAr~e}w)5*(%%#JO=b%g?<`%Ea;6ww*rTQ{*BPrXbdIg_*-B;@D{=AfcOhW@pBSz7!W4^U|;e7;833rWfy!C2>pULYb?AL z$aEG9Js&s=^lTt*g+Wtl z5qup;zUP7CfsX>I_g&h*@MfV`2t7|@aEkZ`#eWEp>GuUvzg|F=&%1@1ehY}^G-w-; z`S?AM{HuY~w-Sh{k->`uX8?zQo(dccJPt^`3V4g8$i;x0Z)b3Wk4hyoGsy} zN%)CC=6k4w_XVQrgCF7f$#mZZ27tc@GMyg*DK`aVyzc^06~V)mZU9E$|102B;7vf>!@*h!KTB|w_y>Tq5q`M%?*p6!`ke#SITOLxft33KkbKVw zy-x5t!BxOn2ww_B7c-~~Nd9vre5%lsg+2+${2nUw03hS%0pSMy3mqEczYk>k&kFsd z&<_F`|2Cm-1Ty}$K)hNF8V`(t{wA;#>ookpDWLNNclmw36G86;QqHqLrgN|04}d4b zKMouRoC7=sSOgpe90WW8_z~W-N`S8c;T8NTkn$RUlvfU9`h$VP;O`gzd?4HXm;E*W zP9XUo1)^^a{tn1?{BxmK3$6h2{`-#5-v*ur{^Num0GtSV!vVS<`!$eqe+;DDl+Zj^ zi1a1EnZOxBhk;DDNNDbhPd?cPaL`wH?F5OvHdZPpA|sSU~1?Igshs z0$Kj^fhPjb7dk393>d`U{y_4#!*YK*XbvtE1J?r209FH8{#8I!WpFmI2v`a{8aNrq z_A>!UIm3X|_ZvW_-;Pe;1YjGm1o(U4S-`u1l#>Lq9;X9&-|YvaULEKxDDNe98u)7! zx)wMbbd}ItpT_XRg#NsbmdpLksK;wUZxd_-o(ca4fun(IfTbwEvw)Pth4@UD=MS(y zC%Q2E{*-&dD=f16D$_w*@DL*ydN+G+=E7iM^x}NAZeau zNO}v9a(NEVw?MBK`lmwwNa*hhy+Y_qgwHWV~Mr{unqF^bJ7j znE;aS5?~lK+N`1{0Vjh-->cpu0zk@{3uYwQyI3$F$Vl|xfgfU&mQaI2^(_+tt_$&P017ZN6V;2>;Jz-9kj@ z-w8cd=m&*<0Z_>92{b!MHzMprJAL*Iz-K_}c`oT8*)A8M$w6RCD;F`3t zKRhk8v4=1p3^(=-?w3K@xICea{iROg8+!!%1@asF!yhF5jUwO?(a+cyc1V0C;+Mj2>?7!76u+?t+z$P~V!LaRo|9&~cG3@k(@Aq6&q?3siQnHt|Im}( zVh_#x+$ry556%9|8GfaQ{?tPs>Y@MUp%3-Q&qsYY>H^mLE>)t>Nu zJ?Y));eXas9-nyP-{^^dg(n>E1TKAeu9{Qd3Qu}>c=)~Nfw13l#{aHI-U3fJo{cX4 z3qAZHPx*Pzk9pJ+{|rxkaIJ$=pHUwA=brRl@W}hnlfHNTZL=r*S04G_^OWB*4?lI| zzj1GP;@{xmr%lAkU*Vx|_V7>eg!{@CS1c~C!Eq;C%#?M}`%0Mn*tht;kEEi*|%QCb4va(_sx40Z#RSi!i1Up79sGypfM(Q?A zfi(&4>&7cc#1%_mK1(E>n}v(!aZ|S$p=l*LNJ~;HY3J2e7hzQ=c2C6;RQO|EEF_v$ zvG&?oSvJdJuLK(lE5mA8h^SV}X3NUvUsx zN|+T|Rf~1MN~7u;OImgl%k*NNTexC86#8f*oM^}Z}2Y4uJooe8Ip&V}(Y zZ93bM;%wE%F*OdUVOjJ%wELc#h)HOXEkK1S#lgzegjdP$F?> zIH&WFSg*}JZs(Q9%M#U>v+pg7l{ooZga`=kfB>lGtHh5KflFjh>zB8SoMJ%=qdena zZmBfaL{>iR9y+ZI>z8W~nPtuWU#K|Z+v}HcsT}p>zcU>j((|vGyD$?o2uGA!k43HL zBGxucTEUD=4Cz}JZNuc|9TDrOn03HVESTF~^g`6aMtjfiq-;zFn2E_AI}m_4y(7ul z+c6^~)QPzfn=rLRO;?3=Os0BVjH}lE_zATP#;=lqsVj&*mPODy#P(Dx+eTmoF{eLx zCJL~nmxEKgp8@t}JaH)aVUPCZ>*1D8##hdacSP&e=*airi82jd3q%7bT&^)VUuf9i zSl;-gR(!oF*ZExr+ofqgWKq|wBjaF8bA@+#A7GE|e)#F$%1`EcUj^(7|6lD#npxj)=Ds)df7*{E8POqcD~yNJ>9Lpnh>^p3qN82X>0CEG z0($C4wu)YL5|QWMpndovFzR6lg3cwfr+y>?`zamwo2ILQ5mGJ{y|?|yPUykL+JcVr zJ_vI5BUFt4U{SjA8-8yc`;k)Xsj&4J)~#62bCGD#3*n-+sI?JGQA0D+E9e602~BE~ zS*+@$@vv0QUJhB$ST{Y*Ibv9?l3qu_Z3N9aI`lcmV^VOa{>#op1gjhqlj}DyhR@${ zJG55Qs&=csrJWypm~7SoTdSUIwh|t#wfG6OMDeS+uEu?d>BN``-3Br7iOGu!Vpe=; z{+3?6sj)P#EnM_u30I$BUxm+P?Xg-7pjH6JxR~o#U~In`Ki#fV3}J=MB(=h$#1yvTjxwdWMY zZqRCJT}Zt#Yp8^u%7-*7K9QOgL^`!8}{>6@jEA7JKQ z=gTrHp7p-$JlSDVO*{Qi)&Q!xv}Pve$7Y5tmjKT+a}e=FwlA?B8_R;tR1Q%_~DZbu1Wp$8XI=$^}-rJP=sZ#Lw95;dX=g7!Ws zh^^^@a7{&(TgduH#QH4Vd;J6=aPOsO#AarTd)ZKX0ku8%r&)WNV#F~W;~yi|M%5U( zzkq&{%gU`62;#k_ObA+x@hM@aKC7?4R0;nP zcrwL*yNCGP_meJL`IJa_w)8KT@EXX-G*6P_!F0nlbSb|9cuAnk7Cu(OCuz1W@h|To zTrK|UM*fZ-((fbh!P(M}_7E=b%3bDx4uwwqZd?0r{o!WXVW#<%CE&YN_}EUBGv9Zf zd4`l5$N#Tn{+rYr9s~mluGwdDf5|TAWcY5u{{uPjZ3f@Q9{4b(?|UErPYWO0vvMZg z40;{`p7ncl{t?ysa-*ymx)i?Aip-ytb(Ts_7{AvmyXYQ zFO1LgTN(eyK)B!{AmfLCjDIk2DDWRB+hItbx8wZI`jjzd$gZvz=V3rIPWfs``= z$ae8Qlp;UJ>6t$JM24>ca{f^T5XQXVIY8rJP#KMZJytEqfi)bo~LyZZl1sF{}^uG7ox&%-Y@HXY=X-yN zZ{D|#5q@|pcdgLoc}(L0?`JfvkT&m2J8+FZ z+x;F_PMYn)NnZ~Aob>I;pObzbgp+Rb(3PI}oG<0%U+EL` zAI>(_2c$a%s{k6)(*v*Ca-NBqDYzq~$H8s>GA{c;7OTiw|<-n<$N8lY0)pg=lO7p0loUv3e`^YI%&DtM(jO)VHFh**coxCw?A)+-N;6i>iNasO|lrX#8Q zc?1#6W2N?H&i)3qRZOx`vo~_+0J{_@X{oW}7|Y(mD4xK$NRi9S-*6|g1n&WE@6`n; zX&gyLIYpi6-D~{~pO9a6u=O{zgG!FW?gUf}xzHmQVvM&osSR!;NqzED>VAe6iD8|V z`d=Y7EcN!b2i7Lq(f4=Q(M?dtN|C~{^2mwL=f-D_)0SxM|CHu>So>dcSo{4=El4ny zx{D(_YJ0PHY>PjX&>LxBCv0Qc=dL)7W%!auqK&U6jz%@~#fOwO?Op{@GW^avZYTb+ zD+306SY$X2?~VNsem*?0&6)~CkgB7ks>BB`P(lBcATYDM^|4`-^#Fipv<9hj(8G~B zn|!FH7{5x2$$@)6Mp!=!V#(PBk>r^?uPfdsQok(Xi~D2N!9#W8YWr&#fD6*rW_!Q@ zu`97dEH}M~$?=Tb$@^usL+n@XQ5cm%GJ@^Q3-{oAFP2(S_Xuw)?kO&n&ankOLWf?5S!v-P!w}7z{ssP)GUfg;FR!{=VKQmtrUu| zl;Z%&1mtfq+abdD#7J^7O1Zd(r931#8{0T?8pj)*+dzLK!vK-om(c0==z?^;UJo^- zRo!Unm91*U4m7Fj!Pa^cywgo;#rD=8Iz3!dJxnjef?4LOs~wT#v;vICG(H(WCsKdK zG9R}8Q@deAl2O(l*LR@))_Chr<#5?D&)9+<3$SZcms5JD#nVc6B=$$eVUr^@14V@! z-TqHcM!f(J8C|Z+S+3~faKGG(U!_9E5h-WO=f2L{!q}QmHF@`F8IEj38^Cax)eFNy zZ>YT#-@_my&KBTsnMxqTK5FTqp=4U4M_d|tH>%eSdsNhV-qE(vPT971%5Q& zl|wDB8=WZ=ZF3icIL6~>n>$)}I6YL`9L0kSHvLa({~{!=_2#sGsr?RIX0Cnjb|!o| z4$TS&_~LDE2;v&==`u8gm&J15uv!<>^z@!53`tX--A=}zFlKbX?FUuG(f*KWe1-mW zV>O_n+>SO>y5HhIQ~bra&*=_D%uMsXc+MIf?NXV-hp6Y4KHn>o{0AhQ@0FRtBY2$B zZO4D6eNY0tW#QNtW{Q8X3dMWgl{0*K%L?)e4(OB5)=hg5?4G`5a;~2#Cwm+s!+1ap z{LhJ^eM37vVrx62`ezO+>~2|w#aIU|2cdcTk5;2S6B zAoirkZKy}QY6lyEXp)6j0P#r>tk$$T&k*n0!O5WUE*?A$h<+wm0K_LluoLZs_)oE8 zzYCWbeKKlTXWbiL&w+8@k z2a@kvAmd#HBwq~>w??oGNWH^A>OB!iy^jPA2JQzO0=w;3V5VLBMIi0#Z9vNVA&}v5 zAoEu)c#eceflU8Ip+^8|S3g|v1Khu~k8`~z?Z&!8G=7F4-tjHG}Hc0qeA=`}((3B3S#IKpQLeKc?g^1%;D{Po@e zn%E}TELbNvSFl(xAP7+LCL%KJyry3}AO56GKgxOGq)orbrz&aFPeV6F1C%SlFT+hg z`zN7Izl|UjZu-AGWSacux$t*flgGGUBiu>z&BRIn(8E8+!$00b-|nFoc<7ZLdX-21 zzdYd=d&0SIxKqFN9(|{K_@{XI@9=~_;GzHMp@)0oukxhF`vg&Jx5X3ADN@exk390< z^n{=23GeHnIsV|3H^!6RAW!%bPxwzgH19X3Jg4DJS>u*gU514O2$Cj_&kSM#PL!ZCjv|J@cZu3xzbz{N8=ywFS_r{U~gU~8L0F@t(EUj^EQoFQn~vmgCyCXiQgjj6X%KPk6YKIZd&A4=e&nr085Q#BYBXv~Ugy zjEd^?5c}}JQ*jar?0M$!kdW0|pQX@2DEsvzvzinQ=v=W88> zA7hyAdJ2Q*!&==H<%nTByqnXx9#!-Ze}i4ZSx0n#!2jNSPcjSqo?MIVj_FJ~_IDJ* z=*U-s|K&aKjRemk{Ld9W>Z6?b&hmW6J%~WGjo>{%G~~iNfM`m=CZR6_qTK`+0Qr4# z7O)qv7)bt;f&5OvJF)t{VH?AzjtWO1^$vh00u&Yl`JQOXi}6SsceT)_9Atf$3HEv4 zD~2G%5nWw7=_Q`SN z^djL&Skro`8HmLobuAY4I#V-ChK&G2yPiuz$l_P%o^^d{mUU%Vzv>#7T!y`I|C`T= zfoLRjre8PofBKx@_ZOX!SB%D}+R9#zOBy+*oyoi|EgZk1woUgmF1bTE>jd+0Q{m6o z4E^v&=Mve|b7HPE;uam(*Cg_U-0SB=8zj+4`%Yk{=LGfSzq(n0d*k?=$UHs& zK8S(YIQ7>4y9MRI-CZxZn`0e2NA@viTWW%Clt{+rL0 z02&jWc@7vFZR$Vz{xHu2BQJuE@asHR%>DXxpDR06E^&Vgn(vQw&<}rfQWBcz>AAxB z!*u4kvgT_(SGGb4K38~V`@_Kh|GC0}(y`q!asAZ!y7MdZ z2SXt^^L#LLANcWK`eN9V;uXu{=iP zI|YMSPUm_!AfTu3m~o<)d8*8XJbuT_IZlnYQM5~BPtTiiqR%#oH8-H;Q4k%T7nS-- z|Mq0>+73OUV68k6`z)i-ozI(m_?!O%T#wfx_v+Vc?^090tdC=<()U9ac3tSB=fwbK zzlOt5cg0fSf9+%nI4m+yziC%8u`3z=S913IscC&Sw(kpL*9e@h8%)KbBRfuo9qS1`W3P^bQn9|p9sN@){Tn~(m74HqDt30S@lVwbL+lmq z*jK68kKtFTP}J6e6UbNW=rZG`e)EV6^wb!&4nF-UR$ltAaz1O9~7_B;gFXFNz1it<2H}&c`ICbIS#T^4e zsVV-AJA0*i)uk?+)9dQb^DsGMX%r&PcZ;Y)#}Np<+a0R2{7zcmj{S`=PMk`Oy%PMbyAW>XlC~cQv!P0jZTFEp1f?t0 zX}ZkKYB-m18^O+*g1W}2E#=qV|L#4lD zQ^$VliW5BTxmTVBmTpv6zfV(j#FFE>-K`5VZ`WXANb5kOQT?8Q{>Ga?U9FBDKk^^< zulG0p47C4&#%6H(A4uH}h-`c_Khk$2JnvA{j)F+vttI{kHv9}^bmO}NqkVDq`rDza zJ2?r#e=S>8GIb{cum04B7IXRKIAYG<$d9sQ<1O&!giQ++D&{~aqpPh69<5j4C)8r0 z8&mi3$9Tijp>+&hu0sFKP*&>8cBqQW=Rv4t8A4SN@*L&#&4o=={EauFkBzDGhgnLF zh8V#VS?G0UYUucA`4_Bzh;IE7q9WFY8iXi`Y?au7gGW2#KsZcVR=y?Ucf_oF=YlCQ z3m26(x24W*M%LqtB6>QwIysDIx4pvYq?ci5u#U@+kN$Q(R4#SX?L^}0TwpM~k8zeR z#lW%SbVhHbmhB<59~_B?7!Fh3g|P%6b4(6QwG%q=DgV)m@_oO40vs3ZY^JCWi z)T4d_)9K^C_AxLZJA>@(TnmrZ75E9YJZ@4|XH$O$3xLkCVyRRt_k%@M{A=z|U0|(7 z0180Wy(*GOazh;wSNY)vGDDb=NBA7qSxk++0m52$BC?r(jrp@z!SBI-C}2cqUQJ)z zem4$xl!&G4)!rqTtj`267?M6s)!%Rx?p-P0lGNNirPfC{-WesVj_+3UO)-7?A7N{U z62@|lGKPegkB;SiWrkN6I1+)OWH^7~jG3X)@jeqvX3iX)I6zukdw;yW+iOGK7 z!Yz|Afhn?O@_xvo&ZDTQ$^kl}_1THOq+)8NbU~?Ez%IqsJ9u!mI1X;MIc+)DgU8m- z-%t*9m5%;~IVxNIk3)$&>a#-C=W8hR_IyNDa@emrJF-gLqS)#NgI;>8o349cZE0MG zl4m}P(AJGIO{b&Yik=KNe&D}poWO22m8#zp z_uts|Ra>a-?OtdrRK2Rl7Z=2=J){o=eNd>W?BJ$lg`uXizZq&e_YibY)ZE{|F&rqWUJ2l7w|d^_N=N_d zd?*}El?)w$4nk$u>ch1bW_?2=vy7l^0M%8g$BZhI%@B@NA}ox~ZS9YdO7)-p4O6M? z%w@E2uqo1ZPR5ahoT(^XOyhnC@^DD*y{s43SkpC(lvEuCnqvA4;wR8M{T)-#S{FgS zS&tAN|DnH;^BtkgRs`x6b{&=B7h9;M+9*?Eb+jL^M5{cQwzB$Vl@qcUt2HB5tgG!8V`RK^LDuyXe^c9Uf_Pm29qd$PR zNL?bTdMZ_kOg1HAqM%$;U~DZ@<@&DD`61Sd`{DWju=g$CQ5M(V8^91130`8Umv&K9 zP}UMI8dNk3S=rSDQ!a|FGzlR<1VT)9HCB+=ByF}!l(yQ^R@>NWORa5b|7v5r1x1L} zDz^NUidFj8Drvl6z2PBSi-S?gBvWxw`=X;*-`R3W(vuDnkGuLQApP+{HpY*drGlCUd1&jny=!T6gw*!PfqL$h~rqV6rC$(q`xcN z(t|?@!(~zaw_tu_q^AhXPLOdTOxIer!zHY1wkrU=a%;0)boB z^gf)8W7JLKxU!3vTh}*$2ae59{;Nq&~4^#q}KpK8f z91ApV!$<+_)T1b?BbTT58*w$Unra`MP@gXUFZ<|@uW z2A3SG0KBC+z6UdiuH!xZ<3LrSY$FyQ6(0kB4=k*F(-rlVpzD%kIfcafOU&=;d(xqyruvua za*f1afbGD)=rDL+^lbzeidQ^X$PylD=F~2Bc){knmV&rW&gE^j(GU9{;lV-o6U$X;|S^ zIM8*VM1+bj(9+ z+MDT|&@S{7k3UX7rn@Ehv@2O`JL(UfM(+Vpr=_UsXL=K5y?wKgLuo;7fAkZZ`c4B) zwJn>19-y=DFoxV!2#(iF)wS$pD5Cl3VNmGMob|nqqDn(UQTCt(KF-2K`SMQpWZ?cI zl0IwjoPVe)Y7JjMJ$+ogSLN>nS_31VpOnSlFO9#{_jOS1o}~#dZ*`#aV`Jzy_z+S) z(6TQ#zx5?l2xk>-n=r?Nl5D+tgPYT+@kd~xH~wyEN31;p8{{4HJHzoI)EVOLc^nDt z<vz$#ool}c zWgI4YNDO>?71zBSVsVr)ZRfQd#hsRGhA>6UaHr)po?z-1^0{f?$^?kG- z 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�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

J5XrA*2GQIoB#+=JsIOQlkjn1`8 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 literal 0 HcmV?d00001 diff --git a/thrid-party/openssl/openssl/aes.h b/thrid-party/openssl/openssl/aes.h new file mode 100644 index 000000000..245c552ab --- /dev/null +++ b/thrid-party/openssl/openssl/aes.h @@ -0,0 +1,92 @@ +/* + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_AES_H +# define HEADER_AES_H + +# include + +# include +# ifdef __cplusplus +extern "C" { +# endif + +# define AES_ENCRYPT 1 +# define AES_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ +# define AES_MAXNR 14 +# define AES_BLOCK_SIZE 16 + +/* This should be a hidden type, but EVP requires that the size be known */ +struct aes_key_st { +# ifdef AES_LONG + unsigned long rd_key[4 * (AES_MAXNR + 1)]; +# else + unsigned int rd_key[4 * (AES_MAXNR + 1)]; +# endif + int rounds; +}; +typedef struct aes_key_st AES_KEY; + +const char *AES_options(void); + +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); + +void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key, const int enc); +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num); +/* NB: the IV is _two_ blocks long */ +void AES_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +/* NB: the IV is _four_ blocks long */ +void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + const AES_KEY *key2, const unsigned char *ivec, + const int enc); + +int AES_wrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); +int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); + + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/thrid-party/openssl/openssl/asn1.h b/thrid-party/openssl/openssl/asn1.h new file mode 100644 index 000000000..9522eec18 --- /dev/null +++ b/thrid-party/openssl/openssl/asn1.h @@ -0,0 +1,886 @@ +/* + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASN1_H +# define HEADER_ASN1_H + +# include +# include +# include +# include +# include +# include +# include + +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define V_ASN1_UNIVERSAL 0x00 +# define V_ASN1_APPLICATION 0x40 +# define V_ASN1_CONTEXT_SPECIFIC 0x80 +# define V_ASN1_PRIVATE 0xc0 + +# define V_ASN1_CONSTRUCTED 0x20 +# define V_ASN1_PRIMITIVE_TAG 0x1f +# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG + +# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ +# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ +# define V_ASN1_ANY -4/* used in ASN1 template code */ + +# define V_ASN1_UNDEF -1 +/* ASN.1 tag values */ +# define V_ASN1_EOC 0 +# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_INTEGER 2 +# define V_ASN1_BIT_STRING 3 +# define V_ASN1_OCTET_STRING 4 +# define V_ASN1_NULL 5 +# define V_ASN1_OBJECT 6 +# define V_ASN1_OBJECT_DESCRIPTOR 7 +# define V_ASN1_EXTERNAL 8 +# define V_ASN1_REAL 9 +# define V_ASN1_ENUMERATED 10 +# define V_ASN1_UTF8STRING 12 +# define V_ASN1_SEQUENCE 16 +# define V_ASN1_SET 17 +# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_PRINTABLESTRING 19 +# define V_ASN1_T61STRING 20 +# define V_ASN1_TELETEXSTRING 20/* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_IA5STRING 22 +# define V_ASN1_UTCTIME 23 +# define V_ASN1_GENERALIZEDTIME 24 /**/ +# define V_ASN1_GRAPHICSTRING 25 /**/ +# define V_ASN1_ISO64STRING 26 /**/ +# define V_ASN1_VISIBLESTRING 26/* alias */ +# define V_ASN1_GENERALSTRING 27 /**/ +# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_BMPSTRING 30 + +/* + * NB the constants below are used internally by ASN1_INTEGER + * and ASN1_ENUMERATED to indicate the sign. They are *not* on + * the wire tag values. + */ + +# define V_ASN1_NEG 0x100 +# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) + +/* For use with d2i_ASN1_type_bytes() */ +# define B_ASN1_NUMERICSTRING 0x0001 +# define B_ASN1_PRINTABLESTRING 0x0002 +# define B_ASN1_T61STRING 0x0004 +# define B_ASN1_TELETEXSTRING 0x0004 +# define B_ASN1_VIDEOTEXSTRING 0x0008 +# define B_ASN1_IA5STRING 0x0010 +# define B_ASN1_GRAPHICSTRING 0x0020 +# define B_ASN1_ISO64STRING 0x0040 +# define B_ASN1_VISIBLESTRING 0x0040 +# define B_ASN1_GENERALSTRING 0x0080 +# define B_ASN1_UNIVERSALSTRING 0x0100 +# define B_ASN1_OCTET_STRING 0x0200 +# define B_ASN1_BIT_STRING 0x0400 +# define B_ASN1_BMPSTRING 0x0800 +# define B_ASN1_UNKNOWN 0x1000 +# define B_ASN1_UTF8STRING 0x2000 +# define B_ASN1_UTCTIME 0x4000 +# define B_ASN1_GENERALIZEDTIME 0x8000 +# define B_ASN1_SEQUENCE 0x10000 +/* For use with ASN1_mbstring_copy() */ +# define MBSTRING_FLAG 0x1000 +# define MBSTRING_UTF8 (MBSTRING_FLAG) +# define MBSTRING_ASC (MBSTRING_FLAG|1) +# define MBSTRING_BMP (MBSTRING_FLAG|2) +# define MBSTRING_UNIV (MBSTRING_FLAG|4) +# define SMIME_OLDMIME 0x400 +# define SMIME_CRLFEOL 0x800 +# define SMIME_STREAM 0x1000 + struct X509_algor_st; +DEFINE_STACK_OF(X509_ALGOR) + +# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ +/* + * This indicates that the ASN1_STRING is not a real value but just a place + * holder for the location where indefinite length constructed data should be + * inserted in the memory buffer + */ +# define ASN1_STRING_FLAG_NDEF 0x010 + +/* + * This flag is used by the CMS code to indicate that a string is not + * complete and is a place holder for content when it had all been accessed. + * The flag will be reset when content has been written to it. + */ + +# define ASN1_STRING_FLAG_CONT 0x020 +/* + * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING + * type. + */ +# define ASN1_STRING_FLAG_MSTRING 0x040 +/* String is embedded and only content should be freed */ +# define ASN1_STRING_FLAG_EMBED 0x080 +/* String should be parsed in RFC 5280's time format */ +# define ASN1_STRING_FLAG_X509_TIME 0x100 +/* This is the base type that holds just about everything :-) */ +struct asn1_string_st { + int length; + int type; + unsigned char *data; + /* + * The value of the following field depends on the type being held. It + * is mostly being used for BIT_STRING so if the input data has a + * non-zero 'unused bits' value, it will be handled correctly + */ + long flags; +}; + +/* + * ASN1_ENCODING structure: this is used to save the received encoding of an + * ASN1 type. This is useful to get round problems with invalid encodings + * which can break signatures. + */ + +typedef struct ASN1_ENCODING_st { + unsigned char *enc; /* DER encoding */ + long len; /* Length of encoding */ + int modified; /* set to 1 if 'enc' is invalid */ +} ASN1_ENCODING; + +/* Used with ASN1 LONG type: if a long is set to this it is omitted */ +# define ASN1_LONG_UNDEF 0x7fffffffL + +# define STABLE_FLAGS_MALLOC 0x01 +/* + * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted + * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting + * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias + * STABLE_FLAGS_CLEAR to reflect this. + */ +# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC +# define STABLE_NO_MASK 0x02 +# define DIRSTRING_TYPE \ + (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) +# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) + +typedef struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +} ASN1_STRING_TABLE; + +DEFINE_STACK_OF(ASN1_STRING_TABLE) + +/* size limits: this stuff is taken straight from RFC2459 */ + +# define ub_name 32768 +# define ub_common_name 64 +# define ub_locality_name 128 +# define ub_state_name 128 +# define ub_organization_name 64 +# define ub_organization_unit_name 64 +# define ub_title 64 +# define ub_email_address 128 + +/* + * Declarations for template structures: for full definitions see asn1t.h + */ +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_TLC_st ASN1_TLC; +/* This is just an opaque pointer */ +typedef struct ASN1_VALUE_st ASN1_VALUE; + +/* Declare ASN1 functions: the implement macro in in asn1t.h */ + +# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) + +# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) + +# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(itname) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(const type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(name) + +# define DECLARE_ASN1_NDEF_FUNCTION(name) \ + int i2d_##name##_NDEF(name *a, unsigned char **out); + +# define DECLARE_ASN1_FUNCTIONS_const(name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + type *name##_new(void); \ + void name##_free(type *a); + +# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) + +# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx); + +# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +# define I2D_OF(type) int (*)(type *,unsigned char **) +# define I2D_OF_const(type) int (*)(const type *,unsigned char **) + +# define CHECKED_D2I_OF(type, d2i) \ + ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +# define CHECKED_I2D_OF(type, i2d) \ + ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +# define CHECKED_NEW_OF(type, xnew) \ + ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# define CHECKED_PPTR_OF(type, p) \ + ((void**) (1 ? p : (type**)0)) + +# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) +# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) +# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) + +TYPEDEF_D2I2D_OF(void); + +/*- + * The following macros and typedefs allow an ASN1_ITEM + * to be embedded in a structure and referenced. Since + * the ASN1_ITEM pointers need to be globally accessible + * (possibly from shared libraries) they may exist in + * different forms. On platforms that support it the + * ASN1_ITEM structure itself will be globally exported. + * Other platforms will export a function that returns + * an ASN1_ITEM pointer. + * + * To handle both cases transparently the macros below + * should be used instead of hard coding an ASN1_ITEM + * pointer in a structure. + * + * The structure will look like this: + * + * typedef struct SOMETHING_st { + * ... + * ASN1_ITEM_EXP *iptr; + * ... + * } SOMETHING; + * + * It would be initialised as e.g.: + * + * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; + * + * and the actual pointer extracted with: + * + * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); + * + * Finally an ASN1_ITEM pointer can be extracted from an + * appropriate reference with: ASN1_ITEM_rptr(X509). This + * would be used when a function takes an ASN1_ITEM * argument. + * + */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM ASN1_ITEM_EXP; + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) + +# define ASN1_ITEM_rptr(ref) (&(ref##_it)) + +# define DECLARE_ASN1_ITEM(name) \ + OPENSSL_EXTERN const ASN1_ITEM name##_it; + +# else + +/* + * Platforms that can't easily handle shared global variables are declared as + * functions returning ASN1_ITEM pointers. + */ + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr()) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (iptr##_it) + +# define ASN1_ITEM_rptr(ref) (ref##_it()) + +# define DECLARE_ASN1_ITEM(name) \ + const ASN1_ITEM * name##_it(void); + +# endif + +/* Parameters used by ASN1_STRING_print_ex() */ + +/* + * These determine which characters to escape: RFC2253 special characters, + * control characters and MSB set characters + */ + +# define ASN1_STRFLGS_ESC_2253 1 +# define ASN1_STRFLGS_ESC_CTRL 2 +# define ASN1_STRFLGS_ESC_MSB 4 + +/* + * This flag determines how we do escaping: normally RC2253 backslash only, + * set this to use backslash and quote. + */ + +# define ASN1_STRFLGS_ESC_QUOTE 8 + +/* These three flags are internal use only. */ + +/* Character is a valid PrintableString character */ +# define CHARTYPE_PRINTABLESTRING 0x10 +/* Character needs escaping if it is the first character */ +# define CHARTYPE_FIRST_ESC_2253 0x20 +/* Character needs escaping if it is the last character */ +# define CHARTYPE_LAST_ESC_2253 0x40 + +/* + * NB the internal flags are safely reused below by flags handled at the top + * level. + */ + +/* + * If this is set we convert all character strings to UTF8 first + */ + +# define ASN1_STRFLGS_UTF8_CONVERT 0x10 + +/* + * If this is set we don't attempt to interpret content: just assume all + * strings are 1 byte per character. This will produce some pretty odd + * looking output! + */ + +# define ASN1_STRFLGS_IGNORE_TYPE 0x20 + +/* If this is set we include the string type in the output */ +# define ASN1_STRFLGS_SHOW_TYPE 0x40 + +/* + * This determines which strings to display and which to 'dump' (hex dump of + * content octets or DER encoding). We can only dump non character strings or + * everything. If we don't dump 'unknown' they are interpreted as character + * strings with 1 octet per character and are subject to the usual escaping + * options. + */ + +# define ASN1_STRFLGS_DUMP_ALL 0x80 +# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 + +/* + * These determine what 'dumping' does, we can dump the content octets or the + * DER encoding: both use the RFC2253 #XXXXX notation. + */ + +# define ASN1_STRFLGS_DUMP_DER 0x200 + +/* + * This flag specifies that RC2254 escaping shall be performed. + */ +#define ASN1_STRFLGS_ESC_2254 0x400 + +/* + * All the string flags consistent with RFC2253, escaping control characters + * isn't essential in RFC2253 but it is advisable anyway. + */ + +# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ + ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + ASN1_STRFLGS_UTF8_CONVERT | \ + ASN1_STRFLGS_DUMP_UNKNOWN | \ + ASN1_STRFLGS_DUMP_DER) + +DEFINE_STACK_OF(ASN1_INTEGER) + +DEFINE_STACK_OF(ASN1_GENERALSTRING) + +DEFINE_STACK_OF(ASN1_UTF8STRING) + +typedef struct asn1_type_st { + int type; + union { + char *ptr; + ASN1_BOOLEAN boolean; + ASN1_STRING *asn1_string; + ASN1_OBJECT *object; + ASN1_INTEGER *integer; + ASN1_ENUMERATED *enumerated; + ASN1_BIT_STRING *bit_string; + ASN1_OCTET_STRING *octet_string; + ASN1_PRINTABLESTRING *printablestring; + ASN1_T61STRING *t61string; + ASN1_IA5STRING *ia5string; + ASN1_GENERALSTRING *generalstring; + ASN1_BMPSTRING *bmpstring; + ASN1_UNIVERSALSTRING *universalstring; + ASN1_UTCTIME *utctime; + ASN1_GENERALIZEDTIME *generalizedtime; + ASN1_VISIBLESTRING *visiblestring; + ASN1_UTF8STRING *utf8string; + /* + * set and sequence are left complete and still contain the set or + * sequence bytes + */ + ASN1_STRING *set; + ASN1_STRING *sequence; + ASN1_VALUE *asn1_value; + } value; +} ASN1_TYPE; + +DEFINE_STACK_OF(ASN1_TYPE) + +typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) + +/* This is used to contain a list of bit names */ +typedef struct BIT_STRING_BITNAME_st { + int bitnum; + const char *lname; + const char *sname; +} BIT_STRING_BITNAME; + +# define B_ASN1_TIME \ + B_ASN1_UTCTIME | \ + B_ASN1_GENERALIZEDTIME + +# define B_ASN1_PRINTABLE \ + B_ASN1_NUMERICSTRING| \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_T61STRING| \ + B_ASN1_IA5STRING| \ + B_ASN1_BIT_STRING| \ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING|\ + B_ASN1_SEQUENCE|\ + B_ASN1_UNKNOWN + +# define B_ASN1_DIRECTORYSTRING \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_TELETEXSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_UTF8STRING + +# define B_ASN1_DISPLAYTEXT \ + B_ASN1_IA5STRING| \ + B_ASN1_VISIBLESTRING| \ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING + +DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) + +int ASN1_TYPE_get(const ASN1_TYPE *a); +void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); +int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); +int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); + +ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); +void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); + +ASN1_OBJECT *ASN1_OBJECT_new(void); +void ASN1_OBJECT_free(ASN1_OBJECT *a); +int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); +ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); + +DECLARE_ASN1_ITEM(ASN1_OBJECT) + +DEFINE_STACK_OF(ASN1_OBJECT) + +ASN1_STRING *ASN1_STRING_new(void); +void ASN1_STRING_free(ASN1_STRING *a); +void ASN1_STRING_clear_free(ASN1_STRING *a); +int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); +ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); +ASN1_STRING *ASN1_STRING_type_new(int type); +int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); + /* + * Since this is used to store all sorts of things, via macros, for now, + * make its data void * + */ +int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); +void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); +int ASN1_STRING_length(const ASN1_STRING *x); +void ASN1_STRING_length_set(ASN1_STRING *x, int n); +int ASN1_STRING_type(const ASN1_STRING *x); +DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x)) +const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); + +DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) +int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); +int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); +int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, + const unsigned char *flags, int flags_len); + +int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, + BIT_STRING_BITNAME *tbl, int indent); +int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, + BIT_STRING_BITNAME *tbl); + +DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) +ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); +int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); + +DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) + +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); +ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); +ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); +int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); + +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, + time_t t); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, + time_t t, int offset_day, + long offset_sec); +int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); + +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); + +DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) +ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); +int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, + const ASN1_OCTET_STRING *b); +int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, + int len); + +DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_NULL) +DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) + +int UTF8_getc(const unsigned char *str, int len, unsigned long *val); +int UTF8_putc(unsigned char *str, int len, unsigned long value); + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) +DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_TIME) + +DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) + +ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); +ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_TIME_check(const ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, + ASN1_GENERALIZEDTIME **out); +int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); +int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); +int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); +int ASN1_TIME_normalize(ASN1_TIME *s); +int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); +int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); + +int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); +int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); +int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); +int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); +int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); +int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); +int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); +int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); + +int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); +ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, + const char *sn, const char *ln); + +int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); +int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); + +int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); +long ASN1_INTEGER_get(const ASN1_INTEGER *a); +ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); +BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); + +int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); +int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); + + +int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); +long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); + +/* General */ +/* given a string, return the correct type, max is the maximum length */ +int ASN1_PRINTABLE_type(const unsigned char *s, int max); + +unsigned long ASN1_tag2bit(int tag); + +/* SPECIALS */ +int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, + int *pclass, long omax); +int ASN1_check_infinite_end(unsigned char **p, long len); +int ASN1_const_check_infinite_end(const unsigned char **p, long len); +void ASN1_put_object(unsigned char **pp, int constructed, int length, + int tag, int xclass); +int ASN1_put_eoc(unsigned char **pp); +int ASN1_object_size(int constructed, int length, int tag); + +/* Used to implement other functions */ +void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); + +# define ASN1_dup_of(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_dup_of_const(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(const type, x))) + +void *ASN1_item_dup(const ASN1_ITEM *it, void *x); + +/* ASN1 alloc/free macros for when a type is only used internally */ + +# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) +# define M_ASN1_free_of(x, type) \ + ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) + +# ifndef OPENSSL_NO_STDIO +void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); + +# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); +int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); + +# define ASN1_i2d_fp_of(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); +int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); +# endif + +int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); + +void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); + +# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); + +# define ASN1_i2d_bio_of(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(type, x))) + +# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); +int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); +int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); +int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); +int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); +int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); +int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); +int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, + unsigned char *buf, int off); +int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); +int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, + int dump); +const char *ASN1_tag2str(int tag); + +/* Used to load and write Netscape format cert */ + +int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); + +int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); +int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, + unsigned char *data, int len); +int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, + unsigned char *data, int max_len); + +void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); + +ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, + ASN1_OCTET_STRING **oct); + +void ASN1_STRING_set_default_mask(unsigned long mask); +int ASN1_STRING_set_default_mask_asc(const char *p); +unsigned long ASN1_STRING_get_default_mask(void); +int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask); +int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask, + long minsize, long maxsize); + +ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, + const unsigned char *in, int inlen, + int inform, int nid); +ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); +int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); +void ASN1_STRING_TABLE_cleanup(void); + +/* ASN1 template functions */ + +/* Old API compatible functions */ +ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); +void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it); +int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); +int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, + const ASN1_ITEM *it); + +void ASN1_add_oid_module(void); +void ASN1_add_stable_module(void); + +ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); +int ASN1_str2mask(const char *str, unsigned long *pmask); + +/* ASN1 Print flags */ + +/* Indicate missing OPTIONAL fields */ +# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 +/* Mark start and end of SEQUENCE */ +# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 +/* Mark start and end of SEQUENCE/SET OF */ +# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 +/* Show the ASN1 type of primitives */ +# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 +/* Don't show ASN1 type of ANY */ +# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 +/* Don't show ASN1 type of MSTRINGs */ +# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 +/* Don't show field names in SEQUENCE */ +# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 +/* Show structure names of each SEQUENCE field */ +# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 +/* Don't show structure name even at top level */ +# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 + +int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, + const ASN1_ITEM *it, const ASN1_PCTX *pctx); +ASN1_PCTX *ASN1_PCTX_new(void); +void ASN1_PCTX_free(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); + +ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); +void ASN1_SCTX_free(ASN1_SCTX *p); +const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); +const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); +unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); +void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); +void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); + +const BIO_METHOD *BIO_f_asn1(void); + +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); + +int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const ASN1_ITEM *it); +int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const char *hdr, const ASN1_ITEM *it); +int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); +ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); +int SMIME_crlf_copy(BIO *in, BIO *out, int flags); +int SMIME_text(BIO *in, BIO *out); + +const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); +const ASN1_ITEM *ASN1_ITEM_get(size_t i); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/asn1_mac.h b/thrid-party/openssl/openssl/asn1_mac.h new file mode 100644 index 000000000..7ac1782a3 --- /dev/null +++ b/thrid-party/openssl/openssl/asn1_mac.h @@ -0,0 +1,10 @@ +/* + * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#error "This file is obsolete; please update your software." diff --git a/thrid-party/openssl/openssl/asn1err.h b/thrid-party/openssl/openssl/asn1err.h new file mode 100644 index 000000000..faed5a551 --- /dev/null +++ b/thrid-party/openssl/openssl/asn1err.h @@ -0,0 +1,256 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASN1ERR_H +# define HEADER_ASN1ERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ASN1_strings(void); + +/* + * ASN1 function codes. + */ +# define ASN1_F_A2D_ASN1_OBJECT 100 +# define ASN1_F_A2I_ASN1_INTEGER 102 +# define ASN1_F_A2I_ASN1_STRING 103 +# define ASN1_F_APPEND_EXP 176 +# define ASN1_F_ASN1_BIO_INIT 113 +# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 +# define ASN1_F_ASN1_CB 177 +# define ASN1_F_ASN1_CHECK_TLEN 104 +# define ASN1_F_ASN1_COLLECT 106 +# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 +# define ASN1_F_ASN1_D2I_FP 109 +# define ASN1_F_ASN1_D2I_READ_BIO 107 +# define ASN1_F_ASN1_DIGEST 184 +# define ASN1_F_ASN1_DO_ADB 110 +# define ASN1_F_ASN1_DO_LOCK 233 +# define ASN1_F_ASN1_DUP 111 +# define ASN1_F_ASN1_ENC_SAVE 115 +# define ASN1_F_ASN1_EX_C2I 204 +# define ASN1_F_ASN1_FIND_END 190 +# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 +# define ASN1_F_ASN1_GENERATE_V3 178 +# define ASN1_F_ASN1_GET_INT64 224 +# define ASN1_F_ASN1_GET_OBJECT 114 +# define ASN1_F_ASN1_GET_UINT64 225 +# define ASN1_F_ASN1_I2D_BIO 116 +# define ASN1_F_ASN1_I2D_FP 117 +# define ASN1_F_ASN1_ITEM_D2I_FP 206 +# define ASN1_F_ASN1_ITEM_DUP 191 +# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 +# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 +# define ASN1_F_ASN1_ITEM_FLAGS_I2D 118 +# define ASN1_F_ASN1_ITEM_I2D_BIO 192 +# define ASN1_F_ASN1_ITEM_I2D_FP 193 +# define ASN1_F_ASN1_ITEM_PACK 198 +# define ASN1_F_ASN1_ITEM_SIGN 195 +# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 +# define ASN1_F_ASN1_ITEM_UNPACK 199 +# define ASN1_F_ASN1_ITEM_VERIFY 197 +# define ASN1_F_ASN1_MBSTRING_NCOPY 122 +# define ASN1_F_ASN1_OBJECT_NEW 123 +# define ASN1_F_ASN1_OUTPUT_DATA 214 +# define ASN1_F_ASN1_PCTX_NEW 205 +# define ASN1_F_ASN1_PRIMITIVE_NEW 119 +# define ASN1_F_ASN1_SCTX_NEW 221 +# define ASN1_F_ASN1_SIGN 128 +# define ASN1_F_ASN1_STR2TYPE 179 +# define ASN1_F_ASN1_STRING_GET_INT64 227 +# define ASN1_F_ASN1_STRING_GET_UINT64 230 +# define ASN1_F_ASN1_STRING_SET 186 +# define ASN1_F_ASN1_STRING_TABLE_ADD 129 +# define ASN1_F_ASN1_STRING_TO_BN 228 +# define ASN1_F_ASN1_STRING_TYPE_NEW 130 +# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 +# define ASN1_F_ASN1_TEMPLATE_NEW 133 +# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 +# define ASN1_F_ASN1_TIME_ADJ 217 +# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 +# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 +# define ASN1_F_ASN1_UTCTIME_ADJ 218 +# define ASN1_F_ASN1_VERIFY 137 +# define ASN1_F_B64_READ_ASN1 209 +# define ASN1_F_B64_WRITE_ASN1 210 +# define ASN1_F_BIO_NEW_NDEF 208 +# define ASN1_F_BITSTR_CB 180 +# define ASN1_F_BN_TO_ASN1_STRING 229 +# define ASN1_F_C2I_ASN1_BIT_STRING 189 +# define ASN1_F_C2I_ASN1_INTEGER 194 +# define ASN1_F_C2I_ASN1_OBJECT 196 +# define ASN1_F_C2I_IBUF 226 +# define ASN1_F_C2I_UINT64_INT 101 +# define ASN1_F_COLLECT_DATA 140 +# define ASN1_F_D2I_ASN1_OBJECT 147 +# define ASN1_F_D2I_ASN1_UINTEGER 150 +# define ASN1_F_D2I_AUTOPRIVATEKEY 207 +# define ASN1_F_D2I_PRIVATEKEY 154 +# define ASN1_F_D2I_PUBLICKEY 155 +# define ASN1_F_DO_BUF 142 +# define ASN1_F_DO_CREATE 124 +# define ASN1_F_DO_DUMP 125 +# define ASN1_F_DO_TCREATE 222 +# define ASN1_F_I2A_ASN1_OBJECT 126 +# define ASN1_F_I2D_ASN1_BIO_STREAM 211 +# define ASN1_F_I2D_ASN1_OBJECT 143 +# define ASN1_F_I2D_DSA_PUBKEY 161 +# define ASN1_F_I2D_EC_PUBKEY 181 +# define ASN1_F_I2D_PRIVATEKEY 163 +# define ASN1_F_I2D_PUBLICKEY 164 +# define ASN1_F_I2D_RSA_PUBKEY 165 +# define ASN1_F_LONG_C2I 166 +# define ASN1_F_NDEF_PREFIX 127 +# define ASN1_F_NDEF_SUFFIX 136 +# define ASN1_F_OID_MODULE_INIT 174 +# define ASN1_F_PARSE_TAGGING 182 +# define ASN1_F_PKCS5_PBE2_SET_IV 167 +# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 +# define ASN1_F_PKCS5_PBE_SET 202 +# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 +# define ASN1_F_PKCS5_PBKDF2_SET 219 +# define ASN1_F_PKCS5_SCRYPT_SET 232 +# define ASN1_F_SMIME_READ_ASN1 212 +# define ASN1_F_SMIME_TEXT 213 +# define ASN1_F_STABLE_GET 138 +# define ASN1_F_STBL_MODULE_INIT 223 +# define ASN1_F_UINT32_C2I 105 +# define ASN1_F_UINT32_NEW 139 +# define ASN1_F_UINT64_C2I 112 +# define ASN1_F_UINT64_NEW 141 +# define ASN1_F_X509_CRL_ADD0_REVOKED 169 +# define ASN1_F_X509_INFO_NEW 170 +# define ASN1_F_X509_NAME_ENCODE 203 +# define ASN1_F_X509_NAME_EX_D2I 158 +# define ASN1_F_X509_NAME_EX_NEW 171 +# define ASN1_F_X509_PKEY_NEW 173 + +/* + * ASN1 reason codes. + */ +# define ASN1_R_ADDING_OBJECT 171 +# define ASN1_R_ASN1_PARSE_ERROR 203 +# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 +# define ASN1_R_AUX_ERROR 100 +# define ASN1_R_BAD_OBJECT_HEADER 102 +# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 +# define ASN1_R_BN_LIB 105 +# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 +# define ASN1_R_BUFFER_TOO_SMALL 107 +# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 +# define ASN1_R_CONTEXT_NOT_INITIALISED 217 +# define ASN1_R_DATA_IS_WRONG 109 +# define ASN1_R_DECODE_ERROR 110 +# define ASN1_R_DEPTH_EXCEEDED 174 +# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 +# define ASN1_R_ENCODE_ERROR 112 +# define ASN1_R_ERROR_GETTING_TIME 173 +# define ASN1_R_ERROR_LOADING_SECTION 172 +# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 +# define ASN1_R_EXPECTING_AN_INTEGER 115 +# define ASN1_R_EXPECTING_AN_OBJECT 116 +# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 +# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 +# define ASN1_R_FIELD_MISSING 121 +# define ASN1_R_FIRST_NUM_TOO_LARGE 122 +# define ASN1_R_HEADER_TOO_LONG 123 +# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 +# define ASN1_R_ILLEGAL_BOOLEAN 176 +# define ASN1_R_ILLEGAL_CHARACTERS 124 +# define ASN1_R_ILLEGAL_FORMAT 177 +# define ASN1_R_ILLEGAL_HEX 178 +# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 +# define ASN1_R_ILLEGAL_INTEGER 180 +# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 +# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 +# define ASN1_R_ILLEGAL_NULL 125 +# define ASN1_R_ILLEGAL_NULL_VALUE 182 +# define ASN1_R_ILLEGAL_OBJECT 183 +# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 +# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 +# define ASN1_R_ILLEGAL_PADDING 221 +# define ASN1_R_ILLEGAL_TAGGED_ANY 127 +# define ASN1_R_ILLEGAL_TIME_VALUE 184 +# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 +# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 +# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 +# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 +# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 +# define ASN1_R_INVALID_DIGIT 130 +# define ASN1_R_INVALID_MIME_TYPE 205 +# define ASN1_R_INVALID_MODIFIER 186 +# define ASN1_R_INVALID_NUMBER 187 +# define ASN1_R_INVALID_OBJECT_ENCODING 216 +# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 +# define ASN1_R_INVALID_SEPARATOR 131 +# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 +# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 +# define ASN1_R_INVALID_UTF8STRING 134 +# define ASN1_R_INVALID_VALUE 219 +# define ASN1_R_LIST_ERROR 188 +# define ASN1_R_MIME_NO_CONTENT_TYPE 206 +# define ASN1_R_MIME_PARSE_ERROR 207 +# define ASN1_R_MIME_SIG_PARSE_ERROR 208 +# define ASN1_R_MISSING_EOC 137 +# define ASN1_R_MISSING_SECOND_NUMBER 138 +# define ASN1_R_MISSING_VALUE 189 +# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 +# define ASN1_R_MSTRING_WRONG_TAG 140 +# define ASN1_R_NESTED_ASN1_STRING 197 +# define ASN1_R_NESTED_TOO_DEEP 201 +# define ASN1_R_NON_HEX_CHARACTERS 141 +# define ASN1_R_NOT_ASCII_FORMAT 190 +# define ASN1_R_NOT_ENOUGH_DATA 142 +# define ASN1_R_NO_CONTENT_TYPE 209 +# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 +# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 +# define ASN1_R_NO_MULTIPART_BOUNDARY 211 +# define ASN1_R_NO_SIG_CONTENT_TYPE 212 +# define ASN1_R_NULL_IS_WRONG_LENGTH 144 +# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 +# define ASN1_R_ODD_NUMBER_OF_CHARS 145 +# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 +# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 +# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 +# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 +# define ASN1_R_SHORT_LINE 150 +# define ASN1_R_SIG_INVALID_MIME_TYPE 213 +# define ASN1_R_STREAMING_NOT_SUPPORTED 202 +# define ASN1_R_STRING_TOO_LONG 151 +# define ASN1_R_STRING_TOO_SHORT 152 +# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 +# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 +# define ASN1_R_TOO_LARGE 223 +# define ASN1_R_TOO_LONG 155 +# define ASN1_R_TOO_SMALL 224 +# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 +# define ASN1_R_TYPE_NOT_PRIMITIVE 195 +# define ASN1_R_UNEXPECTED_EOC 159 +# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 +# define ASN1_R_UNKNOWN_FORMAT 160 +# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 +# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 +# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 +# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 +# define ASN1_R_UNKNOWN_TAG 194 +# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 +# define ASN1_R_UNSUPPORTED_CIPHER 228 +# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 +# define ASN1_R_UNSUPPORTED_TYPE 196 +# define ASN1_R_WRONG_INTEGER_TYPE 225 +# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 +# define ASN1_R_WRONG_TAG 168 + +#endif diff --git a/thrid-party/openssl/openssl/asn1t.h b/thrid-party/openssl/openssl/asn1t.h new file mode 100644 index 000000000..a450ba0d9 --- /dev/null +++ b/thrid-party/openssl/openssl/asn1t.h @@ -0,0 +1,945 @@ +/* + * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASN1T_H +# define HEADER_ASN1T_H + +# include +# include +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +/* ASN1 template defines, structures and functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + const ASN1_ITEM itname##_it = { + +# define static_ASN1_ITEM_start(itname) \ + static const ASN1_ITEM itname##_it = { + +# define ASN1_ITEM_end(itname) \ + }; + +# else + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + const ASN1_ITEM * itname##_it(void) \ + { \ + static const ASN1_ITEM local_it = { + +# define static_ASN1_ITEM_start(itname) \ + static ASN1_ITEM_start(itname) + +# define ASN1_ITEM_end(itname) \ + }; \ + return &local_it; \ + } + +# endif + +/* Macros to aid ASN1 template writing */ + +# define ASN1_ITEM_TEMPLATE(tname) \ + static const ASN1_TEMPLATE tname##_item_tt + +# define ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) + +/* This is a ASN1 type which just embeds a template */ + +/*- + * This pair helps declare a SEQUENCE. We can do: + * + * ASN1_SEQUENCE(stname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END(stname) + * + * This will produce an ASN1_ITEM called stname_it + * for a structure called stname. + * + * If you want the same structure but a different + * name then use: + * + * ASN1_SEQUENCE(itname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END_name(stname, itname) + * + * This will create an item called itname_it using + * a structure called stname. + */ + +# define ASN1_SEQUENCE(tname) \ + static const ASN1_TEMPLATE tname##_seq_tt[] + +# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) + +# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) + +# define ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #tname \ + ASN1_ITEM_end(tname) + +# define static_ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE(tname) \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ + ASN1_SEQUENCE_cb(tname, cb) + +# define ASN1_SEQUENCE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_BROKEN_SEQUENCE(tname) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_ref(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_enc(tname, enc, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) + +# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) +# define static_ASN1_BROKEN_SEQUENCE_END(stname) \ + static_ASN1_SEQUENCE_END_ref(stname, stname) + +# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) +# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/*- + * This pair helps declare a CHOICE type. We can do: + * + * ASN1_CHOICE(chname) = { + * ... CHOICE options ... + * ASN1_CHOICE_END(chname) + * + * This will produce an ASN1_ITEM called chname_it + * for a structure called chname. The structure + * definition must look like this: + * typedef struct { + * int type; + * union { + * ASN1_SOMETHING *opt1; + * ASN1_SOMEOTHER *opt2; + * } value; + * } chname; + * + * the name of the selector must be 'type'. + * to use an alternative selector name use the + * ASN1_CHOICE_END_selector() version. + */ + +# define ASN1_CHOICE(tname) \ + static const ASN1_TEMPLATE tname##_ch_tt[] + +# define ASN1_CHOICE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ + ASN1_CHOICE(tname) + +# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) + +# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) + +# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) + +# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) + +# define ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_CHOICE_END_cb(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/* This helps with the template wrapper form of ASN1_ITEM */ + +# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ + (flags), (tag), 0,\ + #name, ASN1_ITEM_ref(type) } + +/* These help with SEQUENCE or CHOICE components */ + +/* used to declare other types */ + +# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ + (flags), (tag), offsetof(stname, field),\ + #field, ASN1_ITEM_ref(type) } + +/* implicit and explicit helper macros */ + +# define ASN1_IMP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) + +# define ASN1_EXP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) + +/* Any defined by macros: the field used is in the table itself */ + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } +# else +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } +# endif +/* Plain simple type */ +# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) +/* Embedded simple type */ +# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) + +/* OPTIONAL simple type */ +# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) +# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) + +/* IMPLICIT tagged simple type */ +# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) +# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) + +/* IMPLICIT tagged OPTIONAL simple type */ +# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) + +/* Same as above but EXPLICIT */ + +# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) +# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) +# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) + +/* SEQUENCE OF type */ +# define ASN1_SEQUENCE_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) + +/* OPTIONAL SEQUENCE OF */ +# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Same as above but for SET OF */ + +# define ASN1_SET_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) + +# define ASN1_SET_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ + +# define ASN1_IMP_SET_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_EXP_SET_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +/* EXPLICIT using indefinite length constructed form */ +# define ASN1_NDEF_EXP(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) + +/* EXPLICIT OPTIONAL using indefinite length constructed form */ +# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) + +/* Macros for the ASN1_ADB structure */ + +# define ASN1_ADB(name) \ + static const ASN1_ADB_TABLE name##_adbtbl[] + +# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ + ;\ + static const ASN1_ADB name##_adb = {\ + flags,\ + offsetof(name, field),\ + adb_cb,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + } + +# else + +# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ + ;\ + static const ASN1_ITEM *name##_adb(void) \ + { \ + static const ASN1_ADB internal_adb = \ + {\ + flags,\ + offsetof(name, field),\ + adb_cb,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + }; \ + return (const ASN1_ITEM *) &internal_adb; \ + } \ + void dummy_function(void) + +# endif + +# define ADB_ENTRY(val, template) {val, template} + +# define ASN1_ADB_TEMPLATE(name) \ + static const ASN1_TEMPLATE name##_tt + +/* + * This is the ASN1 template structure that defines a wrapper round the + * actual type. It determines the actual position of the field in the value + * structure, various flags such as OPTIONAL and the field name. + */ + +struct ASN1_TEMPLATE_st { + unsigned long flags; /* Various flags */ + long tag; /* tag, not used if no tagging */ + unsigned long offset; /* Offset of this field in structure */ + const char *field_name; /* Field name */ + ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ +}; + +/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ + +# define ASN1_TEMPLATE_item(t) (t->item_ptr) +# define ASN1_TEMPLATE_adb(t) (t->item_ptr) + +typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; +typedef struct ASN1_ADB_st ASN1_ADB; + +struct ASN1_ADB_st { + unsigned long flags; /* Various flags */ + unsigned long offset; /* Offset of selector field */ + int (*adb_cb)(long *psel); /* Application callback */ + const ASN1_ADB_TABLE *tbl; /* Table of possible types */ + long tblcount; /* Number of entries in tbl */ + const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ + const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ +}; + +struct ASN1_ADB_TABLE_st { + long value; /* NID for an object or value for an int */ + const ASN1_TEMPLATE tt; /* item for this value */ +}; + +/* template flags */ + +/* Field is optional */ +# define ASN1_TFLG_OPTIONAL (0x1) + +/* Field is a SET OF */ +# define ASN1_TFLG_SET_OF (0x1 << 1) + +/* Field is a SEQUENCE OF */ +# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) + +/* + * Special case: this refers to a SET OF that will be sorted into DER order + * when encoded *and* the corresponding STACK will be modified to match the + * new order. + */ +# define ASN1_TFLG_SET_ORDER (0x3 << 1) + +/* Mask for SET OF or SEQUENCE OF */ +# define ASN1_TFLG_SK_MASK (0x3 << 1) + +/* + * These flags mean the tag should be taken from the tag field. If EXPLICIT + * then the underlying type is used for the inner tag. + */ + +/* IMPLICIT tagging */ +# define ASN1_TFLG_IMPTAG (0x1 << 3) + +/* EXPLICIT tagging, inner tag from underlying type */ +# define ASN1_TFLG_EXPTAG (0x2 << 3) + +# define ASN1_TFLG_TAG_MASK (0x3 << 3) + +/* context specific IMPLICIT */ +# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) + +/* context specific EXPLICIT */ +# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) + +/* + * If tagging is in force these determine the type of tag to use. Otherwise + * the tag is determined by the underlying type. These values reflect the + * actual octet format. + */ + +/* Universal tag */ +# define ASN1_TFLG_UNIVERSAL (0x0<<6) +/* Application tag */ +# define ASN1_TFLG_APPLICATION (0x1<<6) +/* Context specific tag */ +# define ASN1_TFLG_CONTEXT (0x2<<6) +/* Private tag */ +# define ASN1_TFLG_PRIVATE (0x3<<6) + +# define ASN1_TFLG_TAG_CLASS (0x3<<6) + +/* + * These are for ANY DEFINED BY type. In this case the 'item' field points to + * an ASN1_ADB structure which contains a table of values to decode the + * relevant type + */ + +# define ASN1_TFLG_ADB_MASK (0x3<<8) + +# define ASN1_TFLG_ADB_OID (0x1<<8) + +# define ASN1_TFLG_ADB_INT (0x1<<9) + +/* + * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes + * indefinite length constructed encoding to be used if required. + */ + +# define ASN1_TFLG_NDEF (0x1<<11) + +/* Field is embedded and not a pointer */ +# define ASN1_TFLG_EMBED (0x1 << 12) + +/* This is the actual ASN1 item itself */ + +struct ASN1_ITEM_st { + char itype; /* The item type, primitive, SEQUENCE, CHOICE + * or extern */ + long utype; /* underlying type */ + const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains + * the contents */ + long tcount; /* Number of templates if SEQUENCE or CHOICE */ + const void *funcs; /* functions that handle this type */ + long size; /* Structure size (usually) */ + const char *sname; /* Structure name */ +}; + +/*- + * These are values for the itype field and + * determine how the type is interpreted. + * + * For PRIMITIVE types the underlying type + * determines the behaviour if items is NULL. + * + * Otherwise templates must contain a single + * template and the type is treated in the + * same way as the type specified in the template. + * + * For SEQUENCE types the templates field points + * to the members, the size field is the + * structure size. + * + * For CHOICE types the templates field points + * to each possible member (typically a union) + * and the 'size' field is the offset of the + * selector. + * + * The 'funcs' field is used for application + * specific functions. + * + * The EXTERN type uses a new style d2i/i2d. + * The new style should be used where possible + * because it avoids things like the d2i IMPLICIT + * hack. + * + * MSTRING is a multiple string type, it is used + * for a CHOICE of character strings where the + * actual strings all occupy an ASN1_STRING + * structure. In this case the 'utype' field + * has a special meaning, it is used as a mask + * of acceptable types using the B_ASN1 constants. + * + * NDEF_SEQUENCE is the same as SEQUENCE except + * that it will use indefinite length constructed + * encoding if requested. + * + */ + +# define ASN1_ITYPE_PRIMITIVE 0x0 + +# define ASN1_ITYPE_SEQUENCE 0x1 + +# define ASN1_ITYPE_CHOICE 0x2 + +# define ASN1_ITYPE_EXTERN 0x4 + +# define ASN1_ITYPE_MSTRING 0x5 + +# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 + +/* + * Cache for ASN1 tag and length, so we don't keep re-reading it for things + * like CHOICE + */ + +struct ASN1_TLC_st { + char valid; /* Values below are valid */ + int ret; /* return value */ + long plen; /* length */ + int ptag; /* class value */ + int pclass; /* class value */ + int hdrlen; /* header length */ +}; + +/* Typedefs for ASN1 function pointers */ +typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); +typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); + +typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, + int indent, const char *fname, + const ASN1_PCTX *pctx); + +typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, + int *putype, const ASN1_ITEM *it); +typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, + int len, int utype, char *free_cont, + const ASN1_ITEM *it); +typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, + const ASN1_ITEM *it, int indent, + const ASN1_PCTX *pctx); + +typedef struct ASN1_EXTERN_FUNCS_st { + void *app_data; + ASN1_ex_new_func *asn1_ex_new; + ASN1_ex_free_func *asn1_ex_free; + ASN1_ex_free_func *asn1_ex_clear; + ASN1_ex_d2i *asn1_ex_d2i; + ASN1_ex_i2d *asn1_ex_i2d; + ASN1_ex_print_func *asn1_ex_print; +} ASN1_EXTERN_FUNCS; + +typedef struct ASN1_PRIMITIVE_FUNCS_st { + void *app_data; + unsigned long flags; + ASN1_ex_new_func *prim_new; + ASN1_ex_free_func *prim_free; + ASN1_ex_free_func *prim_clear; + ASN1_primitive_c2i *prim_c2i; + ASN1_primitive_i2c *prim_i2c; + ASN1_primitive_print *prim_print; +} ASN1_PRIMITIVE_FUNCS; + +/* + * This is the ASN1_AUX structure: it handles various miscellaneous + * requirements. For example the use of reference counts and an informational + * callback. The "informational callback" is called at various points during + * the ASN1 encoding and decoding. It can be used to provide minor + * customisation of the structures used. This is most useful where the + * supplied routines *almost* do the right thing but need some extra help at + * a few points. If the callback returns zero then it is assumed a fatal + * error has occurred and the main operation should be abandoned. If major + * changes in the default behaviour are required then an external type is + * more appropriate. + */ + +typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, + void *exarg); + +typedef struct ASN1_AUX_st { + void *app_data; + int flags; + int ref_offset; /* Offset of reference value */ + int ref_lock; /* Lock type to use */ + ASN1_aux_cb *asn1_cb; + int enc_offset; /* Offset of ASN1_ENCODING structure */ +} ASN1_AUX; + +/* For print related callbacks exarg points to this structure */ +typedef struct ASN1_PRINT_ARG_st { + BIO *out; + int indent; + const ASN1_PCTX *pctx; +} ASN1_PRINT_ARG; + +/* For streaming related callbacks exarg points to this structure */ +typedef struct ASN1_STREAM_ARG_st { + /* BIO to stream through */ + BIO *out; + /* BIO with filters appended */ + BIO *ndef_bio; + /* Streaming I/O boundary */ + unsigned char **boundary; +} ASN1_STREAM_ARG; + +/* Flags in ASN1_AUX */ + +/* Use a reference count */ +# define ASN1_AFLG_REFCOUNT 1 +/* Save the encoding of structure (useful for signatures) */ +# define ASN1_AFLG_ENCODING 2 +/* The Sequence length is invalid */ +# define ASN1_AFLG_BROKEN 4 + +/* operation values for asn1_cb */ + +# define ASN1_OP_NEW_PRE 0 +# define ASN1_OP_NEW_POST 1 +# define ASN1_OP_FREE_PRE 2 +# define ASN1_OP_FREE_POST 3 +# define ASN1_OP_D2I_PRE 4 +# define ASN1_OP_D2I_POST 5 +# define ASN1_OP_I2D_PRE 6 +# define ASN1_OP_I2D_POST 7 +# define ASN1_OP_PRINT_PRE 8 +# define ASN1_OP_PRINT_POST 9 +# define ASN1_OP_STREAM_PRE 10 +# define ASN1_OP_STREAM_POST 11 +# define ASN1_OP_DETACHED_PRE 12 +# define ASN1_OP_DETACHED_POST 13 + +/* Macro to implement a primitive type */ +# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) +# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement a multi string type */ +# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ + ASN1_ITEM_end(itname) + +# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_EXTERN, \ + tag, \ + NULL, \ + 0, \ + &fptrs, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +/* Macro to implement standard functions in terms of ASN1_ITEM structures */ + +# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) + +# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ + IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) + +# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ + pre stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + pre void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ + stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ + int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ + { \ + return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ + } + +# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ + static stname *d2i_##stname(stname **a, \ + const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ + ASN1_ITEM_rptr(stname)); \ + } \ + static int i2d_##stname(stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, \ + ASN1_ITEM_rptr(stname)); \ + } + +/* + * This includes evil casts to remove const: they will go away when full ASN1 + * constification is done. + */ +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ + stname * stname##_dup(stname *x) \ + { \ + return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ + } + +# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ + IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx) \ + { \ + return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ + ASN1_ITEM_rptr(itname), pctx); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ + IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) + +# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +/* external definitions for primitive types */ + +DECLARE_ASN1_ITEM(ASN1_BOOLEAN) +DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_SEQUENCE) +DECLARE_ASN1_ITEM(CBIGNUM) +DECLARE_ASN1_ITEM(BIGNUM) +DECLARE_ASN1_ITEM(INT32) +DECLARE_ASN1_ITEM(ZINT32) +DECLARE_ASN1_ITEM(UINT32) +DECLARE_ASN1_ITEM(ZUINT32) +DECLARE_ASN1_ITEM(INT64) +DECLARE_ASN1_ITEM(ZINT64) +DECLARE_ASN1_ITEM(UINT64) +DECLARE_ASN1_ITEM(ZUINT64) + +# if OPENSSL_API_COMPAT < 0x10200000L +/* + * LONG and ZLONG are strongly discouraged for use as stored data, as the + * underlying C type (long) differs in size depending on the architecture. + * They are designed with 32-bit longs in mind. + */ +DECLARE_ASN1_ITEM(LONG) +DECLARE_ASN1_ITEM(ZLONG) +# endif + +DEFINE_STACK_OF(ASN1_VALUE) + +/* Functions used internally by the ASN1 code */ + +int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); +void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); + +int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/async.h b/thrid-party/openssl/openssl/async.h new file mode 100644 index 000000000..7052b8905 --- /dev/null +++ b/thrid-party/openssl/openssl/async.h @@ -0,0 +1,76 @@ +/* + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifndef HEADER_ASYNC_H +# define HEADER_ASYNC_H + +#if defined(_WIN32) +# if defined(BASETYPES) || defined(_WINDEF_H) +/* application has to include to use this */ +#define OSSL_ASYNC_FD HANDLE +#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE +# endif +#else +#define OSSL_ASYNC_FD int +#define OSSL_BAD_ASYNC_FD -1 +#endif +# include + + +# ifdef __cplusplus +extern "C" { +# endif + +typedef struct async_job_st ASYNC_JOB; +typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; + +#define ASYNC_ERR 0 +#define ASYNC_NO_JOBS 1 +#define ASYNC_PAUSE 2 +#define ASYNC_FINISH 3 + +int ASYNC_init_thread(size_t max_size, size_t init_size); +void ASYNC_cleanup_thread(void); + +#ifdef OSSL_ASYNC_FD +ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); +void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); +int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, + OSSL_ASYNC_FD fd, + void *custom_data, + void (*cleanup)(ASYNC_WAIT_CTX *, const void *, + OSSL_ASYNC_FD, void *)); +int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, + OSSL_ASYNC_FD *fd, void **custom_data); +int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, + size_t *numfds); +int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, + size_t *numaddfds, OSSL_ASYNC_FD *delfd, + size_t *numdelfds); +int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); +#endif + +int ASYNC_is_capable(void); + +int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, + int (*func)(void *), void *args, size_t size); +int ASYNC_pause_job(void); + +ASYNC_JOB *ASYNC_get_current_job(void); +ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); +void ASYNC_block_pause(void); +void ASYNC_unblock_pause(void); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/asyncerr.h b/thrid-party/openssl/openssl/asyncerr.h new file mode 100644 index 000000000..91afbbb2f --- /dev/null +++ b/thrid-party/openssl/openssl/asyncerr.h @@ -0,0 +1,42 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ASYNCERR_H +# define HEADER_ASYNCERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ASYNC_strings(void); + +/* + * ASYNC function codes. + */ +# define ASYNC_F_ASYNC_CTX_NEW 100 +# define ASYNC_F_ASYNC_INIT_THREAD 101 +# define ASYNC_F_ASYNC_JOB_NEW 102 +# define ASYNC_F_ASYNC_PAUSE_JOB 103 +# define ASYNC_F_ASYNC_START_FUNC 104 +# define ASYNC_F_ASYNC_START_JOB 105 +# define ASYNC_F_ASYNC_WAIT_CTX_SET_WAIT_FD 106 + +/* + * ASYNC reason codes. + */ +# define ASYNC_R_FAILED_TO_SET_POOL 101 +# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 +# define ASYNC_R_INIT_FAILED 105 +# define ASYNC_R_INVALID_POOL_SIZE 103 + +#endif diff --git a/thrid-party/openssl/openssl/bio.h b/thrid-party/openssl/openssl/bio.h new file mode 100644 index 000000000..e1fddfb79 --- /dev/null +++ b/thrid-party/openssl/openssl/bio.h @@ -0,0 +1,800 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BIO_H +# define HEADER_BIO_H + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# endif +# include + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* There are the classes of BIOs */ +# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ +# define BIO_TYPE_FILTER 0x0200 +# define BIO_TYPE_SOURCE_SINK 0x0400 + +/* These are the 'types' of BIOs */ +# define BIO_TYPE_NONE 0 +# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) + +# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) +# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) +# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) +# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) +# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) +# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) + +# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ +# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) +# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ +# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) +# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) +# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) +# ifndef OPENSSL_NO_SCTP +# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# endif + +#define BIO_TYPE_START 128 + +/* + * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. + * BIO_set_fp(in,stdin,BIO_NOCLOSE); + */ +# define BIO_NOCLOSE 0x00 +# define BIO_CLOSE 0x01 + +/* + * These are used in the following macros and are passed to BIO_ctrl() + */ +# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ +# define BIO_CTRL_EOF 2/* opt - are we at the eof */ +# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ +# define BIO_CTRL_SET 4/* man - set the 'IO' type */ +# define BIO_CTRL_GET 5/* man - get the 'IO' type */ +# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ +# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ +# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ +# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ +# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ +# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ +# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ +# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ +# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ +# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ + +# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ +# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ + +/* dgram BIO stuff */ +# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ +# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected + * socket to be passed in */ +# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ +# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ + +# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ + +/* #ifdef IP_MTU_DISCOVER */ +# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ +/* #endif */ + +# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ +# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 +# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ +# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. + * want to use this if asking + * the kernel fails */ + +# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was + * exceed in the previous write + * operation */ + +# define BIO_CTRL_DGRAM_GET_PEER 46 +# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ + +# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout + * to adjust socket timeouts */ +# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 + +# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 + +/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ +# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 +# ifndef OPENSSL_NO_SCTP +/* SCTP stuff */ +# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 +# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 +# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 +# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 +# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 +# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 +# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 +# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 +# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 +# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 +# endif + +# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 + +/* modifiers */ +# define BIO_FP_READ 0x02 +# define BIO_FP_WRITE 0x04 +# define BIO_FP_APPEND 0x08 +# define BIO_FP_TEXT 0x10 + +# define BIO_FLAGS_READ 0x01 +# define BIO_FLAGS_WRITE 0x02 +# define BIO_FLAGS_IO_SPECIAL 0x04 +# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) +# define BIO_FLAGS_SHOULD_RETRY 0x08 +# ifndef BIO_FLAGS_UPLINK +/* + * "UPLINK" flag denotes file descriptors provided by application. It + * defaults to 0, as most platforms don't require UPLINK interface. + */ +# define BIO_FLAGS_UPLINK 0 +# endif + +# define BIO_FLAGS_BASE64_NO_NL 0x100 + +/* + * This is used with memory BIOs: + * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; + * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. + */ +# define BIO_FLAGS_MEM_RDONLY 0x200 +# define BIO_FLAGS_NONCLEAR_RST 0x400 + +typedef union bio_addr_st BIO_ADDR; +typedef struct bio_addrinfo_st BIO_ADDRINFO; + +int BIO_get_new_index(void); +void BIO_set_flags(BIO *b, int flags); +int BIO_test_flags(const BIO *b, int flags); +void BIO_clear_flags(BIO *b, int flags); + +# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) +# define BIO_set_retry_special(b) \ + BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_read(b) \ + BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_write(b) \ + BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) + +/* These are normally used internally in BIOs */ +# define BIO_clear_retry_flags(b) \ + BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_get_retry_flags(b) \ + BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) + +/* These should be used by the application to tell why we should retry */ +# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) +# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) +# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) +# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) +# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) + +/* + * The next three are used in conjunction with the BIO_should_io_special() + * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int + * *reason); will walk the BIO stack and return the 'reason' for the special + * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return + * the code. + */ +/* + * Returned from the SSL bio when the certificate retrieval code had an error + */ +# define BIO_RR_SSL_X509_LOOKUP 0x01 +/* Returned from the connect BIO when a connect would have blocked */ +# define BIO_RR_CONNECT 0x02 +/* Returned from the accept BIO when an accept would have blocked */ +# define BIO_RR_ACCEPT 0x03 + +/* These are passed by the BIO callback */ +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 + +/* + * The callback is called before and after the underling operation, The + * BIO_CB_RETURN flag indicates if it is after the call + */ +# define BIO_CB_RETURN 0x80 +# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) +# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) +# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) + +typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, + long argl, long ret); +typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, + size_t len, int argi, + long argl, int ret, size_t *processed); +BIO_callback_fn BIO_get_callback(const BIO *b); +void BIO_set_callback(BIO *b, BIO_callback_fn callback); + +BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); +void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); + +char *BIO_get_callback_arg(const BIO *b); +void BIO_set_callback_arg(BIO *b, char *arg); + +typedef struct bio_method_st BIO_METHOD; + +const char *BIO_method_name(const BIO *b); +int BIO_method_type(const BIO *b); + +typedef int BIO_info_cb(BIO *, int, int); +typedef BIO_info_cb bio_info_cb; /* backward compatibility */ + +DEFINE_STACK_OF(BIO) + +/* Prefix and suffix callback in ASN1 BIO */ +typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, + void *parg); + +# ifndef OPENSSL_NO_SCTP +/* SCTP parameter structs */ +struct bio_dgram_sctp_sndinfo { + uint16_t snd_sid; + uint16_t snd_flags; + uint32_t snd_ppid; + uint32_t snd_context; +}; + +struct bio_dgram_sctp_rcvinfo { + uint16_t rcv_sid; + uint16_t rcv_ssn; + uint16_t rcv_flags; + uint32_t rcv_ppid; + uint32_t rcv_tsn; + uint32_t rcv_cumtsn; + uint32_t rcv_context; +}; + +struct bio_dgram_sctp_prinfo { + uint16_t pr_policy; + uint32_t pr_value; +}; +# endif + +/* + * #define BIO_CONN_get_param_hostname BIO_ctrl + */ + +# define BIO_C_SET_CONNECT 100 +# define BIO_C_DO_STATE_MACHINE 101 +# define BIO_C_SET_NBIO 102 +/* # define BIO_C_SET_PROXY_PARAM 103 */ +# define BIO_C_SET_FD 104 +# define BIO_C_GET_FD 105 +# define BIO_C_SET_FILE_PTR 106 +# define BIO_C_GET_FILE_PTR 107 +# define BIO_C_SET_FILENAME 108 +# define BIO_C_SET_SSL 109 +# define BIO_C_GET_SSL 110 +# define BIO_C_SET_MD 111 +# define BIO_C_GET_MD 112 +# define BIO_C_GET_CIPHER_STATUS 113 +# define BIO_C_SET_BUF_MEM 114 +# define BIO_C_GET_BUF_MEM_PTR 115 +# define BIO_C_GET_BUFF_NUM_LINES 116 +# define BIO_C_SET_BUFF_SIZE 117 +# define BIO_C_SET_ACCEPT 118 +# define BIO_C_SSL_MODE 119 +# define BIO_C_GET_MD_CTX 120 +/* # define BIO_C_GET_PROXY_PARAM 121 */ +# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ +# define BIO_C_GET_CONNECT 123 +# define BIO_C_GET_ACCEPT 124 +# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 +# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 +# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 +# define BIO_C_FILE_SEEK 128 +# define BIO_C_GET_CIPHER_CTX 129 +# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input + * value */ +# define BIO_C_SET_BIND_MODE 131 +# define BIO_C_GET_BIND_MODE 132 +# define BIO_C_FILE_TELL 133 +# define BIO_C_GET_SOCKS 134 +# define BIO_C_SET_SOCKS 135 + +# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ +# define BIO_C_GET_WRITE_BUF_SIZE 137 +# define BIO_C_MAKE_BIO_PAIR 138 +# define BIO_C_DESTROY_BIO_PAIR 139 +# define BIO_C_GET_WRITE_GUARANTEE 140 +# define BIO_C_GET_READ_REQUEST 141 +# define BIO_C_SHUTDOWN_WR 142 +# define BIO_C_NREAD0 143 +# define BIO_C_NREAD 144 +# define BIO_C_NWRITE0 145 +# define BIO_C_NWRITE 146 +# define BIO_C_RESET_READ_REQUEST 147 +# define BIO_C_SET_MD_CTX 148 + +# define BIO_C_SET_PREFIX 149 +# define BIO_C_GET_PREFIX 150 +# define BIO_C_SET_SUFFIX 151 +# define BIO_C_GET_SUFFIX 152 + +# define BIO_C_SET_EX_ARG 153 +# define BIO_C_GET_EX_ARG 154 + +# define BIO_C_SET_CONNECT_MODE 155 + +# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) +# define BIO_get_app_data(s) BIO_get_ex_data(s,0) + +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) + +# ifndef OPENSSL_NO_SOCK +/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ +/* Note: the underlying operating system may not support some of them */ +# define BIO_FAMILY_IPV4 4 +# define BIO_FAMILY_IPV6 6 +# define BIO_FAMILY_IPANY 256 + +/* BIO_s_connect() */ +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ + (char *)(name)) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ + (char *)(port)) +# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ + (char *)(addr)) +# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) +# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) +# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) +# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) +# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) + +/* BIO_s_accept() */ +# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ + (char *)(name)) +# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ + (char *)(port)) +# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) +# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) +# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) +# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) +/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ +# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ + (char *)(bio)) +# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) +# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) + +/* Aliases kept for backward compatibility */ +# define BIO_BIND_NORMAL 0 +# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR +# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR +# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) + +/* BIO_s_accept() and BIO_s_connect() */ +# define BIO_do_connect(b) BIO_do_handshake(b) +# define BIO_do_accept(b) BIO_do_handshake(b) +# endif /* OPENSSL_NO_SOCK */ + +# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) + +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ +# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) +# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) + +/* BIO_s_file() */ +# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) +# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) + +/* BIO_s_fd() and BIO_s_file() */ +# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) +# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) + +/* + * name is cast to lose const, but might be better to route through a + * function so we can do it safely + */ +# ifdef CONST_STRICT +/* + * If you are wondering why this isn't defined, its because CONST_STRICT is + * purely a compile-time kludge to allow const to be checked. + */ +int BIO_read_filename(BIO *b, const char *name); +# else +# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ,(char *)(name)) +# endif +# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_WRITE,name) +# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_APPEND,name) +# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) + +/* + * WARNING WARNING, this ups the reference count on the read bio of the SSL + * structure. This is because the ssl read BIO is now pointed to by the + * next_bio field in the bio. So when you free the BIO, make sure you are + * doing a BIO_free_all() to catch the underlying BIO. + */ +# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) +# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) +# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) +# define BIO_set_ssl_renegotiate_bytes(b,num) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) +# define BIO_get_num_renegotiates(b) \ + BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) +# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) + +/* defined in evp.h */ +/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ + +# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) +# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) +# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ + (char *)(pp)) +# define BIO_set_mem_eof_return(b,v) \ + BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) + +/* For the BIO_f_buffer() type */ +# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) +# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) +# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) +# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) +# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) + +/* Don't use the next one unless you know what you are doing :-) */ +# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) + +# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) +# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) +# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) +# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) +# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) +# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) +/* ...pending macros have inappropriate return type */ +size_t BIO_ctrl_pending(BIO *b); +size_t BIO_ctrl_wpending(BIO *b); +# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) +# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ + cbp) +# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) + +/* For the BIO_f_buffer() type */ +# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) +# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) + +/* For BIO_s_bio() */ +# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) +# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) +# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) +# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) +# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) +/* macros with inappropriate type -- but ...pending macros use int too: */ +# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) +# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) +size_t BIO_ctrl_get_write_guarantee(BIO *b); +size_t BIO_ctrl_get_read_request(BIO *b); +int BIO_ctrl_reset_read_request(BIO *b); + +/* ctrl macros for dgram */ +# define BIO_ctrl_dgram_connect(b,peer) \ + (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) +# define BIO_ctrl_set_connected(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) +# define BIO_dgram_recv_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) +# define BIO_dgram_send_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) +# define BIO_dgram_get_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) +# define BIO_dgram_set_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_get_mtu_overhead(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) + +#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) +int BIO_set_ex_data(BIO *bio, int idx, void *data); +void *BIO_get_ex_data(BIO *bio, int idx); +uint64_t BIO_number_read(BIO *bio); +uint64_t BIO_number_written(BIO *bio); + +/* For BIO_f_asn1() */ +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free); +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free); +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free); +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free); + +const BIO_METHOD *BIO_s_file(void); +BIO *BIO_new_file(const char *filename, const char *mode); +# ifndef OPENSSL_NO_STDIO +BIO *BIO_new_fp(FILE *stream, int close_flag); +# endif +BIO *BIO_new(const BIO_METHOD *type); +int BIO_free(BIO *a); +void BIO_set_data(BIO *a, void *ptr); +void *BIO_get_data(BIO *a); +void BIO_set_init(BIO *a, int init); +int BIO_get_init(BIO *a); +void BIO_set_shutdown(BIO *a, int shut); +int BIO_get_shutdown(BIO *a); +void BIO_vfree(BIO *a); +int BIO_up_ref(BIO *a); +int BIO_read(BIO *b, void *data, int dlen); +int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +int BIO_gets(BIO *bp, char *buf, int size); +int BIO_write(BIO *b, const void *data, int dlen); +int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +int BIO_puts(BIO *bp, const char *buf); +int BIO_indent(BIO *b, int indent, int max); +long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); +long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); +void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); +BIO *BIO_push(BIO *b, BIO *append); +BIO *BIO_pop(BIO *b); +void BIO_free_all(BIO *a); +BIO *BIO_find_type(BIO *b, int bio_type); +BIO *BIO_next(BIO *b); +void BIO_set_next(BIO *b, BIO *next); +BIO *BIO_get_retry_BIO(BIO *bio, int *reason); +int BIO_get_retry_reason(BIO *bio); +void BIO_set_retry_reason(BIO *bio, int reason); +BIO *BIO_dup_chain(BIO *in); + +int BIO_nread0(BIO *bio, char **buf); +int BIO_nread(BIO *bio, char **buf, int num); +int BIO_nwrite0(BIO *bio, char **buf); +int BIO_nwrite(BIO *bio, char **buf, int num); + +long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, + long argl, long ret); + +const BIO_METHOD *BIO_s_mem(void); +const BIO_METHOD *BIO_s_secmem(void); +BIO *BIO_new_mem_buf(const void *buf, int len); +# ifndef OPENSSL_NO_SOCK +const BIO_METHOD *BIO_s_socket(void); +const BIO_METHOD *BIO_s_connect(void); +const BIO_METHOD *BIO_s_accept(void); +# endif +const BIO_METHOD *BIO_s_fd(void); +const BIO_METHOD *BIO_s_log(void); +const BIO_METHOD *BIO_s_bio(void); +const BIO_METHOD *BIO_s_null(void); +const BIO_METHOD *BIO_f_null(void); +const BIO_METHOD *BIO_f_buffer(void); +const BIO_METHOD *BIO_f_linebuffer(void); +const BIO_METHOD *BIO_f_nbio_test(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_datagram(void); +int BIO_dgram_non_fatal_error(int error); +BIO *BIO_new_dgram(int fd, int close_flag); +# ifndef OPENSSL_NO_SCTP +const BIO_METHOD *BIO_s_datagram_sctp(void); +BIO *BIO_new_dgram_sctp(int fd, int close_flag); +int BIO_dgram_is_sctp(BIO *bio); +int BIO_dgram_sctp_notification_cb(BIO *b, + void (*handle_notifications) (BIO *bio, + void *context, + void *buf), + void *context); +int BIO_dgram_sctp_wait_for_dry(BIO *b); +int BIO_dgram_sctp_msg_waiting(BIO *b); +# endif +# endif + +# ifndef OPENSSL_NO_SOCK +int BIO_sock_should_retry(int i); +int BIO_sock_non_fatal_error(int error); +# endif + +int BIO_fd_should_retry(int i); +int BIO_fd_non_fatal_error(int error); +int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len); +int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len, int indent); +int BIO_dump(BIO *b, const char *bytes, int len); +int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); +# ifndef OPENSSL_NO_STDIO +int BIO_dump_fp(FILE *fp, const char *s, int len); +int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); +# endif +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen); + +# ifndef OPENSSL_NO_SOCK +BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, + const void *where, size_t wherelen, unsigned short port); +void BIO_ADDR_free(BIO_ADDR *); +void BIO_ADDR_clear(BIO_ADDR *ap); +int BIO_ADDR_family(const BIO_ADDR *ap); +int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); +unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); +char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_path_string(const BIO_ADDR *ap); + +const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); +const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); +void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); + +enum BIO_hostserv_priorities { + BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV +}; +int BIO_parse_hostserv(const char *hostserv, char **host, char **service, + enum BIO_hostserv_priorities hostserv_prio); +enum BIO_lookup_type { + BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER +}; +int BIO_lookup(const char *host, const char *service, + enum BIO_lookup_type lookup_type, + int family, int socktype, BIO_ADDRINFO **res); +int BIO_lookup_ex(const char *host, const char *service, + int lookup_type, int family, int socktype, int protocol, + BIO_ADDRINFO **res); +int BIO_sock_error(int sock); +int BIO_socket_ioctl(int fd, long type, void *arg); +int BIO_socket_nbio(int fd, int mode); +int BIO_sock_init(void); +# if OPENSSL_API_COMPAT < 0x10100000L +# define BIO_sock_cleanup() while(0) continue +# endif +int BIO_set_tcp_ndelay(int sock, int turn_on); + +DEPRECATEDIN_1_1_0(struct hostent *BIO_gethostbyname(const char *name)) +DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr)) +DEPRECATEDIN_1_1_0(int BIO_get_host_ip(const char *str, unsigned char *ip)) +DEPRECATEDIN_1_1_0(int BIO_get_accept_socket(char *host_port, int mode)) +DEPRECATEDIN_1_1_0(int BIO_accept(int sock, char **ip_port)) + +union BIO_sock_info_u { + BIO_ADDR *addr; +}; +enum BIO_sock_info_type { + BIO_SOCK_INFO_ADDRESS +}; +int BIO_sock_info(int sock, + enum BIO_sock_info_type type, union BIO_sock_info_u *info); + +# define BIO_SOCK_REUSEADDR 0x01 +# define BIO_SOCK_V6_ONLY 0x02 +# define BIO_SOCK_KEEPALIVE 0x04 +# define BIO_SOCK_NONBLOCK 0x08 +# define BIO_SOCK_NODELAY 0x10 + +int BIO_socket(int domain, int socktype, int protocol, int options); +int BIO_connect(int sock, const BIO_ADDR *addr, int options); +int BIO_bind(int sock, const BIO_ADDR *addr, int options); +int BIO_listen(int sock, const BIO_ADDR *addr, int options); +int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); +int BIO_closesocket(int sock); + +BIO *BIO_new_socket(int sock, int close_flag); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); +# endif /* OPENSSL_NO_SOCK*/ + +BIO *BIO_new_fd(int fd, int close_flag); + +int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +/* + * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. + * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default + * value. + */ + +void BIO_copy_next_retry(BIO *b); + +/* + * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); + */ + +# define ossl_bio__attr__(x) +# if defined(__GNUC__) && defined(__STDC_VERSION__) \ + && !defined(__APPLE__) + /* + * Because we support the 'z' modifier, which made its appearance in C99, + * we can't use __attribute__ with pre C99 dialects. + */ +# if __STDC_VERSION__ >= 199901L +# undef ossl_bio__attr__ +# define ossl_bio__attr__ __attribute__ +# if __GNUC__*10 + __GNUC_MINOR__ >= 44 +# define ossl_bio__printf__ __gnu_printf__ +# else +# define ossl_bio__printf__ __printf__ +# endif +# endif +# endif +int BIO_printf(BIO *bio, const char *format, ...) +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); +int BIO_vprintf(BIO *bio, const char *format, va_list args) +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); +int BIO_snprintf(char *buf, size_t n, const char *format, ...) +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); +int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); +# undef ossl_bio__attr__ +# undef ossl_bio__printf__ + + +BIO_METHOD *BIO_meth_new(int type, const char *name); +void BIO_meth_free(BIO_METHOD *biom); +int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); +int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, + size_t *); +int BIO_meth_set_write(BIO_METHOD *biom, + int (*write) (BIO *, const char *, int)); +int BIO_meth_set_write_ex(BIO_METHOD *biom, + int (*bwrite) (BIO *, const char *, size_t, size_t *)); +int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_read(BIO_METHOD *biom, + int (*read) (BIO *, char *, int)); +int BIO_meth_set_read_ex(BIO_METHOD *biom, + int (*bread) (BIO *, char *, size_t, size_t *)); +int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_puts(BIO_METHOD *biom, + int (*puts) (BIO *, const char *)); +int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +int BIO_meth_set_gets(BIO_METHOD *biom, + int (*gets) (BIO *, char *, int)); +long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); +int BIO_meth_set_ctrl(BIO_METHOD *biom, + long (*ctrl) (BIO *, int, long, void *)); +int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); +int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); +long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) + (BIO *, int, BIO_info_cb *); +int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, + long (*callback_ctrl) (BIO *, int, + BIO_info_cb *)); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/bioerr.h b/thrid-party/openssl/openssl/bioerr.h new file mode 100644 index 000000000..46e2c96ee --- /dev/null +++ b/thrid-party/openssl/openssl/bioerr.h @@ -0,0 +1,124 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BIOERR_H +# define HEADER_BIOERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BIO_strings(void); + +/* + * BIO function codes. + */ +# define BIO_F_ACPT_STATE 100 +# define BIO_F_ADDRINFO_WRAP 148 +# define BIO_F_ADDR_STRINGS 134 +# define BIO_F_BIO_ACCEPT 101 +# define BIO_F_BIO_ACCEPT_EX 137 +# define BIO_F_BIO_ACCEPT_NEW 152 +# define BIO_F_BIO_ADDR_NEW 144 +# define BIO_F_BIO_BIND 147 +# define BIO_F_BIO_CALLBACK_CTRL 131 +# define BIO_F_BIO_CONNECT 138 +# define BIO_F_BIO_CONNECT_NEW 153 +# define BIO_F_BIO_CTRL 103 +# define BIO_F_BIO_GETS 104 +# define BIO_F_BIO_GET_HOST_IP 106 +# define BIO_F_BIO_GET_NEW_INDEX 102 +# define BIO_F_BIO_GET_PORT 107 +# define BIO_F_BIO_LISTEN 139 +# define BIO_F_BIO_LOOKUP 135 +# define BIO_F_BIO_LOOKUP_EX 143 +# define BIO_F_BIO_MAKE_PAIR 121 +# define BIO_F_BIO_METH_NEW 146 +# define BIO_F_BIO_NEW 108 +# define BIO_F_BIO_NEW_DGRAM_SCTP 145 +# define BIO_F_BIO_NEW_FILE 109 +# define BIO_F_BIO_NEW_MEM_BUF 126 +# define BIO_F_BIO_NREAD 123 +# define BIO_F_BIO_NREAD0 124 +# define BIO_F_BIO_NWRITE 125 +# define BIO_F_BIO_NWRITE0 122 +# define BIO_F_BIO_PARSE_HOSTSERV 136 +# define BIO_F_BIO_PUTS 110 +# define BIO_F_BIO_READ 111 +# define BIO_F_BIO_READ_EX 105 +# define BIO_F_BIO_READ_INTERN 120 +# define BIO_F_BIO_SOCKET 140 +# define BIO_F_BIO_SOCKET_NBIO 142 +# define BIO_F_BIO_SOCK_INFO 141 +# define BIO_F_BIO_SOCK_INIT 112 +# define BIO_F_BIO_WRITE 113 +# define BIO_F_BIO_WRITE_EX 119 +# define BIO_F_BIO_WRITE_INTERN 128 +# define BIO_F_BUFFER_CTRL 114 +# define BIO_F_CONN_CTRL 127 +# define BIO_F_CONN_STATE 115 +# define BIO_F_DGRAM_SCTP_NEW 149 +# define BIO_F_DGRAM_SCTP_READ 132 +# define BIO_F_DGRAM_SCTP_WRITE 133 +# define BIO_F_DOAPR_OUTCH 150 +# define BIO_F_FILE_CTRL 116 +# define BIO_F_FILE_READ 130 +# define BIO_F_LINEBUFFER_CTRL 129 +# define BIO_F_LINEBUFFER_NEW 151 +# define BIO_F_MEM_WRITE 117 +# define BIO_F_NBIOF_NEW 154 +# define BIO_F_SLG_WRITE 155 +# define BIO_F_SSL_NEW 118 + +/* + * BIO reason codes. + */ +# define BIO_R_ACCEPT_ERROR 100 +# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 +# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 +# define BIO_R_BAD_FOPEN_MODE 101 +# define BIO_R_BROKEN_PIPE 124 +# define BIO_R_CONNECT_ERROR 103 +# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 +# define BIO_R_GETSOCKNAME_ERROR 132 +# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 +# define BIO_R_GETTING_SOCKTYPE 134 +# define BIO_R_INVALID_ARGUMENT 125 +# define BIO_R_INVALID_SOCKET 135 +# define BIO_R_IN_USE 123 +# define BIO_R_LENGTH_TOO_LONG 102 +# define BIO_R_LISTEN_V6_ONLY 136 +# define BIO_R_LOOKUP_RETURNED_NOTHING 142 +# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 +# define BIO_R_NBIO_CONNECT_ERROR 110 +# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 +# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 +# define BIO_R_NO_PORT_DEFINED 113 +# define BIO_R_NO_SUCH_FILE 128 +# define BIO_R_NULL_PARAMETER 115 +# define BIO_R_UNABLE_TO_BIND_SOCKET 117 +# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 +# define BIO_R_UNABLE_TO_KEEPALIVE 137 +# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 +# define BIO_R_UNABLE_TO_NODELAY 138 +# define BIO_R_UNABLE_TO_REUSEADDR 139 +# define BIO_R_UNAVAILABLE_IP_FAMILY 145 +# define BIO_R_UNINITIALIZED 120 +# define BIO_R_UNKNOWN_INFO_TYPE 140 +# define BIO_R_UNSUPPORTED_IP_FAMILY 146 +# define BIO_R_UNSUPPORTED_METHOD 121 +# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 +# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 +# define BIO_R_WSASTARTUP 122 + +#endif diff --git a/thrid-party/openssl/openssl/blowfish.h b/thrid-party/openssl/openssl/blowfish.h new file mode 100644 index 000000000..cd3e460e9 --- /dev/null +++ b/thrid-party/openssl/openssl/blowfish.h @@ -0,0 +1,61 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BLOWFISH_H +# define HEADER_BLOWFISH_H + +# include + +# ifndef OPENSSL_NO_BF +# include +# ifdef __cplusplus +extern "C" { +# endif + +# define BF_ENCRYPT 1 +# define BF_DECRYPT 0 + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! BF_LONG has to be at least 32 bits wide. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ +# define BF_LONG unsigned int + +# define BF_ROUNDS 16 +# define BF_BLOCK 8 + +typedef struct bf_key_st { + BF_LONG P[BF_ROUNDS + 2]; + BF_LONG S[4 * 256]; +} BF_KEY; + +void BF_set_key(BF_KEY *key, int len, const unsigned char *data); + +void BF_encrypt(BF_LONG *data, const BF_KEY *key); +void BF_decrypt(BF_LONG *data, const BF_KEY *key); + +void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, + const BF_KEY *key, int enc); +void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + const BF_KEY *schedule, unsigned char *ivec, int enc); +void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const BF_KEY *schedule, + unsigned char *ivec, int *num); +const char *BF_options(void); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/bn.h b/thrid-party/openssl/openssl/bn.h new file mode 100644 index 000000000..8af05d00e --- /dev/null +++ b/thrid-party/openssl/openssl/bn.h @@ -0,0 +1,539 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BN_H +# define HEADER_BN_H + +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * 64-bit processor with LP64 ABI + */ +# ifdef SIXTY_FOUR_BIT_LONG +# define BN_ULONG unsigned long +# define BN_BYTES 8 +# endif + +/* + * 64-bit processor other than LP64 ABI + */ +# ifdef SIXTY_FOUR_BIT +# define BN_ULONG unsigned long long +# define BN_BYTES 8 +# endif + +# ifdef THIRTY_TWO_BIT +# define BN_ULONG unsigned int +# define BN_BYTES 4 +# endif + +# define BN_BITS2 (BN_BYTES * 8) +# define BN_BITS (BN_BITS2 * 2) +# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) + +# define BN_FLG_MALLOCED 0x01 +# define BN_FLG_STATIC_DATA 0x02 + +/* + * avoid leaking exponent information through timing, + * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, + * BN_div() will call BN_div_no_branch, + * BN_mod_inverse() will call BN_mod_inverse_no_branch. + */ +# define BN_FLG_CONSTTIME 0x04 +# define BN_FLG_SECURE 0x08 + +# if OPENSSL_API_COMPAT < 0x00908000L +/* deprecated name for the flag */ +# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME +# define BN_FLG_FREE 0x8000 /* used for debugging */ +# endif + +void BN_set_flags(BIGNUM *b, int n); +int BN_get_flags(const BIGNUM *b, int n); + +/* Values for |top| in BN_rand() */ +#define BN_RAND_TOP_ANY -1 +#define BN_RAND_TOP_ONE 0 +#define BN_RAND_TOP_TWO 1 + +/* Values for |bottom| in BN_rand() */ +#define BN_RAND_BOTTOM_ANY 0 +#define BN_RAND_BOTTOM_ODD 1 + +/* + * get a clone of a BIGNUM with changed flags, for *temporary* use only (the + * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The + * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that + * has not been otherwise initialised or used. + */ +void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); + +/* Wrapper function to make using BN_GENCB easier */ +int BN_GENCB_call(BN_GENCB *cb, int a, int b); + +BN_GENCB *BN_GENCB_new(void); +void BN_GENCB_free(BN_GENCB *cb); + +/* Populate a BN_GENCB structure with an "old"-style callback */ +void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), + void *cb_arg); + +/* Populate a BN_GENCB structure with a "new"-style callback */ +void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), + void *cb_arg); + +void *BN_GENCB_get_arg(BN_GENCB *cb); + +# define BN_prime_checks 0 /* default: select number of iterations based + * on the size of the number */ + +/* + * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations + * that will be done for checking that a random number is probably prime. The + * error rate for accepting a composite number as prime depends on the size of + * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, + * and so the level is what you would expect for a key of double the size of the + * prime. + * + * This table is generated using the algorithm of FIPS PUB 186-4 + * Digital Signature Standard (DSS), section F.1, page 117. + * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) + * + * The following magma script was used to generate the output: + * securitybits:=125; + * k:=1024; + * for t:=1 to 65 do + * for M:=3 to Floor(2*Sqrt(k-1)-1) do + * S:=0; + * // Sum over m + * for m:=3 to M do + * s:=0; + * // Sum over j + * for j:=2 to m do + * s+:=(RealField(32)!2)^-(j+(k-1)/j); + * end for; + * S+:=2^(m-(m-1)*t)*s; + * end for; + * A:=2^(k-2-M*t); + * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; + * pkt:=2.00743*Log(2)*k*2^-k*(A+B); + * seclevel:=Floor(-Log(2,pkt)); + * if seclevel ge securitybits then + * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; + * break; + * end if; + * end for; + * if seclevel ge securitybits then break; end if; + * end for; + * + * It can be run online at: + * http://magma.maths.usyd.edu.au/calc + * + * And will output: + * k: 1024, security: 129 bits (t: 6, M: 23) + * + * k is the number of bits of the prime, securitybits is the level we want to + * reach. + * + * prime length | RSA key size | # MR tests | security level + * -------------+--------------|------------+--------------- + * (b) >= 6394 | >= 12788 | 3 | 256 bit + * (b) >= 3747 | >= 7494 | 3 | 192 bit + * (b) >= 1345 | >= 2690 | 4 | 128 bit + * (b) >= 1080 | >= 2160 | 5 | 128 bit + * (b) >= 852 | >= 1704 | 5 | 112 bit + * (b) >= 476 | >= 952 | 5 | 80 bit + * (b) >= 400 | >= 800 | 6 | 80 bit + * (b) >= 347 | >= 694 | 7 | 80 bit + * (b) >= 308 | >= 616 | 8 | 80 bit + * (b) >= 55 | >= 110 | 27 | 64 bit + * (b) >= 6 | >= 12 | 34 | 64 bit + */ + +# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ + (b) >= 1345 ? 4 : \ + (b) >= 476 ? 5 : \ + (b) >= 400 ? 6 : \ + (b) >= 347 ? 7 : \ + (b) >= 308 ? 8 : \ + (b) >= 55 ? 27 : \ + /* b >= 6 */ 34) + +# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) + +int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); +int BN_is_zero(const BIGNUM *a); +int BN_is_one(const BIGNUM *a); +int BN_is_word(const BIGNUM *a, const BN_ULONG w); +int BN_is_odd(const BIGNUM *a); + +# define BN_one(a) (BN_set_word((a),1)) + +void BN_zero_ex(BIGNUM *a); + +# if OPENSSL_API_COMPAT >= 0x00908000L +# define BN_zero(a) BN_zero_ex(a) +# else +# define BN_zero(a) (BN_set_word((a),0)) +# endif + +const BIGNUM *BN_value_one(void); +char *BN_options(void); +BN_CTX *BN_CTX_new(void); +BN_CTX *BN_CTX_secure_new(void); +void BN_CTX_free(BN_CTX *c); +void BN_CTX_start(BN_CTX *ctx); +BIGNUM *BN_CTX_get(BN_CTX *ctx); +void BN_CTX_end(BN_CTX *ctx); +int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_num_bits(const BIGNUM *a); +int BN_num_bits_word(BN_ULONG l); +int BN_security_bits(int L, int N); +BIGNUM *BN_new(void); +BIGNUM *BN_secure_new(void); +void BN_clear_free(BIGNUM *a); +BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); +void BN_swap(BIGNUM *a, BIGNUM *b); +BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2bin(const BIGNUM *a, unsigned char *to); +int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); +BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); +BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2mpi(const BIGNUM *a, unsigned char *to); +int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +/** BN_set_negative sets sign of a BIGNUM + * \param b pointer to the BIGNUM object + * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise + */ +void BN_set_negative(BIGNUM *b, int n); +/** BN_is_negative returns 1 if the BIGNUM is negative + * \param b pointer to the BIGNUM object + * \return 1 if a < 0 and 0 otherwise + */ +int BN_is_negative(const BIGNUM *b); + +int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, + BN_CTX *ctx); +# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) +int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); +int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); + +BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); +BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); +int BN_mul_word(BIGNUM *a, BN_ULONG w); +int BN_add_word(BIGNUM *a, BN_ULONG w); +int BN_sub_word(BIGNUM *a, BN_ULONG w); +int BN_set_word(BIGNUM *a, BN_ULONG w); +BN_ULONG BN_get_word(const BIGNUM *a); + +int BN_cmp(const BIGNUM *a, const BIGNUM *b); +void BN_free(BIGNUM *a); +int BN_is_bit_set(const BIGNUM *a, int n); +int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_lshift1(BIGNUM *r, const BIGNUM *a); +int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); +int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, + const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, + BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); + +int BN_mask_bits(BIGNUM *a, int n); +# ifndef OPENSSL_NO_STDIO +int BN_print_fp(FILE *fp, const BIGNUM *a); +# endif +int BN_print(BIO *bio, const BIGNUM *a); +int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); +int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_rshift1(BIGNUM *r, const BIGNUM *a); +void BN_clear(BIGNUM *a); +BIGNUM *BN_dup(const BIGNUM *a); +int BN_ucmp(const BIGNUM *a, const BIGNUM *b); +int BN_set_bit(BIGNUM *a, int n); +int BN_clear_bit(BIGNUM *a, int n); +char *BN_bn2hex(const BIGNUM *a); +char *BN_bn2dec(const BIGNUM *a); +int BN_hex2bn(BIGNUM **a, const char *str); +int BN_dec2bn(BIGNUM **a, const char *str); +int BN_asc2bn(BIGNUM **a, const char *str); +int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns + * -2 for + * error */ +BIGNUM *BN_mod_inverse(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); +BIGNUM *BN_mod_sqrt(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); + +void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); + +/* Deprecated versions */ +DEPRECATEDIN_0_9_8(BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, + const BIGNUM *add, + const BIGNUM *rem, + void (*callback) (int, int, + void *), + void *cb_arg)) +DEPRECATEDIN_0_9_8(int + BN_is_prime(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg)) +DEPRECATEDIN_0_9_8(int + BN_is_prime_fasttest(const BIGNUM *p, int nchecks, + void (*callback) (int, int, void *), + BN_CTX *ctx, void *cb_arg, + int do_trial_division)) + +/* Newer versions */ +int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, + const BIGNUM *rem, BN_GENCB *cb); +int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); +int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, + int do_trial_division, BN_GENCB *cb); + +int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); + +int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, + const BIGNUM *Xp, const BIGNUM *Xp1, + const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, + BN_GENCB *cb); +int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, + BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, + BN_CTX *ctx, BN_GENCB *cb); + +BN_MONT_CTX *BN_MONT_CTX_new(void); +int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + BN_MONT_CTX *mont, BN_CTX *ctx); +int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); +int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); +void BN_MONT_CTX_free(BN_MONT_CTX *mont); +int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); +BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); +BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, + const BIGNUM *mod, BN_CTX *ctx); + +/* BN_BLINDING flags */ +# define BN_BLINDING_NO_UPDATE 0x00000001 +# define BN_BLINDING_NO_RECREATE 0x00000002 + +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); +void BN_BLINDING_free(BN_BLINDING *b); +int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); +int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, + BN_CTX *); + +int BN_BLINDING_is_current_thread(BN_BLINDING *b); +void BN_BLINDING_set_current_thread(BN_BLINDING *b); +int BN_BLINDING_lock(BN_BLINDING *b); +int BN_BLINDING_unlock(BN_BLINDING *b); + +unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); +void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); +BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); + +DEPRECATEDIN_0_9_8(void BN_set_params(int mul, int high, int low, int mont)) +DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3 + * mont */ + +BN_RECP_CTX *BN_RECP_CTX_new(void); +void BN_RECP_CTX_free(BN_RECP_CTX *recp); +int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); +int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, + BN_RECP_CTX *recp, BN_CTX *ctx); +int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, + BN_RECP_CTX *recp, BN_CTX *ctx); + +# ifndef OPENSSL_NO_EC2M + +/* + * Functions for arithmetic over binary polynomials represented by BIGNUMs. + * The BIGNUM::neg property of BIGNUMs representing binary polynomials is + * ignored. Note that input arguments are not const so that their bit arrays + * can be expanded to the appropriate size if needed. + */ + +/* + * r = a + b + */ +int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) +/* + * r=a mod p + */ +int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) +/*- + * Some functions allow for representation of the irreducible polynomials + * as an unsigned int[], say p. The irreducible f(t) is then of the form: + * t^p[0] + t^p[1] + ... + t^p[k] + * where m = p[0] > p[1] > ... > p[k] = 0. + */ +/* r = a mod p */ +int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); +/* r = (a * b) mod p */ +int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a * a) mod p */ +int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], + BN_CTX *ctx); +/* r = (1 / b) mod p */ +int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], + BN_CTX *ctx); +/* r = (a / b) mod p */ +int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = (a ^ b) mod p */ +int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +/* r = sqrt(a) mod p */ +int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +/* r^2 + r = a mod p */ +int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); +int BN_GF2m_arr2poly(const int p[], BIGNUM *a); + +# endif + +/* + * faster mod functions for the 'NIST primes' 0 <= a < p^2 + */ +int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); + +const BIGNUM *BN_get0_nist_prime_192(void); +const BIGNUM *BN_get0_nist_prime_224(void); +const BIGNUM *BN_get0_nist_prime_256(void); +const BIGNUM *BN_get0_nist_prime_384(void); +const BIGNUM *BN_get0_nist_prime_521(void); + +int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, + const BIGNUM *field, BN_CTX *ctx); + +int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, + const BIGNUM *priv, const unsigned char *message, + size_t message_len, BN_CTX *ctx); + +/* Primes from RFC 2409 */ +BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); +BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); + +/* Primes from RFC 3526 */ +BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 +# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 +# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 +# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 +# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 +# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 +# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 +# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 +# endif + +int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/bnerr.h b/thrid-party/openssl/openssl/bnerr.h new file mode 100644 index 000000000..9f3c7cfaa --- /dev/null +++ b/thrid-party/openssl/openssl/bnerr.h @@ -0,0 +1,100 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BNERR_H +# define HEADER_BNERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BN_strings(void); + +/* + * BN function codes. + */ +# define BN_F_BNRAND 127 +# define BN_F_BNRAND_RANGE 138 +# define BN_F_BN_BLINDING_CONVERT_EX 100 +# define BN_F_BN_BLINDING_CREATE_PARAM 128 +# define BN_F_BN_BLINDING_INVERT_EX 101 +# define BN_F_BN_BLINDING_NEW 102 +# define BN_F_BN_BLINDING_UPDATE 103 +# define BN_F_BN_BN2DEC 104 +# define BN_F_BN_BN2HEX 105 +# define BN_F_BN_COMPUTE_WNAF 142 +# define BN_F_BN_CTX_GET 116 +# define BN_F_BN_CTX_NEW 106 +# define BN_F_BN_CTX_START 129 +# define BN_F_BN_DIV 107 +# define BN_F_BN_DIV_RECP 130 +# define BN_F_BN_EXP 123 +# define BN_F_BN_EXPAND_INTERNAL 120 +# define BN_F_BN_GENCB_NEW 143 +# define BN_F_BN_GENERATE_DSA_NONCE 140 +# define BN_F_BN_GENERATE_PRIME_EX 141 +# define BN_F_BN_GF2M_MOD 131 +# define BN_F_BN_GF2M_MOD_EXP 132 +# define BN_F_BN_GF2M_MOD_MUL 133 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 +# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 +# define BN_F_BN_GF2M_MOD_SQR 136 +# define BN_F_BN_GF2M_MOD_SQRT 137 +# define BN_F_BN_LSHIFT 145 +# define BN_F_BN_MOD_EXP2_MONT 118 +# define BN_F_BN_MOD_EXP_MONT 109 +# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 +# define BN_F_BN_MOD_EXP_MONT_WORD 117 +# define BN_F_BN_MOD_EXP_RECP 125 +# define BN_F_BN_MOD_EXP_SIMPLE 126 +# define BN_F_BN_MOD_INVERSE 110 +# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 +# define BN_F_BN_MOD_LSHIFT_QUICK 119 +# define BN_F_BN_MOD_SQRT 121 +# define BN_F_BN_MONT_CTX_NEW 149 +# define BN_F_BN_MPI2BN 112 +# define BN_F_BN_NEW 113 +# define BN_F_BN_POOL_GET 147 +# define BN_F_BN_RAND 114 +# define BN_F_BN_RAND_RANGE 122 +# define BN_F_BN_RECP_CTX_NEW 150 +# define BN_F_BN_RSHIFT 146 +# define BN_F_BN_SET_WORDS 144 +# define BN_F_BN_STACK_PUSH 148 +# define BN_F_BN_USUB 115 + +/* + * BN reason codes. + */ +# define BN_R_ARG2_LT_ARG3 100 +# define BN_R_BAD_RECIPROCAL 101 +# define BN_R_BIGNUM_TOO_LONG 114 +# define BN_R_BITS_TOO_SMALL 118 +# define BN_R_CALLED_WITH_EVEN_MODULUS 102 +# define BN_R_DIV_BY_ZERO 103 +# define BN_R_ENCODING_ERROR 104 +# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 +# define BN_R_INPUT_NOT_REDUCED 110 +# define BN_R_INVALID_LENGTH 106 +# define BN_R_INVALID_RANGE 115 +# define BN_R_INVALID_SHIFT 119 +# define BN_R_NOT_A_SQUARE 111 +# define BN_R_NOT_INITIALIZED 107 +# define BN_R_NO_INVERSE 108 +# define BN_R_NO_SOLUTION 116 +# define BN_R_PRIVATE_KEY_TOO_LARGE 117 +# define BN_R_P_IS_NOT_PRIME 112 +# define BN_R_TOO_MANY_ITERATIONS 113 +# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 + +#endif diff --git a/thrid-party/openssl/openssl/buffer.h b/thrid-party/openssl/openssl/buffer.h new file mode 100644 index 000000000..d2765766b --- /dev/null +++ b/thrid-party/openssl/openssl/buffer.h @@ -0,0 +1,58 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BUFFER_H +# define HEADER_BUFFER_H + +# include +# ifndef HEADER_CRYPTO_H +# include +# endif +# include + + +#ifdef __cplusplus +extern "C" { +#endif + +# include +# include + +/* + * These names are outdated as of OpenSSL 1.1; a future release + * will move them to be deprecated. + */ +# define BUF_strdup(s) OPENSSL_strdup(s) +# define BUF_strndup(s, size) OPENSSL_strndup(s, size) +# define BUF_memdup(data, size) OPENSSL_memdup(data, size) +# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) +# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) +# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) + +struct buf_mem_st { + size_t length; /* current number of bytes */ + char *data; + size_t max; /* size of buffer */ + unsigned long flags; +}; + +# define BUF_MEM_FLAG_SECURE 0x01 + +BUF_MEM *BUF_MEM_new(void); +BUF_MEM *BUF_MEM_new_ex(unsigned long flags); +void BUF_MEM_free(BUF_MEM *a); +size_t BUF_MEM_grow(BUF_MEM *str, size_t len); +size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/buffererr.h b/thrid-party/openssl/openssl/buffererr.h new file mode 100644 index 000000000..04f6ff7a8 --- /dev/null +++ b/thrid-party/openssl/openssl/buffererr.h @@ -0,0 +1,34 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_BUFERR_H +# define HEADER_BUFERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_BUF_strings(void); + +/* + * BUF function codes. + */ +# define BUF_F_BUF_MEM_GROW 100 +# define BUF_F_BUF_MEM_GROW_CLEAN 105 +# define BUF_F_BUF_MEM_NEW 101 + +/* + * BUF reason codes. + */ + +#endif diff --git a/thrid-party/openssl/openssl/camellia.h b/thrid-party/openssl/openssl/camellia.h new file mode 100644 index 000000000..151f3c134 --- /dev/null +++ b/thrid-party/openssl/openssl/camellia.h @@ -0,0 +1,83 @@ +/* + * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CAMELLIA_H +# define HEADER_CAMELLIA_H + +# include + +# ifndef OPENSSL_NO_CAMELLIA +# include +#ifdef __cplusplus +extern "C" { +#endif + +# define CAMELLIA_ENCRYPT 1 +# define CAMELLIA_DECRYPT 0 + +/* + * Because array size can't be a const in C, the following two are macros. + * Both sizes are in bytes. + */ + +/* This should be a hidden type, but EVP requires that the size be known */ + +# define CAMELLIA_BLOCK_SIZE 16 +# define CAMELLIA_TABLE_BYTE_LEN 272 +# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) + +typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match + * with WORD */ + +struct camellia_key_st { + union { + double d; /* ensures 64-bit align */ + KEY_TABLE_TYPE rd_key; + } u; + int grand_rounds; +}; +typedef struct camellia_key_st CAMELLIA_KEY; + +int Camellia_set_key(const unsigned char *userKey, const int bits, + CAMELLIA_KEY *key); + +void Camellia_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); +void Camellia_decrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key); + +void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAMELLIA_KEY *key, const int enc); +void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, const int enc); +void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num, const int enc); +void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char *ivec, int *num); +void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const CAMELLIA_KEY *key, + unsigned char ivec[CAMELLIA_BLOCK_SIZE], + unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], + unsigned int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/cast.h b/thrid-party/openssl/openssl/cast.h new file mode 100644 index 000000000..2cc89ae01 --- /dev/null +++ b/thrid-party/openssl/openssl/cast.h @@ -0,0 +1,53 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CAST_H +# define HEADER_CAST_H + +# include + +# ifndef OPENSSL_NO_CAST +# ifdef __cplusplus +extern "C" { +# endif + +# define CAST_ENCRYPT 1 +# define CAST_DECRYPT 0 + +# define CAST_LONG unsigned int + +# define CAST_BLOCK 8 +# define CAST_KEY_LENGTH 16 + +typedef struct cast_key_st { + CAST_LONG data[32]; + int short_key; /* Use reduced rounds for short key */ +} CAST_KEY; + +void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); +void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, + const CAST_KEY *key, int enc); +void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); +void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *ks, unsigned char *iv, + int enc); +void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, const CAST_KEY *schedule, + unsigned char *ivec, int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/cmac.h b/thrid-party/openssl/openssl/cmac.h new file mode 100644 index 000000000..3535a9abf --- /dev/null +++ b/thrid-party/openssl/openssl/cmac.h @@ -0,0 +1,41 @@ +/* + * Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CMAC_H +# define HEADER_CMAC_H + +# ifndef OPENSSL_NO_CMAC + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +/* Opaque */ +typedef struct CMAC_CTX_st CMAC_CTX; + +CMAC_CTX *CMAC_CTX_new(void); +void CMAC_CTX_cleanup(CMAC_CTX *ctx); +void CMAC_CTX_free(CMAC_CTX *ctx); +EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); +int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); + +int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, + const EVP_CIPHER *cipher, ENGINE *impl); +int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); +int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); +int CMAC_resume(CMAC_CTX *ctx); + +#ifdef __cplusplus +} +#endif + +# endif +#endif diff --git a/thrid-party/openssl/openssl/cms.h b/thrid-party/openssl/openssl/cms.h new file mode 100644 index 000000000..c7627968c --- /dev/null +++ b/thrid-party/openssl/openssl/cms.h @@ -0,0 +1,339 @@ +/* + * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CMS_H +# define HEADER_CMS_H + +# include + +# ifndef OPENSSL_NO_CMS +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +typedef struct CMS_ContentInfo_st CMS_ContentInfo; +typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_CertificateChoices CMS_CertificateChoices; +typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; +typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; +typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; +typedef struct CMS_Receipt_st CMS_Receipt; +typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; +typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; + +DEFINE_STACK_OF(CMS_SignerInfo) +DEFINE_STACK_OF(CMS_RecipientEncryptedKey) +DEFINE_STACK_OF(CMS_RecipientInfo) +DEFINE_STACK_OF(CMS_RevocationInfoChoice) +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) +DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_NONE -1 +# define CMS_RECIPINFO_TRANS 0 +# define CMS_RECIPINFO_AGREE 1 +# define CMS_RECIPINFO_KEK 2 +# define CMS_RECIPINFO_PASS 3 +# define CMS_RECIPINFO_OTHER 4 + +/* S/MIME related flags */ + +# define CMS_TEXT 0x1 +# define CMS_NOCERTS 0x2 +# define CMS_NO_CONTENT_VERIFY 0x4 +# define CMS_NO_ATTR_VERIFY 0x8 +# define CMS_NOSIGS \ + (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) +# define CMS_NOINTERN 0x10 +# define CMS_NO_SIGNER_CERT_VERIFY 0x20 +# define CMS_NOVERIFY 0x20 +# define CMS_DETACHED 0x40 +# define CMS_BINARY 0x80 +# define CMS_NOATTR 0x100 +# define CMS_NOSMIMECAP 0x200 +# define CMS_NOOLDMIMETYPE 0x400 +# define CMS_CRLFEOL 0x800 +# define CMS_STREAM 0x1000 +# define CMS_NOCRL 0x2000 +# define CMS_PARTIAL 0x4000 +# define CMS_REUSE_DIGEST 0x8000 +# define CMS_USE_KEYID 0x10000 +# define CMS_DEBUG_DECRYPT 0x20000 +# define CMS_KEY_PARAM 0x40000 +# define CMS_ASCIICRLF 0x80000 + +const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); +int CMS_is_detached(CMS_ContentInfo *cms); +int CMS_set_detached(CMS_ContentInfo *cms, int detached); + +# ifdef HEADER_PEM_H +DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) +# endif +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags); +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, + unsigned int flags); + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags); + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags); + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags); + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags); + +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags); + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen); + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags); + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags); + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags); + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + const unsigned char *id, size_t idlen); +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen); + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags); +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg); +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType); + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype); + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen); + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen); + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, + ossl_ssize_t passlen); + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph); + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); +int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); + +int CMS_SignedData_init(CMS_ContentInfo *cms); +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags); +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + unsigned int flags); +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig); +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); +int CMS_SignerInfo_sign(CMS_SignerInfo *si); +int CMS_SignerInfo_verify(CMS_SignerInfo *si); +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize); +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si); +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, + int allorfirst, + STACK_OF(GENERAL_NAMES) + *receiptList, STACK_OF(GENERAL_NAMES) + *receiptsTo); +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto); +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm); +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert); +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek); + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen); + +/* Backward compatibility for spelling errors. */ +# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ + CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/cmserr.h b/thrid-party/openssl/openssl/cmserr.h new file mode 100644 index 000000000..7dbc13dc9 --- /dev/null +++ b/thrid-party/openssl/openssl/cmserr.h @@ -0,0 +1,202 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CMSERR_H +# define HEADER_CMSERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_CMS + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CMS_strings(void); + +/* + * CMS function codes. + */ +# define CMS_F_CHECK_CONTENT 99 +# define CMS_F_CMS_ADD0_CERT 164 +# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 +# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 +# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 +# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 +# define CMS_F_CMS_ADD1_SIGNER 102 +# define CMS_F_CMS_ADD1_SIGNINGTIME 103 +# define CMS_F_CMS_COMPRESS 104 +# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 +# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 +# define CMS_F_CMS_COPY_CONTENT 107 +# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 +# define CMS_F_CMS_DATA 109 +# define CMS_F_CMS_DATAFINAL 110 +# define CMS_F_CMS_DATAINIT 111 +# define CMS_F_CMS_DECRYPT 112 +# define CMS_F_CMS_DECRYPT_SET1_KEY 113 +# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 +# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 +# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 +# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 +# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 +# define CMS_F_CMS_DIGEST_VERIFY 118 +# define CMS_F_CMS_ENCODE_RECEIPT 161 +# define CMS_F_CMS_ENCRYPT 119 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT 179 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 +# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 +# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 +# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 +# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 +# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 +# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 +# define CMS_F_CMS_ENV_ASN1_CTRL 171 +# define CMS_F_CMS_FINAL 127 +# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 +# define CMS_F_CMS_GET0_CONTENT 129 +# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 +# define CMS_F_CMS_GET0_ENVELOPED 131 +# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 +# define CMS_F_CMS_GET0_SIGNED 133 +# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 +# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 +# define CMS_F_CMS_RECEIPT_VERIFY 160 +# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 +# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 +# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 +# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 +# define CMS_F_CMS_SD_ASN1_CTRL 170 +# define CMS_F_CMS_SET1_IAS 176 +# define CMS_F_CMS_SET1_KEYID 177 +# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 +# define CMS_F_CMS_SET_DETACHED 147 +# define CMS_F_CMS_SIGN 148 +# define CMS_F_CMS_SIGNED_DATA_INIT 149 +# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 +# define CMS_F_CMS_SIGNERINFO_SIGN 151 +# define CMS_F_CMS_SIGNERINFO_VERIFY 152 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 +# define CMS_F_CMS_SIGN_RECEIPT 163 +# define CMS_F_CMS_SI_CHECK_ATTRIBUTES 183 +# define CMS_F_CMS_STREAM 155 +# define CMS_F_CMS_UNCOMPRESS 156 +# define CMS_F_CMS_VERIFY 157 +# define CMS_F_KEK_UNWRAP_KEY 180 + +/* + * CMS reason codes. + */ +# define CMS_R_ADD_SIGNER_ERROR 99 +# define CMS_R_ATTRIBUTE_ERROR 161 +# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 +# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 +# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 +# define CMS_R_CIPHER_INITIALISATION_ERROR 101 +# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 +# define CMS_R_CMS_DATAFINAL_ERROR 103 +# define CMS_R_CMS_LIB 104 +# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 +# define CMS_R_CONTENT_NOT_FOUND 105 +# define CMS_R_CONTENT_TYPE_MISMATCH 171 +# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 +# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 +# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 +# define CMS_R_CONTENT_VERIFY_ERROR 109 +# define CMS_R_CTRL_ERROR 110 +# define CMS_R_CTRL_FAILURE 111 +# define CMS_R_DECRYPT_ERROR 112 +# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 +# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 +# define CMS_R_ERROR_SETTING_KEY 115 +# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 +# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 +# define CMS_R_INVALID_KEY_LENGTH 118 +# define CMS_R_MD_BIO_INIT_ERROR 119 +# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 +# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 +# define CMS_R_MSGSIGDIGEST_ERROR 172 +# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 +# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 +# define CMS_R_NEED_ONE_SIGNER 164 +# define CMS_R_NOT_A_SIGNED_RECEIPT 165 +# define CMS_R_NOT_ENCRYPTED_DATA 122 +# define CMS_R_NOT_KEK 123 +# define CMS_R_NOT_KEY_AGREEMENT 181 +# define CMS_R_NOT_KEY_TRANSPORT 124 +# define CMS_R_NOT_PWRI 177 +# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 +# define CMS_R_NO_CIPHER 126 +# define CMS_R_NO_CONTENT 127 +# define CMS_R_NO_CONTENT_TYPE 173 +# define CMS_R_NO_DEFAULT_DIGEST 128 +# define CMS_R_NO_DIGEST_SET 129 +# define CMS_R_NO_KEY 130 +# define CMS_R_NO_KEY_OR_CERT 174 +# define CMS_R_NO_MATCHING_DIGEST 131 +# define CMS_R_NO_MATCHING_RECIPIENT 132 +# define CMS_R_NO_MATCHING_SIGNATURE 166 +# define CMS_R_NO_MSGSIGDIGEST 167 +# define CMS_R_NO_PASSWORD 178 +# define CMS_R_NO_PRIVATE_KEY 133 +# define CMS_R_NO_PUBLIC_KEY 134 +# define CMS_R_NO_RECEIPT_REQUEST 168 +# define CMS_R_NO_SIGNERS 135 +# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 +# define CMS_R_RECEIPT_DECODE_ERROR 169 +# define CMS_R_RECIPIENT_ERROR 137 +# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 +# define CMS_R_SIGNFINAL_ERROR 139 +# define CMS_R_SMIME_TEXT_ERROR 140 +# define CMS_R_STORE_INIT_ERROR 141 +# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 +# define CMS_R_TYPE_NOT_DATA 143 +# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 +# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 +# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 +# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 +# define CMS_R_UNKNOWN_CIPHER 148 +# define CMS_R_UNKNOWN_DIGEST_ALGORITHM 149 +# define CMS_R_UNKNOWN_ID 150 +# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 +# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 +# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 +# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 +# define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 +# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_TYPE 156 +# define CMS_R_UNWRAP_ERROR 157 +# define CMS_R_UNWRAP_FAILURE 180 +# define CMS_R_VERIFICATION_FAILURE 158 +# define CMS_R_WRAP_ERROR 159 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/comp.h b/thrid-party/openssl/openssl/comp.h new file mode 100644 index 000000000..d814d3cf2 --- /dev/null +++ b/thrid-party/openssl/openssl/comp.h @@ -0,0 +1,53 @@ +/* + * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_COMP_H +# define HEADER_COMP_H + +# include + +# ifndef OPENSSL_NO_COMP +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + + +COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); +const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); +int COMP_CTX_get_type(const COMP_CTX* comp); +int COMP_get_type(const COMP_METHOD *meth); +const char *COMP_get_name(const COMP_METHOD *meth); +void COMP_CTX_free(COMP_CTX *ctx); + +int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); +int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, + unsigned char *in, int ilen); + +COMP_METHOD *COMP_zlib(void); + +#if OPENSSL_API_COMPAT < 0x10100000L +#define COMP_zlib_cleanup() while(0) continue +#endif + +# ifdef HEADER_BIO_H +# ifdef ZLIB +const BIO_METHOD *BIO_f_zlib(void); +# endif +# endif + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/comperr.h b/thrid-party/openssl/openssl/comperr.h new file mode 100644 index 000000000..90231e9aa --- /dev/null +++ b/thrid-party/openssl/openssl/comperr.h @@ -0,0 +1,44 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_COMPERR_H +# define HEADER_COMPERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_COMP + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_COMP_strings(void); + +/* + * COMP function codes. + */ +# define COMP_F_BIO_ZLIB_FLUSH 99 +# define COMP_F_BIO_ZLIB_NEW 100 +# define COMP_F_BIO_ZLIB_READ 101 +# define COMP_F_BIO_ZLIB_WRITE 102 +# define COMP_F_COMP_CTX_NEW 103 + +/* + * COMP reason codes. + */ +# define COMP_R_ZLIB_DEFLATE_ERROR 99 +# define COMP_R_ZLIB_INFLATE_ERROR 100 +# define COMP_R_ZLIB_NOT_SUPPORTED 101 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/conf.h b/thrid-party/openssl/openssl/conf.h new file mode 100644 index 000000000..7336cd2f1 --- /dev/null +++ b/thrid-party/openssl/openssl/conf.h @@ -0,0 +1,168 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CONF_H +# define HEADER_CONF_H + +# include +# include +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + char *section; + char *name; + char *value; +} CONF_VALUE; + +DEFINE_STACK_OF(CONF_VALUE) +DEFINE_LHASH_OF(CONF_VALUE); + +struct conf_st; +struct conf_method_st; +typedef struct conf_method_st CONF_METHOD; + +struct conf_method_st { + const char *name; + CONF *(*create) (CONF_METHOD *meth); + int (*init) (CONF *conf); + int (*destroy) (CONF *conf); + int (*destroy_data) (CONF *conf); + int (*load_bio) (CONF *conf, BIO *bp, long *eline); + int (*dump) (const CONF *conf, BIO *bp); + int (*is_number) (const CONF *conf, char c); + int (*to_int) (const CONF *conf, char c); + int (*load) (CONF *conf, const char *name, long *eline); +}; + +/* Module definitions */ + +typedef struct conf_imodule_st CONF_IMODULE; +typedef struct conf_module_st CONF_MODULE; + +DEFINE_STACK_OF(CONF_MODULE) +DEFINE_STACK_OF(CONF_IMODULE) + +/* DSO module function typedefs */ +typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); +typedef void conf_finish_func (CONF_IMODULE *md); + +# define CONF_MFLAGS_IGNORE_ERRORS 0x1 +# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 +# define CONF_MFLAGS_SILENT 0x4 +# define CONF_MFLAGS_NO_DSO 0x8 +# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 +# define CONF_MFLAGS_DEFAULT_SECTION 0x20 + +int CONF_set_default_method(CONF_METHOD *meth); +void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); +LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, + long *eline); +# ifndef OPENSSL_NO_STDIO +LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, + long *eline); +# endif +LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, + long *eline); +STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, + const char *section); +char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +void CONF_free(LHASH_OF(CONF_VALUE) *conf); +#ifndef OPENSSL_NO_STDIO +int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); +#endif +int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); + +DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) + +#if OPENSSL_API_COMPAT < 0x10100000L +# define OPENSSL_no_config() \ + OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) +#endif + +/* + * New conf code. The semantics are different from the functions above. If + * that wasn't the case, the above functions would have been replaced + */ + +struct conf_st { + CONF_METHOD *meth; + void *meth_data; + LHASH_OF(CONF_VALUE) *data; +}; + +CONF *NCONF_new(CONF_METHOD *meth); +CONF_METHOD *NCONF_default(void); +CONF_METHOD *NCONF_WIN32(void); +void NCONF_free(CONF *conf); +void NCONF_free_data(CONF *conf); + +int NCONF_load(CONF *conf, const char *file, long *eline); +# ifndef OPENSSL_NO_STDIO +int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); +# endif +int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); +STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, + const char *section); +char *NCONF_get_string(const CONF *conf, const char *group, const char *name); +int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, + long *result); +#ifndef OPENSSL_NO_STDIO +int NCONF_dump_fp(const CONF *conf, FILE *out); +#endif +int NCONF_dump_bio(const CONF *conf, BIO *out); + +#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) + +/* Module functions */ + +int CONF_modules_load(const CONF *cnf, const char *appname, + unsigned long flags); +int CONF_modules_load_file(const char *filename, const char *appname, + unsigned long flags); +void CONF_modules_unload(int all); +void CONF_modules_finish(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define CONF_modules_free() while(0) continue +#endif +int CONF_module_add(const char *name, conf_init_func *ifunc, + conf_finish_func *ffunc); + +const char *CONF_imodule_get_name(const CONF_IMODULE *md); +const char *CONF_imodule_get_value(const CONF_IMODULE *md); +void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); +void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); +CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); +unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); +void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); +void *CONF_module_get_usr_data(CONF_MODULE *pmod); +void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); + +char *CONF_get1_default_config_file(void); + +int CONF_parse_list(const char *list, int sep, int nospc, + int (*list_cb) (const char *elem, int len, void *usr), + void *arg); + +void OPENSSL_load_builtin_modules(void); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/conf_api.h b/thrid-party/openssl/openssl/conf_api.h new file mode 100644 index 000000000..a0275ad79 --- /dev/null +++ b/thrid-party/openssl/openssl/conf_api.h @@ -0,0 +1,40 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CONF_API_H +# define HEADER_CONF_API_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Up until OpenSSL 0.9.5a, this was new_section */ +CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was get_section */ +CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); +/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ +STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, + const char *section); + +int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); +char *_CONF_get_string(const CONF *conf, const char *section, + const char *name); +long _CONF_get_number(const CONF *conf, const char *section, + const char *name); + +int _CONF_new_data(CONF *conf); +void _CONF_free_data(CONF *conf); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/conferr.h b/thrid-party/openssl/openssl/conferr.h new file mode 100644 index 000000000..32b922918 --- /dev/null +++ b/thrid-party/openssl/openssl/conferr.h @@ -0,0 +1,76 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CONFERR_H +# define HEADER_CONFERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CONF_strings(void); + +/* + * CONF function codes. + */ +# define CONF_F_CONF_DUMP_FP 104 +# define CONF_F_CONF_LOAD 100 +# define CONF_F_CONF_LOAD_FP 103 +# define CONF_F_CONF_PARSE_LIST 119 +# define CONF_F_DEF_LOAD 120 +# define CONF_F_DEF_LOAD_BIO 121 +# define CONF_F_GET_NEXT_FILE 107 +# define CONF_F_MODULE_ADD 122 +# define CONF_F_MODULE_INIT 115 +# define CONF_F_MODULE_LOAD_DSO 117 +# define CONF_F_MODULE_RUN 118 +# define CONF_F_NCONF_DUMP_BIO 105 +# define CONF_F_NCONF_DUMP_FP 106 +# define CONF_F_NCONF_GET_NUMBER_E 112 +# define CONF_F_NCONF_GET_SECTION 108 +# define CONF_F_NCONF_GET_STRING 109 +# define CONF_F_NCONF_LOAD 113 +# define CONF_F_NCONF_LOAD_BIO 110 +# define CONF_F_NCONF_LOAD_FP 114 +# define CONF_F_NCONF_NEW 111 +# define CONF_F_PROCESS_INCLUDE 116 +# define CONF_F_SSL_MODULE_INIT 123 +# define CONF_F_STR_COPY 101 + +/* + * CONF reason codes. + */ +# define CONF_R_ERROR_LOADING_DSO 110 +# define CONF_R_LIST_CANNOT_BE_NULL 115 +# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 +# define CONF_R_MISSING_EQUAL_SIGN 101 +# define CONF_R_MISSING_INIT_FUNCTION 112 +# define CONF_R_MODULE_INITIALIZATION_ERROR 109 +# define CONF_R_NO_CLOSE_BRACE 102 +# define CONF_R_NO_CONF 105 +# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 +# define CONF_R_NO_SECTION 107 +# define CONF_R_NO_SUCH_FILE 114 +# define CONF_R_NO_VALUE 108 +# define CONF_R_NUMBER_TOO_LARGE 121 +# define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 +# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 +# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 +# define CONF_R_SSL_SECTION_EMPTY 119 +# define CONF_R_SSL_SECTION_NOT_FOUND 120 +# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 +# define CONF_R_UNKNOWN_MODULE_NAME 113 +# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 +# define CONF_R_VARIABLE_HAS_NO_VALUE 104 + +#endif diff --git a/thrid-party/openssl/openssl/crypto.h b/thrid-party/openssl/openssl/crypto.h new file mode 100644 index 000000000..7d0b52623 --- /dev/null +++ b/thrid-party/openssl/openssl/crypto.h @@ -0,0 +1,445 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CRYPTO_H +# define HEADER_CRYPTO_H + +# include +# include + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# endif + +# include +# include +# include +# include +# include + +# ifdef CHARSET_EBCDIC +# include +# endif + +/* + * Resolve problems on some operating systems with symbol names that clash + * one way or another + */ +# include + +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSLeay OpenSSL_version_num +# define SSLeay_version OpenSSL_version +# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +# define SSLEAY_VERSION OPENSSL_VERSION +# define SSLEAY_CFLAGS OPENSSL_CFLAGS +# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON +# define SSLEAY_PLATFORM OPENSSL_PLATFORM +# define SSLEAY_DIR OPENSSL_DIR + +/* + * Old type for allocating dynamic locks. No longer used. Use the new thread + * API instead. + */ +typedef struct { + int dummy; +} CRYPTO_dynlock; + +# endif /* OPENSSL_API_COMPAT */ + +typedef void CRYPTO_RWLOCK; + +CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); +int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); +void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); + +int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); + +/* + * The following can be used to detect memory leaks in the library. If + * used, it turns on malloc checking + */ +# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ +# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ + +struct crypto_ex_data_st { + STACK_OF(void) *sk; +}; +DEFINE_STACK_OF(void) + +/* + * Per class, we have a STACK of function pointers. + */ +# define CRYPTO_EX_INDEX_SSL 0 +# define CRYPTO_EX_INDEX_SSL_CTX 1 +# define CRYPTO_EX_INDEX_SSL_SESSION 2 +# define CRYPTO_EX_INDEX_X509 3 +# define CRYPTO_EX_INDEX_X509_STORE 4 +# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 +# define CRYPTO_EX_INDEX_DH 6 +# define CRYPTO_EX_INDEX_DSA 7 +# define CRYPTO_EX_INDEX_EC_KEY 8 +# define CRYPTO_EX_INDEX_RSA 9 +# define CRYPTO_EX_INDEX_ENGINE 10 +# define CRYPTO_EX_INDEX_UI 11 +# define CRYPTO_EX_INDEX_BIO 12 +# define CRYPTO_EX_INDEX_APP 13 +# define CRYPTO_EX_INDEX_UI_METHOD 14 +# define CRYPTO_EX_INDEX_DRBG 15 +# define CRYPTO_EX_INDEX__COUNT 16 + +/* No longer needed, so this is a no-op */ +#define OPENSSL_malloc_init() while(0) continue + +int CRYPTO_mem_ctrl(int mode); + +# define OPENSSL_malloc(num) \ + CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_zalloc(num) \ + CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_realloc(addr, num) \ + CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_realloc(addr, old_num, num) \ + CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_free(addr, num) \ + CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_free(addr) \ + CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_memdup(str, s) \ + CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strdup(str) \ + CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strndup(str, n) \ + CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_malloc(num) \ + CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_zalloc(num) \ + CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_free(addr) \ + CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_clear_free(addr, num) \ + CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_actual_size(ptr) \ + CRYPTO_secure_actual_size(ptr) + +size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); +size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); +size_t OPENSSL_strnlen(const char *str, size_t maxlen); +char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); +unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); +int OPENSSL_hexchar2int(unsigned char c); + +# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) + +unsigned long OpenSSL_version_num(void); +const char *OpenSSL_version(int type); +# define OPENSSL_VERSION 0 +# define OPENSSL_CFLAGS 1 +# define OPENSSL_BUILT_ON 2 +# define OPENSSL_PLATFORM 3 +# define OPENSSL_DIR 4 +# define OPENSSL_ENGINES_DIR 5 + +int OPENSSL_issetugid(void); + +typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); +__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, + CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +/* No longer use an index. */ +int CRYPTO_free_ex_index(int class_index, int idx); + +/* + * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a + * given class (invokes whatever per-class callbacks are applicable) + */ +int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, + const CRYPTO_EX_DATA *from); + +void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); + +/* + * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular + * index (relative to the class type involved) + */ +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); +void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); + +# if OPENSSL_API_COMPAT < 0x10100000L +/* + * This function cleans up all "ex_data" state. It mustn't be called under + * potential race-conditions. + */ +# define CRYPTO_cleanup_all_ex_data() while(0) continue + +/* + * The old locking functions have been removed completely without compatibility + * macros. This is because the old functions either could not properly report + * errors, or the returned error values were not clearly documented. + * Replacing the locking functions with no-ops would cause race condition + * issues in the affected applications. It is far better for them to fail at + * compile time. + * On the other hand, the locking callbacks are no longer used. Consequently, + * the callback management functions can be safely replaced with no-op macros. + */ +# define CRYPTO_num_locks() (1) +# define CRYPTO_set_locking_callback(func) +# define CRYPTO_get_locking_callback() (NULL) +# define CRYPTO_set_add_lock_callback(func) +# define CRYPTO_get_add_lock_callback() (NULL) + +/* + * These defines where used in combination with the old locking callbacks, + * they are not called anymore, but old code that's not called might still + * use them. + */ +# define CRYPTO_LOCK 1 +# define CRYPTO_UNLOCK 2 +# define CRYPTO_READ 4 +# define CRYPTO_WRITE 8 + +/* This structure is no longer used */ +typedef struct crypto_threadid_st { + int dummy; +} CRYPTO_THREADID; +/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ +# define CRYPTO_THREADID_set_numeric(id, val) +# define CRYPTO_THREADID_set_pointer(id, ptr) +# define CRYPTO_THREADID_set_callback(threadid_func) (0) +# define CRYPTO_THREADID_get_callback() (NULL) +# define CRYPTO_THREADID_current(id) +# define CRYPTO_THREADID_cmp(a, b) (-1) +# define CRYPTO_THREADID_cpy(dest, src) +# define CRYPTO_THREADID_hash(id) (0UL) + +# if OPENSSL_API_COMPAT < 0x10000000L +# define CRYPTO_set_id_callback(func) +# define CRYPTO_get_id_callback() (NULL) +# define CRYPTO_thread_id() (0UL) +# endif /* OPENSSL_API_COMPAT < 0x10000000L */ + +# define CRYPTO_set_dynlock_create_callback(dyn_create_function) +# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) +# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) +# define CRYPTO_get_dynlock_create_callback() (NULL) +# define CRYPTO_get_dynlock_lock_callback() (NULL) +# define CRYPTO_get_dynlock_destroy_callback() (NULL) +# endif /* OPENSSL_API_COMPAT < 0x10100000L */ + +int CRYPTO_set_mem_functions( + void *(*m) (size_t, const char *, int), + void *(*r) (void *, size_t, const char *, int), + void (*f) (void *, const char *, int)); +int CRYPTO_set_mem_debug(int flag); +void CRYPTO_get_mem_functions( + void *(**m) (size_t, const char *, int), + void *(**r) (void *, size_t, const char *, int), + void (**f) (void *, const char *, int)); + +void *CRYPTO_malloc(size_t num, const char *file, int line); +void *CRYPTO_zalloc(size_t num, const char *file, int line); +void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +char *CRYPTO_strdup(const char *str, const char *file, int line); +char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +void CRYPTO_free(void *ptr, const char *file, int line); +void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); +void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); +void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, + const char *file, int line); + +int CRYPTO_secure_malloc_init(size_t sz, int minsize); +int CRYPTO_secure_malloc_done(void); +void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +void CRYPTO_secure_free(void *ptr, const char *file, int line); +void CRYPTO_secure_clear_free(void *ptr, size_t num, + const char *file, int line); +int CRYPTO_secure_allocated(const void *ptr); +int CRYPTO_secure_malloc_initialized(void); +size_t CRYPTO_secure_actual_size(void *ptr); +size_t CRYPTO_secure_used(void); + +void OPENSSL_cleanse(void *ptr, size_t len); + +# ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_mem_debug_push(info) \ + CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_mem_debug_pop() \ + CRYPTO_mem_debug_pop() +int CRYPTO_mem_debug_push(const char *info, const char *file, int line); +int CRYPTO_mem_debug_pop(void); +void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); + +/*- + * Debugging functions (enabled by CRYPTO_set_mem_debug(1)) + * The flag argument has the following significance: + * 0: called before the actual memory allocation has taken place + * 1: called after the actual memory allocation has taken place + */ +void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag, + const char *file, int line); +void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, + const char *file, int line); +void CRYPTO_mem_debug_free(void *addr, int flag, + const char *file, int line); + +int CRYPTO_mem_leaks_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +# ifndef OPENSSL_NO_STDIO +int CRYPTO_mem_leaks_fp(FILE *); +# endif +int CRYPTO_mem_leaks(BIO *bio); +# endif + +/* die if we have to */ +ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); +# if OPENSSL_API_COMPAT < 0x10100000L +# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) +# endif +# define OPENSSL_assert(e) \ + (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) + +int OPENSSL_isservice(void); + +int FIPS_mode(void); +int FIPS_mode_set(int r); + +void OPENSSL_init(void); +# ifdef OPENSSL_SYS_UNIX +void OPENSSL_fork_prepare(void); +void OPENSSL_fork_parent(void); +void OPENSSL_fork_child(void); +# endif + +struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); +int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to); + +/* + * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. + * It takes an amount of time dependent on |len|, but independent of the + * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements + * into a defined order as the return value when a != b is undefined, other + * than to be non-zero. + */ +int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); + +/* Standard initialisation options */ +# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L +# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L +# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L +# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L +# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L +# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L +# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L +# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L +# define OPENSSL_INIT_ASYNC 0x00000100L +# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L +# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L +# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L +# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L +# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L +# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L +# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L +/* OPENSSL_INIT_ZLIB 0x00010000L */ +# define OPENSSL_INIT_ATFORK 0x00020000L +/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ +# define OPENSSL_INIT_NO_ATEXIT 0x00080000L +/* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ +/* Max OPENSSL_INIT flag value is 0x80000000 */ + +/* openssl and dasync not counted as builtin */ +# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ + (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ + | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ + OPENSSL_INIT_ENGINE_PADLOCK) + + +/* Library initialisation functions */ +void OPENSSL_cleanup(void); +int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); +int OPENSSL_atexit(void (*handler)(void)); +void OPENSSL_thread_stop(void); + +/* Low-level control of initialization */ +OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); +# ifndef OPENSSL_NO_STDIO +int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, + const char *config_filename); +void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, + unsigned long flags); +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *config_appname); +# endif +void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); + +# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) +# if defined(_WIN32) +# if defined(BASETYPES) || defined(_WINDEF_H) +/* application has to include in order to use this */ +typedef DWORD CRYPTO_THREAD_LOCAL; +typedef DWORD CRYPTO_THREAD_ID; + +typedef LONG CRYPTO_ONCE; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif +# else +# include +typedef pthread_once_t CRYPTO_ONCE; +typedef pthread_key_t CRYPTO_THREAD_LOCAL; +typedef pthread_t CRYPTO_THREAD_ID; + +# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT +# endif +# endif + +# if !defined(CRYPTO_ONCE_STATIC_INIT) +typedef unsigned int CRYPTO_ONCE; +typedef unsigned int CRYPTO_THREAD_LOCAL; +typedef unsigned int CRYPTO_THREAD_ID; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif + +int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); + +int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); +void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); +int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); +int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); + +CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); +int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/cryptoerr.h b/thrid-party/openssl/openssl/cryptoerr.h new file mode 100644 index 000000000..3db5a4ee9 --- /dev/null +++ b/thrid-party/openssl/openssl/cryptoerr.h @@ -0,0 +1,57 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CRYPTOERR_H +# define HEADER_CRYPTOERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CRYPTO_strings(void); + +/* + * CRYPTO function codes. + */ +# define CRYPTO_F_CMAC_CTX_NEW 120 +# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 +# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 +# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 +# define CRYPTO_F_CRYPTO_MEMDUP 115 +# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 +# define CRYPTO_F_CRYPTO_OCB128_COPY_CTX 121 +# define CRYPTO_F_CRYPTO_OCB128_INIT 122 +# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 +# define CRYPTO_F_FIPS_MODE_SET 109 +# define CRYPTO_F_GET_AND_LOCK 113 +# define CRYPTO_F_OPENSSL_ATEXIT 114 +# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 +# define CRYPTO_F_OPENSSL_FOPEN 119 +# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 +# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 +# define CRYPTO_F_OPENSSL_LH_NEW 126 +# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 127 +# define CRYPTO_F_OPENSSL_SK_DUP 128 +# define CRYPTO_F_PKEY_HMAC_INIT 123 +# define CRYPTO_F_PKEY_POLY1305_INIT 124 +# define CRYPTO_F_PKEY_SIPHASH_INIT 125 +# define CRYPTO_F_SK_RESERVE 129 + +/* + * CRYPTO reason codes. + */ +# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 +# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 +# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 + +#endif diff --git a/thrid-party/openssl/openssl/ct.h b/thrid-party/openssl/openssl/ct.h new file mode 100644 index 000000000..d4262fa04 --- /dev/null +++ b/thrid-party/openssl/openssl/ct.h @@ -0,0 +1,476 @@ +/* + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CT_H +# define HEADER_CT_H + +# include + +# ifndef OPENSSL_NO_CT +# include +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + +/* Minimum RSA key size, from RFC6962 */ +# define SCT_MIN_RSA_BITS 2048 + +/* All hashes are SHA256 in v1 of Certificate Transparency */ +# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH + +typedef enum { + CT_LOG_ENTRY_TYPE_NOT_SET = -1, + CT_LOG_ENTRY_TYPE_X509 = 0, + CT_LOG_ENTRY_TYPE_PRECERT = 1 +} ct_log_entry_type_t; + +typedef enum { + SCT_VERSION_NOT_SET = -1, + SCT_VERSION_V1 = 0 +} sct_version_t; + +typedef enum { + SCT_SOURCE_UNKNOWN, + SCT_SOURCE_TLS_EXTENSION, + SCT_SOURCE_X509V3_EXTENSION, + SCT_SOURCE_OCSP_STAPLED_RESPONSE +} sct_source_t; + +typedef enum { + SCT_VALIDATION_STATUS_NOT_SET, + SCT_VALIDATION_STATUS_UNKNOWN_LOG, + SCT_VALIDATION_STATUS_VALID, + SCT_VALIDATION_STATUS_INVALID, + SCT_VALIDATION_STATUS_UNVERIFIED, + SCT_VALIDATION_STATUS_UNKNOWN_VERSION +} sct_validation_status_t; + +DEFINE_STACK_OF(SCT) +DEFINE_STACK_OF(CTLOG) + +/****************************************** + * CT policy evaluation context functions * + ******************************************/ + +/* + * Creates a new, empty policy evaluation context. + * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished + * with the CT_POLICY_EVAL_CTX. + */ +CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); + +/* Deletes a policy evaluation context and anything it owns. */ +void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); + +/* Gets the peer certificate that the SCTs are for */ +X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the certificate associated with the received SCTs. + * Increments the reference count of cert. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); + +/* Gets the issuer of the aforementioned certificate */ +X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the issuer of the certificate associated with the received SCTs. + * Increments the reference count of issuer. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); + +/* Gets the CT logs that are trusted sources of SCTs */ +const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); + +/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ +void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, + CTLOG_STORE *log_store); + +/* + * Gets the time, in milliseconds since the Unix epoch, that will be used as the + * current time when checking whether an SCT was issued in the future. + * Such SCTs will fail validation, as required by RFC6962. + */ +uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. + * If an SCT's timestamp is after this time, it will be interpreted as having + * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs + * whose timestamp is in the future", so an SCT will not validate in this case. + */ +void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); + +/***************** + * SCT functions * + *****************/ + +/* + * Creates a new, blank SCT. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new(void); + +/* + * Creates a new SCT from some base64-encoded strings. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new_from_base64(unsigned char version, + const char *logid_base64, + ct_log_entry_type_t entry_type, + uint64_t timestamp, + const char *extensions_base64, + const char *signature_base64); + +/* + * Frees the SCT and the underlying data structures. + */ +void SCT_free(SCT *sct); + +/* + * Free a stack of SCTs, and the underlying SCTs themselves. + * Intended to be compatible with X509V3_EXT_FREE. + */ +void SCT_LIST_free(STACK_OF(SCT) *a); + +/* + * Returns the version of the SCT. + */ +sct_version_t SCT_get_version(const SCT *sct); + +/* + * Set the version of an SCT. + * Returns 1 on success, 0 if the version is unrecognized. + */ +__owur int SCT_set_version(SCT *sct, sct_version_t version); + +/* + * Returns the log entry type of the SCT. + */ +ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); + +/* + * Set the log entry type of an SCT. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); + +/* + * Gets the ID of the log that an SCT came from. + * Ownership of the log ID remains with the SCT. + * Returns the length of the log ID. + */ +size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); + +/* + * Set the log ID of an SCT to point directly to the *log_id specified. + * The SCT takes ownership of the specified pointer. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); + +/* + * Set the log ID of an SCT. + * This makes a copy of the log_id. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, + size_t log_id_len); + +/* + * Returns the timestamp for the SCT (epoch time in milliseconds). + */ +uint64_t SCT_get_timestamp(const SCT *sct); + +/* + * Set the timestamp of an SCT (epoch time in milliseconds). + */ +void SCT_set_timestamp(SCT *sct, uint64_t timestamp); + +/* + * Return the NID for the signature used by the SCT. + * For CT v1, this will be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). + */ +int SCT_get_signature_nid(const SCT *sct); + +/* + * Set the signature type of an SCT + * For CT v1, this should be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_signature_nid(SCT *sct, int nid); + +/* + * Set *ext to point to the extension data for the SCT. ext must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); + +/* + * Set the extensions of an SCT to point directly to the *ext specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); + +/* + * Set the extensions of an SCT. + * This takes a copy of the ext. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, + size_t ext_len); + +/* + * Set *sig to point to the signature for the SCT. sig must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); + +/* + * Set the signature of an SCT to point directly to the *sig specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); + +/* + * Set the signature of an SCT to be a copy of the *sig specified. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, + size_t sig_len); + +/* + * The origin of this SCT, e.g. TLS extension, OCSP response, etc. + */ +sct_source_t SCT_get_source(const SCT *sct); + +/* + * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_source(SCT *sct, sct_source_t source); + +/* + * Returns a text string describing the validation status of |sct|. + */ +const char *SCT_validation_status_string(const SCT *sct); + +/* + * Pretty-prints an |sct| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came + * from, so that the log name can be printed. + */ +void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); + +/* + * Pretty-prints an |sct_list| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * SCTs will be delimited by |separator|. + * If |logs| is not NULL, it will be used to lookup the CT log that each SCT + * came from, so that the log names can be printed. + */ +void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, + const char *separator, const CTLOG_STORE *logs); + +/* + * Gets the last result of validating this SCT. + * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. + */ +sct_validation_status_t SCT_get_validation_status(const SCT *sct); + +/* + * Validates the given SCT with the provided context. + * Sets the "validation_status" field of the SCT. + * Returns 1 if the SCT is valid and the signature verifies. + * Returns 0 if the SCT is invalid or could not be verified. + * Returns -1 if an error occurs. + */ +__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); + +/* + * Validates the given list of SCTs with the provided context. + * Sets the "validation_status" field of each SCT. + * Returns 1 if there are no invalid SCTs and all signatures verify. + * Returns 0 if at least one SCT is invalid or could not be verified. + * Returns a negative integer if an error occurs. + */ +__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, + CT_POLICY_EVAL_CTX *ctx); + + +/********************************* + * SCT parsing and serialisation * + *********************************/ + +/* + * Serialize (to TLS format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just return the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Convert TLS format SCT list to a stack of SCTs. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + size_t len); + +/* + * Serialize (to DER format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just returns the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Parses an SCT list in DER format and returns it. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + long len); + +/* + * Serialize (to TLS format) an |sct| and write it to |out|. + * If |out| is null, no SCT will be output but the length will still be returned. + * If |out| points to a null pointer, a string will be allocated to hold the + * TLS-format SCT. It is the responsibility of the caller to free it. + * If |out| points to an allocated string, the TLS-format SCT will be written + * to it. + * The length of the SCT in TLS format will be returned. + */ +__owur int i2o_SCT(const SCT *sct, unsigned char **out); + +/* + * Parses an SCT in TLS format and returns it. + * If |psct| is not null, it will end up pointing to the parsed SCT. If it + * already points to a non-null pointer, the pointer will be free'd. + * |in| should be a pointer to a string containing the TLS-format SCT. + * |in| will be advanced to the end of the SCT if parsing succeeds. + * |len| should be the length of the SCT in |in|. + * Returns NULL if an error occurs. + * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' + * fields will be populated (with |in| and |len| respectively). + */ +SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); + +/******************** + * CT log functions * + ********************/ + +/* + * Creates a new CT log instance with the given |public_key| and |name|. + * Takes ownership of |public_key| but copies |name|. + * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); + +/* + * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER + * in |pkey_base64|. The |name| is a string to help users identify this log. + * Returns 1 on success, 0 on failure. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +int CTLOG_new_from_base64(CTLOG ** ct_log, + const char *pkey_base64, const char *name); + +/* + * Deletes a CT log instance and its fields. + */ +void CTLOG_free(CTLOG *log); + +/* Gets the name of the CT log */ +const char *CTLOG_get0_name(const CTLOG *log); +/* Gets the ID of the CT log */ +void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, + size_t *log_id_len); +/* Gets the public key of the CT log */ +EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); + +/************************** + * CT log store functions * + **************************/ + +/* + * Creates a new CT log store. + * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. + */ +CTLOG_STORE *CTLOG_STORE_new(void); + +/* + * Deletes a CT log store and all of the CT log instances held within. + */ +void CTLOG_STORE_free(CTLOG_STORE *store); + +/* + * Finds a CT log in the store based on its log ID. + * Returns the CT log, or NULL if no match is found. + */ +const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, + const uint8_t *log_id, + size_t log_id_len); + +/* + * Loads a CT log list into a |store| from a |file|. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); + +/* + * Loads the default CT log list into a |store|. + * See internal/cryptlib.h for the environment variable and file path that are + * consulted to find the default file. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/cterr.h b/thrid-party/openssl/openssl/cterr.h new file mode 100644 index 000000000..feb7bc566 --- /dev/null +++ b/thrid-party/openssl/openssl/cterr.h @@ -0,0 +1,80 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_CTERR_H +# define HEADER_CTERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_CT + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_CT_strings(void); + +/* + * CT function codes. + */ +# define CT_F_CTLOG_NEW 117 +# define CT_F_CTLOG_NEW_FROM_BASE64 118 +# define CT_F_CTLOG_NEW_FROM_CONF 119 +# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 +# define CT_F_CTLOG_STORE_LOAD_FILE 123 +# define CT_F_CTLOG_STORE_LOAD_LOG 130 +# define CT_F_CTLOG_STORE_NEW 131 +# define CT_F_CT_BASE64_DECODE 124 +# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 +# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 +# define CT_F_I2O_SCT 107 +# define CT_F_I2O_SCT_LIST 108 +# define CT_F_I2O_SCT_SIGNATURE 109 +# define CT_F_O2I_SCT 110 +# define CT_F_O2I_SCT_LIST 111 +# define CT_F_O2I_SCT_SIGNATURE 112 +# define CT_F_SCT_CTX_NEW 126 +# define CT_F_SCT_CTX_VERIFY 128 +# define CT_F_SCT_NEW 100 +# define CT_F_SCT_NEW_FROM_BASE64 127 +# define CT_F_SCT_SET0_LOG_ID 101 +# define CT_F_SCT_SET1_EXTENSIONS 114 +# define CT_F_SCT_SET1_LOG_ID 115 +# define CT_F_SCT_SET1_SIGNATURE 116 +# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 +# define CT_F_SCT_SET_SIGNATURE_NID 103 +# define CT_F_SCT_SET_VERSION 104 + +/* + * CT reason codes. + */ +# define CT_R_BASE64_DECODE_ERROR 108 +# define CT_R_INVALID_LOG_ID_LENGTH 100 +# define CT_R_LOG_CONF_INVALID 109 +# define CT_R_LOG_CONF_INVALID_KEY 110 +# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 +# define CT_R_LOG_CONF_MISSING_KEY 112 +# define CT_R_LOG_KEY_INVALID 113 +# define CT_R_SCT_FUTURE_TIMESTAMP 116 +# define CT_R_SCT_INVALID 104 +# define CT_R_SCT_INVALID_SIGNATURE 107 +# define CT_R_SCT_LIST_INVALID 105 +# define CT_R_SCT_LOG_ID_MISMATCH 114 +# define CT_R_SCT_NOT_SET 106 +# define CT_R_SCT_UNSUPPORTED_VERSION 115 +# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 +# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 +# define CT_R_UNSUPPORTED_VERSION 103 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/des.h b/thrid-party/openssl/openssl/des.h new file mode 100644 index 000000000..be4abbdfd --- /dev/null +++ b/thrid-party/openssl/openssl/des.h @@ -0,0 +1,174 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DES_H +# define HEADER_DES_H + +# include + +# ifndef OPENSSL_NO_DES +# ifdef __cplusplus +extern "C" { +# endif +# include + +typedef unsigned int DES_LONG; + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +typedef unsigned char DES_cblock[8]; +typedef /* const */ unsigned char const_DES_cblock[8]; +/* + * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and + * const_DES_cblock * are incompatible pointer types. + */ + +typedef struct DES_ks { + union { + DES_cblock cblock; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG deslong[2]; + } ks[16]; +} DES_key_schedule; + +# define DES_KEY_SZ (sizeof(DES_cblock)) +# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) + +# define DES_ENCRYPT 1 +# define DES_DECRYPT 0 + +# define DES_CBC_MODE 0 +# define DES_PCBC_MODE 1 + +# define DES_ecb2_encrypt(i,o,k1,k2,e) \ + DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ +# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) + +const char *DES_options(void); +void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, int enc); +DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, + long length, DES_key_schedule *schedule, + const_DES_cblock *ivec); +/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ +void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, const_DES_cblock *inw, + const_DES_cblock *outw, int enc); +void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, + DES_key_schedule *ks, int enc); + +/* + * This is the DES encryption function that gets called by just about every + * other DES routine in the library. You should not use this function except + * to implement 'modes' of DES. I say this because the functions that call + * this routine do the conversion from 'char *' to long, and this needs to be + * done to make sure 'non-aligned' memory access do not occur. The + * characters are loaded 'little endian'. Data is a pointer to 2 unsigned + * long's and ks is the DES_key_schedule to use. enc, is non zero specifies + * encryption, zero if decryption. + */ +void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); + +/* + * This functions is the same as DES_encrypt1() except that the DES initial + * permutation (IP) and final permutation (FP) have been left out. As for + * DES_encrypt1(), you should not use this function. It is used by the + * routines in the library that implement triple DES. IP() DES_encrypt2() + * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() + * DES_encrypt1() DES_encrypt1() except faster :-). + */ +void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); + +void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3); +void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, + long length, + DES_key_schedule *ks1, DES_key_schedule *ks2, + DES_key_schedule *ks3, DES_cblock *ivec, int enc); +void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num, int enc); +void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, + int numbits, long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int enc); +void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *ks1, + DES_key_schedule *ks2, DES_key_schedule *ks3, + DES_cblock *ivec, int *num); +char *DES_fcrypt(const char *buf, const char *salt, char *ret); +char *DES_crypt(const char *buf, const char *salt); +void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, + long length, DES_key_schedule *schedule, + DES_cblock *ivec); +void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int enc); +DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], + long length, int out_count, DES_cblock *seed); +int DES_random_key(DES_cblock *ret); +void DES_set_odd_parity(DES_cblock *key); +int DES_check_key_parity(const_DES_cblock *key); +int DES_is_weak_key(const_DES_cblock *key); +/* + * DES_set_key (= set_key = DES_key_sched = key_sched) calls + * DES_set_key_checked if global variable DES_check_key is set, + * DES_set_key_unchecked otherwise. + */ +int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); +int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); +void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); +void DES_string_to_key(const char *str, DES_cblock *key); +void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); +void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num, int enc); +void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, DES_key_schedule *schedule, + DES_cblock *ivec, int *num); + +# define DES_fixup_key_parity DES_set_odd_parity + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/des_old.h b/thrid-party/openssl/openssl/des_old.h new file mode 100644 index 000000000..ee7607a24 --- /dev/null +++ b/thrid-party/openssl/openssl/des_old.h @@ -0,0 +1,497 @@ +/* crypto/des/des_old.h */ + +/*- + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + * + * The function names in here are deprecated and are only present to + * provide an interface compatible with openssl 0.9.6 and older as + * well as libdes. OpenSSL now provides functions where "des_" has + * been replaced with "DES_" in the names, to make it possible to + * make incompatible changes that are needed for C type security and + * other stuff. + * + * This include files has two compatibility modes: + * + * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API + * that is compatible with libdes and SSLeay. + * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an + * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. + * + * Note that these modes break earlier snapshots of OpenSSL, where + * libdes compatibility was the only available mode or (later on) the + * prefered compatibility mode. However, after much consideration + * (and more or less violent discussions with external parties), it + * was concluded that OpenSSL should be compatible with earlier versions + * of itself before anything else. Also, in all honesty, libdes is + * an old beast that shouldn't really be used any more. + * + * Please consider starting to use the DES_ functions rather than the + * des_ ones. The des_ functions will disappear completely before + * OpenSSL 1.0! + * + * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + */ + +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DES_H +# define HEADER_DES_H + +# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ + +# ifdef OPENSSL_NO_DES +# error DES is disabled. +# endif + +# ifndef HEADER_NEW_DES_H +# error You must include des.h, not des_old.h directly. +# endif + +# ifdef _KERBEROS_DES_H +# error replaces . +# endif + +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifdef _ +# undef _ +# endif + +typedef unsigned char _ossl_old_des_cblock[8]; +typedef struct _ossl_old_des_ks_struct { + union { + _ossl_old_des_cblock _; + /* + * make sure things are correct size on machines with 8 byte longs + */ + DES_LONG pad[2]; + } ks; +} _ossl_old_des_key_schedule[16]; + +# ifndef OPENSSL_DES_LIBDES_COMPATIBILITY +# define des_cblock DES_cblock +# define const_des_cblock const_DES_cblock +# define des_key_schedule DES_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) +# define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ + DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) +# define des_options()\ + DES_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + DES_cbc_cksum((i),(o),(l),&(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + DES_ecb_encrypt((i),(o),&(k),(e)) +# define des_encrypt1(d,k,e)\ + DES_encrypt1((d),&(k),(e)) +# define des_encrypt2(d,k,e)\ + DES_encrypt2((d),&(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + DES_encrypt3((d),&(k1),&(k2),&(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + DES_decrypt3((d),&(k1),&(k2),&(k3)) +# define des_xwhite_in2out(k,i,o)\ + DES_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + DES_enc_read((f),(b),(l),&(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + DES_enc_write((f),(b),(l),&(k),(iv)) +# define des_fcrypt(b,s,r)\ + DES_fcrypt((b),(s),(r)) +# if 0 +# define des_crypt(b,s)\ + DES_crypt((b),(s)) +# if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) +# define crypt(b,s)\ + DES_crypt((b),(s)) +# endif +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + DES_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_096_des_random_seed((k)) +# define des_random_key(r)\ + DES_random_key((r)) +# define des_read_password(k,p,v) \ + DES_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + DES_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + DES_set_odd_parity((k)) +# define des_check_key_parity(k)\ + DES_check_key_parity((k)) +# define des_is_weak_key(k)\ + DES_is_weak_key((k)) +# define des_set_key(k,ks)\ + DES_set_key((k),&(ks)) +# define des_key_sched(k,ks)\ + DES_key_sched((k),&(ks)) +# define des_set_key_checked(k,ks)\ + DES_set_key_checked((k),&(ks)) +# define des_set_key_unchecked(k,ks)\ + DES_set_key_unchecked((k),&(ks)) +# define des_string_to_key(s,k)\ + DES_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + DES_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# else /* libdes compatibility */ +/* + * Map all symbol names to _ossl_old_des_* form, so we avoid all clashes with + * libdes + */ +# define des_cblock _ossl_old_des_cblock +# define des_key_schedule _ossl_old_des_key_schedule +# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ + _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) +# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ + _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) +# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ + _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) +# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ + _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) +# define des_options()\ + _ossl_old_des_options() +# define des_cbc_cksum(i,o,l,k,iv)\ + _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) +# define des_cbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_ncbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ + _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) +# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ + _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) +# define des_ecb_encrypt(i,o,k,e)\ + _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) +# define des_encrypt(d,k,e)\ + _ossl_old_des_encrypt((d),(k),(e)) +# define des_encrypt2(d,k,e)\ + _ossl_old_des_encrypt2((d),(k),(e)) +# define des_encrypt3(d,k1,k2,k3)\ + _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) +# define des_decrypt3(d,k1,k2,k3)\ + _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) +# define des_xwhite_in2out(k,i,o)\ + _ossl_old_des_xwhite_in2out((k),(i),(o)) +# define des_enc_read(f,b,l,k,iv)\ + _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) +# define des_enc_write(f,b,l,k,iv)\ + _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) +# define des_fcrypt(b,s,r)\ + _ossl_old_des_fcrypt((b),(s),(r)) +# define des_crypt(b,s)\ + _ossl_old_des_crypt((b),(s)) +# if 0 +# define crypt(b,s)\ + _ossl_old_crypt((b),(s)) +# endif +# define des_ofb_encrypt(i,o,n,l,k,iv)\ + _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) +# define des_pcbc_encrypt(i,o,l,k,iv,e)\ + _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) +# define des_quad_cksum(i,o,l,c,s)\ + _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) +# define des_random_seed(k)\ + _ossl_old_des_random_seed((k)) +# define des_random_key(r)\ + _ossl_old_des_random_key((r)) +# define des_read_password(k,p,v) \ + _ossl_old_des_read_password((k),(p),(v)) +# define des_read_2passwords(k1,k2,p,v) \ + _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) +# define des_set_odd_parity(k)\ + _ossl_old_des_set_odd_parity((k)) +# define des_is_weak_key(k)\ + _ossl_old_des_is_weak_key((k)) +# define des_set_key(k,ks)\ + _ossl_old_des_set_key((k),(ks)) +# define des_key_sched(k,ks)\ + _ossl_old_des_key_sched((k),(ks)) +# define des_string_to_key(s,k)\ + _ossl_old_des_string_to_key((s),(k)) +# define des_string_to_2keys(s,k1,k2)\ + _ossl_old_des_string_to_2keys((s),(k1),(k2)) +# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ + _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) +# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ + _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) + +# define des_ecb2_encrypt(i,o,k1,k2,e) \ + des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) + +# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ + des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) + +# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ + des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) + +# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ + des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) + +# define des_check_key DES_check_key +# define des_rw_mode DES_rw_mode +# endif + +const char *_ossl_old_des_options(void); +void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, int enc); +DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, + _ossl_old_des_cblock *inw, + _ossl_old_des_cblock *outw, int enc); +void _ossl_old_des_cfb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, + _ossl_old_des_key_schedule ks, int enc); +void _ossl_old_des_encrypt(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt2(DES_LONG *data, _ossl_old_des_key_schedule ks, + int enc); +void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3); +void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int enc); +void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule ks1, + _ossl_old_des_key_schedule ks2, + _ossl_old_des_key_schedule ks3, + _ossl_old_des_cblock *ivec, int *num); +# if 0 +void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), + _ossl_old_des_cblock (*in_white), + _ossl_old_des_cblock (*out_white)); +# endif + +int _ossl_old_des_enc_read(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +int _ossl_old_des_enc_write(int fd, char *buf, int len, + _ossl_old_des_key_schedule sched, + _ossl_old_des_cblock *iv); +char *_ossl_old_des_fcrypt(const char *buf, const char *salt, char *ret); +char *_ossl_old_des_crypt(const char *buf, const char *salt); +# if !defined(PERL5) && !defined(NeXT) +char *_ossl_old_crypt(const char *buf, const char *salt); +# endif +void _ossl_old_des_ofb_encrypt(unsigned char *in, unsigned char *out, + int numbits, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec); +void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int enc); +DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input, + _ossl_old_des_cblock *output, long length, + int out_count, _ossl_old_des_cblock *seed); +void _ossl_old_des_random_seed(_ossl_old_des_cblock key); +void _ossl_old_des_random_key(_ossl_old_des_cblock ret); +int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, + int verify); +int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2, + const char *prompt, int verify); +void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); +int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); +int _ossl_old_des_set_key(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +int _ossl_old_des_key_sched(_ossl_old_des_cblock *key, + _ossl_old_des_key_schedule schedule); +void _ossl_old_des_string_to_key(char *str, _ossl_old_des_cblock *key); +void _ossl_old_des_string_to_2keys(char *str, _ossl_old_des_cblock *key1, + _ossl_old_des_cblock *key2); +void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num, + int enc); +void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, + long length, + _ossl_old_des_key_schedule schedule, + _ossl_old_des_cblock *ivec, int *num); + +void _ossl_096_des_random_seed(des_cblock *key); + +/* + * The following definitions provide compatibility with the MIT Kerberos + * library. The _ossl_old_des_key_schedule structure is not binary + * compatible. + */ + +# define _KERBEROS_DES_H + +# define KRBDES_ENCRYPT DES_ENCRYPT +# define KRBDES_DECRYPT DES_DECRYPT + +# ifdef KERBEROS +# define ENCRYPT DES_ENCRYPT +# define DECRYPT DES_DECRYPT +# endif + +# ifndef NCOMPAT +# define C_Block des_cblock +# define Key_schedule des_key_schedule +# define KEY_SZ DES_KEY_SZ +# define string_to_key des_string_to_key +# define read_pw_string des_read_pw_string +# define random_key des_random_key +# define pcbc_encrypt des_pcbc_encrypt +# define set_key des_set_key +# define key_sched des_key_sched +# define ecb_encrypt des_ecb_encrypt +# define cbc_encrypt des_cbc_encrypt +# define ncbc_encrypt des_ncbc_encrypt +# define xcbc_encrypt des_xcbc_encrypt +# define cbc_cksum des_cbc_cksum +# define quad_cksum des_quad_cksum +# define check_parity des_check_key_parity +# endif + +# define des_fixup_key_parity DES_fixup_key_parity + +#ifdef __cplusplus +} +#endif + +/* for DES_read_pw_string et al */ +# include + +#endif diff --git a/thrid-party/openssl/openssl/dh.h b/thrid-party/openssl/openssl/dh.h new file mode 100644 index 000000000..3527540cd --- /dev/null +++ b/thrid-party/openssl/openssl/dh.h @@ -0,0 +1,340 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DH_H +# define HEADER_DH_H + +# include + +# ifndef OPENSSL_NO_DH +# include +# include +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# ifndef OPENSSL_DH_MAX_MODULUS_BITS +# define OPENSSL_DH_MAX_MODULUS_BITS 10000 +# endif + +# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 + +# define DH_FLAG_CACHE_MONT_P 0x01 + +# if OPENSSL_API_COMPAT < 0x10100000L +/* + * Does nothing. Previously this switched off constant time behaviour. + */ +# define DH_FLAG_NO_EXP_CONSTTIME 0x00 +# endif + +/* + * If this flag is set the DH method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its responsibility to ensure the + * result is compliant. + */ + +# define DH_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DH_FLAG_NON_FIPS_ALLOW 0x0400 + +/* Already defined in ossl_typ.h */ +/* typedef struct dh_st DH; */ +/* typedef struct dh_method DH_METHOD; */ + +DECLARE_ASN1_ITEM(DHparams) + +# define DH_GENERATOR_2 2 +/* #define DH_GENERATOR_3 3 */ +# define DH_GENERATOR_5 5 + +/* DH_check error codes */ +# define DH_CHECK_P_NOT_PRIME 0x01 +# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 +# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 +# define DH_NOT_SUITABLE_GENERATOR 0x08 +# define DH_CHECK_Q_NOT_PRIME 0x10 +# define DH_CHECK_INVALID_Q_VALUE 0x20 +# define DH_CHECK_INVALID_J_VALUE 0x40 + +/* DH_check_pub_key error codes */ +# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 +# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 +# define DH_CHECK_PUBKEY_INVALID 0x04 + +/* + * primes p where (p-1)/2 is prime too are called "safe"; we define this for + * backward compatibility: + */ +# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME + +# define d2i_DHparams_fp(fp,x) \ + (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ + (char *(*)())d2i_DHparams, \ + (fp), \ + (unsigned char **)(x)) +# define i2d_DHparams_fp(fp,x) \ + ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) +# define d2i_DHparams_bio(bp,x) \ + ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) +# define i2d_DHparams_bio(bp,x) \ + ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) + +# define d2i_DHxparams_fp(fp,x) \ + (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ + (char *(*)())d2i_DHxparams, \ + (fp), \ + (unsigned char **)(x)) +# define i2d_DHxparams_fp(fp,x) \ + ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) +# define d2i_DHxparams_bio(bp,x) \ + ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) +# define i2d_DHxparams_bio(bp,x) \ + ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) + +DH *DHparams_dup(DH *); + +const DH_METHOD *DH_OpenSSL(void); + +void DH_set_default_method(const DH_METHOD *meth); +const DH_METHOD *DH_get_default_method(void); +int DH_set_method(DH *dh, const DH_METHOD *meth); +DH *DH_new_method(ENGINE *engine); + +DH *DH_new(void); +void DH_free(DH *dh); +int DH_up_ref(DH *dh); +int DH_bits(const DH *dh); +int DH_size(const DH *dh); +int DH_security_bits(const DH *dh); +#define DH_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) +int DH_set_ex_data(DH *d, int idx, void *arg); +void *DH_get_ex_data(DH *d, int idx); + +/* Deprecated version */ +DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, + void (*callback) (int, int, + void *), + void *cb_arg)) + +/* New version */ +int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, + BN_GENCB *cb); + +int DH_check_params_ex(const DH *dh); +int DH_check_ex(const DH *dh); +int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); +int DH_check_params(const DH *dh, int *ret); +int DH_check(const DH *dh, int *codes); +int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); +int DH_generate_key(DH *dh); +int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); +DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); +int i2d_DHparams(const DH *a, unsigned char **pp); +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); +int i2d_DHxparams(const DH *a, unsigned char **pp); +# ifndef OPENSSL_NO_STDIO +int DHparams_print_fp(FILE *fp, const DH *x); +# endif +int DHparams_print(BIO *bp, const DH *x); + +/* RFC 5114 parameters */ +DH *DH_get_1024_160(void); +DH *DH_get_2048_224(void); +DH *DH_get_2048_256(void); + +/* Named parameters, currently RFC7919 */ +DH *DH_new_by_nid(int nid); +int DH_get_nid(const DH *dh); + +# ifndef OPENSSL_NO_CMS +/* RFC2631 KDF */ +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); +# endif + +void DH_get0_pqg(const DH *dh, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DH_get0_key(const DH *dh, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DH_get0_p(const DH *dh); +const BIGNUM *DH_get0_q(const DH *dh); +const BIGNUM *DH_get0_g(const DH *dh); +const BIGNUM *DH_get0_priv_key(const DH *dh); +const BIGNUM *DH_get0_pub_key(const DH *dh); +void DH_clear_flags(DH *dh, int flags); +int DH_test_flags(const DH *dh, int flags); +void DH_set_flags(DH *dh, int flags); +ENGINE *DH_get0_engine(DH *d); +long DH_get_length(const DH *dh); +int DH_set_length(DH *dh, long length); + +DH_METHOD *DH_meth_new(const char *name, int flags); +void DH_meth_free(DH_METHOD *dhm); +DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); +const char *DH_meth_get0_name(const DH_METHOD *dhm); +int DH_meth_set1_name(DH_METHOD *dhm, const char *name); +int DH_meth_get_flags(const DH_METHOD *dhm); +int DH_meth_set_flags(DH_METHOD *dhm, int flags); +void *DH_meth_get0_app_data(const DH_METHOD *dhm); +int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); +int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); +int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) + (unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_meth_set_compute_key(DH_METHOD *dhm, + int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); +int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) + (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, + int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); +int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); +int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); +int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) + (DH *, int, int, BN_GENCB *); +int DH_meth_set_generate_params(DH_METHOD *dhm, + int (*generate_params) (DH *, int, int, BN_GENCB *)); + + +# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_nid(ctx, nid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, \ + EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_DH_NID, nid, NULL) + +# define EVP_PKEY_CTX_set_dh_pad(ctx, pad) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_PAD, pad, NULL) + +# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)(oid)) + +# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)(poid)) + +# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)(pmd)) + +# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)(plen)) + +# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)(p)) + +# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)(p)) + +# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) +# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) +# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15) +# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16) + +/* KDF types */ +# define EVP_PKEY_DH_KDF_NONE 1 +# ifndef OPENSSL_NO_CMS +# define EVP_PKEY_DH_KDF_X9_42 2 +# endif + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/dherr.h b/thrid-party/openssl/openssl/dherr.h new file mode 100644 index 000000000..916b3bed0 --- /dev/null +++ b/thrid-party/openssl/openssl/dherr.h @@ -0,0 +1,88 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DHERR_H +# define HEADER_DHERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_DH + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_DH_strings(void); + +/* + * DH function codes. + */ +# define DH_F_COMPUTE_KEY 102 +# define DH_F_DHPARAMS_PRINT_FP 101 +# define DH_F_DH_BUILTIN_GENPARAMS 106 +# define DH_F_DH_CHECK_EX 121 +# define DH_F_DH_CHECK_PARAMS_EX 122 +# define DH_F_DH_CHECK_PUB_KEY_EX 123 +# define DH_F_DH_CMS_DECRYPT 114 +# define DH_F_DH_CMS_SET_PEERKEY 115 +# define DH_F_DH_CMS_SET_SHARED_INFO 116 +# define DH_F_DH_METH_DUP 117 +# define DH_F_DH_METH_NEW 118 +# define DH_F_DH_METH_SET1_NAME 119 +# define DH_F_DH_NEW_BY_NID 104 +# define DH_F_DH_NEW_METHOD 105 +# define DH_F_DH_PARAM_DECODE 107 +# define DH_F_DH_PKEY_PUBLIC_CHECK 124 +# define DH_F_DH_PRIV_DECODE 110 +# define DH_F_DH_PRIV_ENCODE 111 +# define DH_F_DH_PUB_DECODE 108 +# define DH_F_DH_PUB_ENCODE 109 +# define DH_F_DO_DH_PRINT 100 +# define DH_F_GENERATE_KEY 103 +# define DH_F_PKEY_DH_CTRL_STR 120 +# define DH_F_PKEY_DH_DERIVE 112 +# define DH_F_PKEY_DH_INIT 125 +# define DH_F_PKEY_DH_KEYGEN 113 + +/* + * DH reason codes. + */ +# define DH_R_BAD_GENERATOR 101 +# define DH_R_BN_DECODE_ERROR 109 +# define DH_R_BN_ERROR 106 +# define DH_R_CHECK_INVALID_J_VALUE 115 +# define DH_R_CHECK_INVALID_Q_VALUE 116 +# define DH_R_CHECK_PUBKEY_INVALID 122 +# define DH_R_CHECK_PUBKEY_TOO_LARGE 123 +# define DH_R_CHECK_PUBKEY_TOO_SMALL 124 +# define DH_R_CHECK_P_NOT_PRIME 117 +# define DH_R_CHECK_P_NOT_SAFE_PRIME 118 +# define DH_R_CHECK_Q_NOT_PRIME 119 +# define DH_R_DECODE_ERROR 104 +# define DH_R_INVALID_PARAMETER_NAME 110 +# define DH_R_INVALID_PARAMETER_NID 114 +# define DH_R_INVALID_PUBKEY 102 +# define DH_R_KDF_PARAMETER_ERROR 112 +# define DH_R_KEYS_NOT_SET 108 +# define DH_R_MISSING_PUBKEY 125 +# define DH_R_MODULUS_TOO_LARGE 103 +# define DH_R_NOT_SUITABLE_GENERATOR 120 +# define DH_R_NO_PARAMETERS_SET 107 +# define DH_R_NO_PRIVATE_VALUE 100 +# define DH_R_PARAMETER_ENCODING_ERROR 105 +# define DH_R_PEER_KEY_ERROR 111 +# define DH_R_SHARED_INFO_ERROR 113 +# define DH_R_UNABLE_TO_CHECK_GENERATOR 121 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/dsa.h b/thrid-party/openssl/openssl/dsa.h new file mode 100644 index 000000000..822eff347 --- /dev/null +++ b/thrid-party/openssl/openssl/dsa.h @@ -0,0 +1,238 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSA_H +# define HEADER_DSA_H + +# include + +# ifndef OPENSSL_NO_DSA +# ifdef __cplusplus +extern "C" { +# endif +# include +# include +# include +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include + +# ifndef OPENSSL_DSA_MAX_MODULUS_BITS +# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 +# endif + +# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 + +# define DSA_FLAG_CACHE_MONT_P 0x01 +# if OPENSSL_API_COMPAT < 0x10100000L +/* + * Does nothing. Previously this switched off constant time behaviour. + */ +# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 +# endif + +/* + * If this flag is set the DSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its responsibility to ensure the + * result is compliant. + */ + +# define DSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 +# define DSA_FLAG_FIPS_CHECKED 0x0800 + +/* Already defined in ossl_typ.h */ +/* typedef struct dsa_st DSA; */ +/* typedef struct dsa_method DSA_METHOD; */ + +typedef struct DSA_SIG_st DSA_SIG; + +# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ + (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) +# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ + (unsigned char *)(x)) +# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) +# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) + +DSA *DSAparams_dup(DSA *x); +DSA_SIG *DSA_SIG_new(void); +void DSA_SIG_free(DSA_SIG *a); +int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); +DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); +void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); +int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); + +DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); +int DSA_do_verify(const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); + +const DSA_METHOD *DSA_OpenSSL(void); + +void DSA_set_default_method(const DSA_METHOD *); +const DSA_METHOD *DSA_get_default_method(void); +int DSA_set_method(DSA *dsa, const DSA_METHOD *); +const DSA_METHOD *DSA_get_method(DSA *d); + +DSA *DSA_new(void); +DSA *DSA_new_method(ENGINE *engine); +void DSA_free(DSA *r); +/* "up" the DSA object's reference count */ +int DSA_up_ref(DSA *r); +int DSA_size(const DSA *); +int DSA_bits(const DSA *d); +int DSA_security_bits(const DSA *d); + /* next 4 return -1 on error */ +DEPRECATEDIN_1_2_0(int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)) +int DSA_sign(int type, const unsigned char *dgst, int dlen, + unsigned char *sig, unsigned int *siglen, DSA *dsa); +int DSA_verify(int type, const unsigned char *dgst, int dgst_len, + const unsigned char *sigbuf, int siglen, DSA *dsa); +#define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) +int DSA_set_ex_data(DSA *d, int idx, void *arg); +void *DSA_get_ex_data(DSA *d, int idx); + +DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); + +/* Deprecated version */ +DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits, + unsigned char *seed, + int seed_len, + int *counter_ret, + unsigned long *h_ret, void + (*callback) (int, int, + void *), + void *cb_arg)) + +/* New version */ +int DSA_generate_parameters_ex(DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + +int DSA_generate_key(DSA *a); +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); +int i2d_DSAparams(const DSA *a, unsigned char **pp); + +int DSAparams_print(BIO *bp, const DSA *x); +int DSA_print(BIO *bp, const DSA *x, int off); +# ifndef OPENSSL_NO_STDIO +int DSAparams_print_fp(FILE *fp, const DSA *x); +int DSA_print_fp(FILE *bp, const DSA *x, int off); +# endif + +# define DSS_prime_checks 64 +/* + * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only + * have one value here we set the number of checks to 64 which is the 128 bit + * security level that is the highest level and valid for creating a 3072 bit + * DSA key. + */ +# define DSA_is_prime(n, callback, cb_arg) \ + BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) + +# ifndef OPENSSL_NO_DH +/* + * Convert DSA structure (key or just parameters) into DH structure (be + * careful to avoid small subgroup attacks when using this!) + */ +DH *DSA_dup_DH(const DSA *r); +# endif + +# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) + +# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) + +void DSA_get0_pqg(const DSA *d, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DSA_get0_key(const DSA *d, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DSA_get0_p(const DSA *d); +const BIGNUM *DSA_get0_q(const DSA *d); +const BIGNUM *DSA_get0_g(const DSA *d); +const BIGNUM *DSA_get0_pub_key(const DSA *d); +const BIGNUM *DSA_get0_priv_key(const DSA *d); +void DSA_clear_flags(DSA *d, int flags); +int DSA_test_flags(const DSA *d, int flags); +void DSA_set_flags(DSA *d, int flags); +ENGINE *DSA_get0_engine(DSA *d); + +DSA_METHOD *DSA_meth_new(const char *name, int flags); +void DSA_meth_free(DSA_METHOD *dsam); +DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); +const char *DSA_meth_get0_name(const DSA_METHOD *dsam); +int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); +int DSA_meth_get_flags(const DSA_METHOD *dsam); +int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); +void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); +int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); +DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) + (const unsigned char *, int, DSA *); +int DSA_meth_set_sign(DSA_METHOD *dsam, + DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); +int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) + (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); +int DSA_meth_set_sign_setup(DSA_METHOD *dsam, + int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); +int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) + (const unsigned char *, int, DSA_SIG *, DSA *); +int DSA_meth_set_verify(DSA_METHOD *dsam, + int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); +int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_mod_exp(DSA_METHOD *dsam, + int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, + BN_MONT_CTX *)); +int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, + int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); +int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); +int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); +int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) + (DSA *, int, const unsigned char *, int, int *, unsigned long *, + BN_GENCB *); +int DSA_meth_set_paramgen(DSA_METHOD *dsam, + int (*paramgen) (DSA *, int, const unsigned char *, int, int *, + unsigned long *, BN_GENCB *)); +int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/dsaerr.h b/thrid-party/openssl/openssl/dsaerr.h new file mode 100644 index 000000000..495a1ac89 --- /dev/null +++ b/thrid-party/openssl/openssl/dsaerr.h @@ -0,0 +1,72 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DSAERR_H +# define HEADER_DSAERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_DSA + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_DSA_strings(void); + +/* + * DSA function codes. + */ +# define DSA_F_DSAPARAMS_PRINT 100 +# define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN 125 +# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 +# define DSA_F_DSA_DO_SIGN 112 +# define DSA_F_DSA_DO_VERIFY 113 +# define DSA_F_DSA_METH_DUP 127 +# define DSA_F_DSA_METH_NEW 128 +# define DSA_F_DSA_METH_SET1_NAME 129 +# define DSA_F_DSA_NEW_METHOD 103 +# define DSA_F_DSA_PARAM_DECODE 119 +# define DSA_F_DSA_PRINT_FP 105 +# define DSA_F_DSA_PRIV_DECODE 115 +# define DSA_F_DSA_PRIV_ENCODE 116 +# define DSA_F_DSA_PUB_DECODE 117 +# define DSA_F_DSA_PUB_ENCODE 118 +# define DSA_F_DSA_SIGN 106 +# define DSA_F_DSA_SIGN_SETUP 107 +# define DSA_F_DSA_SIG_NEW 102 +# define DSA_F_OLD_DSA_PRIV_DECODE 122 +# define DSA_F_PKEY_DSA_CTRL 120 +# define DSA_F_PKEY_DSA_CTRL_STR 104 +# define DSA_F_PKEY_DSA_KEYGEN 121 + +/* + * DSA reason codes. + */ +# define DSA_R_BAD_Q_VALUE 102 +# define DSA_R_BN_DECODE_ERROR 108 +# define DSA_R_BN_ERROR 109 +# define DSA_R_DECODE_ERROR 104 +# define DSA_R_INVALID_DIGEST_TYPE 106 +# define DSA_R_INVALID_PARAMETERS 112 +# define DSA_R_MISSING_PARAMETERS 101 +# define DSA_R_MISSING_PRIVATE_KEY 111 +# define DSA_R_MODULUS_TOO_LARGE 103 +# define DSA_R_NO_PARAMETERS_SET 107 +# define DSA_R_PARAMETER_ENCODING_ERROR 105 +# define DSA_R_Q_NOT_PRIME 113 +# define DSA_R_SEED_LEN_SMALL 110 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/dso.h b/thrid-party/openssl/openssl/dso.h new file mode 100644 index 000000000..c9013f5ce --- /dev/null +++ b/thrid-party/openssl/openssl/dso.h @@ -0,0 +1,451 @@ +/* dso.h */ +/* + * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project + * 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_DSO_H +# define HEADER_DSO_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* These values are used as commands to DSO_ctrl() */ +# define DSO_CTRL_GET_FLAGS 1 +# define DSO_CTRL_SET_FLAGS 2 +# define DSO_CTRL_OR_FLAGS 3 + +/* + * By default, DSO_load() will translate the provided filename into a form + * typical for the platform (more specifically the DSO_METHOD) using the + * dso_name_converter function of the method. Eg. win32 will transform "blah" + * into "blah.dll", and dlfcn will transform it into "libblah.so". The + * behaviour can be overriden by setting the name_converter callback in the + * DSO object (using DSO_set_name_converter()). This callback could even + * utilise the DSO_METHOD's converter too if it only wants to override + * behaviour for one or two possible DSO methods. However, the following flag + * can be set in a DSO to prevent *any* native name-translation at all - eg. + * if the caller has prompted the user for a path to a driver library so the + * filename should be interpreted as-is. + */ +# define DSO_FLAG_NO_NAME_TRANSLATION 0x01 +/* + * An extra flag to give if only the extension should be added as + * translation. This is obviously only of importance on Unix and other + * operating systems where the translation also may prefix the name with + * something, like 'lib', and ignored everywhere else. This flag is also + * ignored if DSO_FLAG_NO_NAME_TRANSLATION is used at the same time. + */ +# define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 + +/* + * The following flag controls the translation of symbol names to upper case. + * This is currently only being implemented for OpenVMS. + */ +# define DSO_FLAG_UPCASE_SYMBOL 0x10 + +/* + * This flag loads the library with public symbols. Meaning: The exported + * symbols of this library are public to all libraries loaded after this + * library. At the moment only implemented in unix. + */ +# define DSO_FLAG_GLOBAL_SYMBOLS 0x20 + +typedef void (*DSO_FUNC_TYPE) (void); + +typedef struct dso_st DSO; + +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that transform filenames. They are passed a DSO structure + * pointer (or NULL if they are to be used independantly of a DSO object) and + * a filename to transform. They should either return NULL (if there is an + * error condition) or a newly allocated string containing the transformed + * form that the caller will need to free with OPENSSL_free() when done. + */ +typedef char *(*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); +/* + * The function prototype used for method functions (or caller-provided + * callbacks) that merge two file specifications. They are passed a DSO + * structure pointer (or NULL if they are to be used independantly of a DSO + * object) and two file specifications to merge. They should either return + * NULL (if there is an error condition) or a newly allocated string + * containing the result of merging that the caller will need to free with + * OPENSSL_free() when done. Here, merging means that bits and pieces are + * taken from each of the file specifications and added together in whatever + * fashion that is sensible for the DSO method in question. The only rule + * that really applies is that if the two specification contain pieces of the + * same type, the copy from the first string takes priority. One could see + * it as the first specification is the one given by the user and the second + * being a bunch of defaults to add on if they're missing in the first. + */ +typedef char *(*DSO_MERGER_FUNC)(DSO *, const char *, const char *); + +typedef struct dso_meth_st { + const char *name; + /* + * Loads a shared library, NB: new DSO_METHODs must ensure that a + * successful load populates the loaded_filename field, and likewise a + * successful unload OPENSSL_frees and NULLs it out. + */ + int (*dso_load) (DSO *dso); + /* Unloads a shared library */ + int (*dso_unload) (DSO *dso); + /* Binds a variable */ + void *(*dso_bind_var) (DSO *dso, const char *symname); + /* + * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should + * be cast to the real function prototype by the caller. Platforms that + * don't have compatible representations for different prototypes (this + * is possible within ANSI C) are highly unlikely to have shared + * libraries at all, let alone a DSO_METHOD implemented for them. + */ + DSO_FUNC_TYPE (*dso_bind_func) (DSO *dso, const char *symname); +/* I don't think this would actually be used in any circumstances. */ +# if 0 + /* Unbinds a variable */ + int (*dso_unbind_var) (DSO *dso, char *symname, void *symptr); + /* Unbinds a function */ + int (*dso_unbind_func) (DSO *dso, char *symname, DSO_FUNC_TYPE symptr); +# endif + /* + * The generic (yuck) "ctrl()" function. NB: Negative return values + * (rather than zero) indicate errors. + */ + long (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg); + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_NAME_CONVERTER_FUNC dso_name_converter; + /* + * The default DSO_METHOD-specific function for converting filenames to a + * canonical native form. + */ + DSO_MERGER_FUNC dso_merger; + /* [De]Initialisation handlers. */ + int (*init) (DSO *dso); + int (*finish) (DSO *dso); + /* Return pathname of the module containing location */ + int (*pathbyaddr) (void *addr, char *path, int sz); + /* Perform global symbol lookup, i.e. among *all* modules */ + void *(*globallookup) (const char *symname); +} DSO_METHOD; + +/**********************************************************************/ +/* The low-level handle type used to refer to a loaded shared library */ + +struct dso_st { + DSO_METHOD *meth; + /* + * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use + * anything but will need to cache the filename for use in the dso_bind + * handler. All in all, let each method control its own destiny. + * "Handles" and such go in a STACK. + */ + STACK_OF(void) *meth_data; + int references; + int flags; + /* + * For use by applications etc ... use this for your bits'n'pieces, don't + * touch meth_data! + */ + CRYPTO_EX_DATA ex_data; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_name_converter. NB: This + * should normally set using DSO_set_name_converter(). + */ + DSO_NAME_CONVERTER_FUNC name_converter; + /* + * If this callback function pointer is set to non-NULL, then it will be + * used in DSO_load() in place of meth->dso_merger. NB: This should + * normally set using DSO_set_merger(). + */ + DSO_MERGER_FUNC merger; + /* + * This is populated with (a copy of) the platform-independant filename + * used for this DSO. + */ + char *filename; + /* + * This is populated with (a copy of) the translated filename by which + * the DSO was actually loaded. It is NULL iff the DSO is not currently + * loaded. NB: This is here because the filename translation process may + * involve a callback being invoked more than once not only to convert to + * a platform-specific form, but also to try different filenames in the + * process of trying to perform a load. As such, this variable can be + * used to indicate (a) whether this DSO structure corresponds to a + * loaded library or not, and (b) the filename with which it was actually + * loaded. + */ + char *loaded_filename; +}; + +DSO *DSO_new(void); +DSO *DSO_new_method(DSO_METHOD *method); +int DSO_free(DSO *dso); +int DSO_flags(DSO *dso); +int DSO_up_ref(DSO *dso); +long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); + +/* + * This function sets the DSO's name_converter callback. If it is non-NULL, + * then it will be used instead of the associated DSO_METHOD's function. If + * oldcb is non-NULL then it is set to the function pointer value being + * replaced. Return value is non-zero for success. + */ +int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, + DSO_NAME_CONVERTER_FUNC *oldcb); +/* + * These functions can be used to get/set the platform-independant filename + * used for a DSO. NB: set will fail if the DSO is already loaded. + */ +const char *DSO_get_filename(DSO *dso); +int DSO_set_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's name_converter callback to translate a + * filename, or if the callback isn't set it will instead use the DSO_METHOD's + * converter. If "filename" is NULL, the "filename" in the DSO itself will be + * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is + * simply duplicated. NB: This function is usually called from within a + * DSO_METHOD during the processing of a DSO_load() call, and is exposed so + * that caller-created DSO_METHODs can do the same thing. A non-NULL return + * value will need to be OPENSSL_free()'d. + */ +char *DSO_convert_filename(DSO *dso, const char *filename); +/* + * This function will invoke the DSO's merger callback to merge two file + * specifications, or if the callback isn't set it will instead use the + * DSO_METHOD's merger. A non-NULL return value will need to be + * OPENSSL_free()'d. + */ +char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); +/* + * If the DSO is currently loaded, this returns the filename that it was + * loaded under, otherwise it returns NULL. So it is also useful as a test as + * to whether the DSO is currently loaded. NB: This will not necessarily + * return the same value as DSO_convert_filename(dso, dso->filename), because + * the DSO_METHOD's load function may have tried a variety of filenames (with + * and/or without the aid of the converters) before settling on the one it + * actually loaded. + */ +const char *DSO_get_loaded_filename(DSO *dso); + +void DSO_set_default_method(DSO_METHOD *meth); +DSO_METHOD *DSO_get_default_method(void); +DSO_METHOD *DSO_get_method(DSO *dso); +DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); + +/* + * The all-singing all-dancing load function, you normally pass NULL for the + * first and third parameters. Use DSO_up and DSO_free for subsequent + * reference count handling. Any flags passed in will be set in the + * constructed DSO after its init() function but before the load operation. + * If 'dso' is non-NULL, 'flags' is ignored. + */ +DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); + +/* This function binds to a variable inside a shared library. */ +void *DSO_bind_var(DSO *dso, const char *symname); + +/* This function binds to a function inside a shared library. */ +DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); + +/* + * This method is the default, but will beg, borrow, or steal whatever method + * should be the default on any particular platform (including + * DSO_METH_null() if necessary). + */ +DSO_METHOD *DSO_METHOD_openssl(void); + +/* + * This method is defined for all platforms - if a platform has no DSO + * support then this will be the only method! + */ +DSO_METHOD *DSO_METHOD_null(void); + +/* + * If DSO_DLFCN is defined, the standard dlfcn.h-style functions (dlopen, + * dlclose, dlsym, etc) will be used and incorporated into this method. If + * not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dlfcn(void); + +/* + * If DSO_DL is defined, the standard dl.h-style functions (shl_load, + * shl_unload, shl_findsym, etc) will be used and incorporated into this + * method. If not, this method will return NULL. + */ +DSO_METHOD *DSO_METHOD_dl(void); + +/* If WIN32 is defined, use DLLs. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_win32(void); + +/* If VMS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_vms(void); + +/* + * This function writes null-terminated pathname of DSO module containing + * 'addr' into 'sz' large caller-provided 'path' and returns the number of + * characters [including trailing zero] written to it. If 'sz' is 0 or + * negative, 'path' is ignored and required amount of charachers [including + * trailing zero] to accomodate pathname is returned. If 'addr' is NULL, then + * pathname of cryptolib itself is returned. Negative or zero return value + * denotes error. + */ +int DSO_pathbyaddr(void *addr, char *path, int sz); + +/* + * This function should be used with caution! It looks up symbols in *all* + * loaded modules and if module gets unloaded by somebody else attempt to + * dereference the pointer is doomed to have fatal consequences. Primary + * usage for this function is to probe *core* system functionality, e.g. + * check if getnameinfo(3) is available at run-time without bothering about + * OS-specific details such as libc.so.versioning or where does it actually + * reside: in libc itself or libsocket. + */ +void *DSO_global_lookup(const char *name); + +/* If BeOS is defined, use shared images. If not, return NULL. */ +DSO_METHOD *DSO_METHOD_beos(void); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_DSO_strings(void); + +/* Error codes for the DSO functions. */ + +/* Function codes. */ +# define DSO_F_BEOS_BIND_FUNC 144 +# define DSO_F_BEOS_BIND_VAR 145 +# define DSO_F_BEOS_LOAD 146 +# define DSO_F_BEOS_NAME_CONVERTER 147 +# define DSO_F_BEOS_UNLOAD 148 +# define DSO_F_DLFCN_BIND_FUNC 100 +# define DSO_F_DLFCN_BIND_VAR 101 +# define DSO_F_DLFCN_LOAD 102 +# define DSO_F_DLFCN_MERGER 130 +# define DSO_F_DLFCN_NAME_CONVERTER 123 +# define DSO_F_DLFCN_UNLOAD 103 +# define DSO_F_DL_BIND_FUNC 104 +# define DSO_F_DL_BIND_VAR 105 +# define DSO_F_DL_LOAD 106 +# define DSO_F_DL_MERGER 131 +# define DSO_F_DL_NAME_CONVERTER 124 +# define DSO_F_DL_UNLOAD 107 +# define DSO_F_DSO_BIND_FUNC 108 +# define DSO_F_DSO_BIND_VAR 109 +# define DSO_F_DSO_CONVERT_FILENAME 126 +# define DSO_F_DSO_CTRL 110 +# define DSO_F_DSO_FREE 111 +# define DSO_F_DSO_GET_FILENAME 127 +# define DSO_F_DSO_GET_LOADED_FILENAME 128 +# define DSO_F_DSO_GLOBAL_LOOKUP 139 +# define DSO_F_DSO_LOAD 112 +# define DSO_F_DSO_MERGE 132 +# define DSO_F_DSO_NEW_METHOD 113 +# define DSO_F_DSO_PATHBYADDR 140 +# define DSO_F_DSO_SET_FILENAME 129 +# define DSO_F_DSO_SET_NAME_CONVERTER 122 +# define DSO_F_DSO_UP_REF 114 +# define DSO_F_GLOBAL_LOOKUP_FUNC 138 +# define DSO_F_PATHBYADDR 137 +# define DSO_F_VMS_BIND_SYM 115 +# define DSO_F_VMS_LOAD 116 +# define DSO_F_VMS_MERGER 133 +# define DSO_F_VMS_UNLOAD 117 +# define DSO_F_WIN32_BIND_FUNC 118 +# define DSO_F_WIN32_BIND_VAR 119 +# define DSO_F_WIN32_GLOBALLOOKUP 142 +# define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 +# define DSO_F_WIN32_JOINER 135 +# define DSO_F_WIN32_LOAD 120 +# define DSO_F_WIN32_MERGER 134 +# define DSO_F_WIN32_NAME_CONVERTER 125 +# define DSO_F_WIN32_PATHBYADDR 141 +# define DSO_F_WIN32_SPLITTER 136 +# define DSO_F_WIN32_UNLOAD 121 + +/* Reason codes. */ +# define DSO_R_CTRL_FAILED 100 +# define DSO_R_DSO_ALREADY_LOADED 110 +# define DSO_R_EMPTY_FILE_STRUCTURE 113 +# define DSO_R_FAILURE 114 +# define DSO_R_FILENAME_TOO_BIG 101 +# define DSO_R_FINISH_FAILED 102 +# define DSO_R_INCORRECT_FILE_SYNTAX 115 +# define DSO_R_LOAD_FAILED 103 +# define DSO_R_NAME_TRANSLATION_FAILED 109 +# define DSO_R_NO_FILENAME 111 +# define DSO_R_NO_FILE_SPECIFICATION 116 +# define DSO_R_NULL_HANDLE 104 +# define DSO_R_SET_FILENAME_FAILED 112 +# define DSO_R_STACK_ERROR 105 +# define DSO_R_SYM_FAILURE 106 +# define DSO_R_UNLOAD_FAILED 107 +# define DSO_R_UNSUPPORTED 108 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/dtls1.h b/thrid-party/openssl/openssl/dtls1.h new file mode 100644 index 000000000..a312e386c --- /dev/null +++ b/thrid-party/openssl/openssl/dtls1.h @@ -0,0 +1,55 @@ +/* + * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DTLS1_H +# define HEADER_DTLS1_H + +#ifdef __cplusplus +extern "C" { +#endif + +# define DTLS1_VERSION 0xFEFF +# define DTLS1_2_VERSION 0xFEFD +# define DTLS_MIN_VERSION DTLS1_VERSION +# define DTLS_MAX_VERSION DTLS1_2_VERSION +# define DTLS1_VERSION_MAJOR 0xFE + +# define DTLS1_BAD_VER 0x0100 + +/* Special value for method supporting multiple versions */ +# define DTLS_ANY_VERSION 0x1FFFF + +/* lengths of messages */ +/* + * Actually the max cookie length in DTLS is 255. But we can't change this now + * due to compatibility concerns. + */ +# define DTLS1_COOKIE_LENGTH 256 + +# define DTLS1_RT_HEADER_LENGTH 13 + +# define DTLS1_HM_HEADER_LENGTH 12 + +# define DTLS1_HM_BAD_FRAGMENT -2 +# define DTLS1_HM_FRAGMENT_RETRY -3 + +# define DTLS1_CCS_HEADER_LENGTH 1 + +# define DTLS1_AL_HEADER_LENGTH 2 + +/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ +# define DTLS1_TMO_READ_COUNT 2 +# define DTLS1_TMO_WRITE_COUNT 2 + +# define DTLS1_TMO_ALERT_COUNT 12 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/e_os2.h b/thrid-party/openssl/openssl/e_os2.h new file mode 100644 index 000000000..97a776cda --- /dev/null +++ b/thrid-party/openssl/openssl/e_os2.h @@ -0,0 +1,300 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_E_OS2_H +# define HEADER_E_OS2_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/****************************************************************************** + * Detect operating systems. This probably needs completing. + * The result is that at least one OPENSSL_SYS_os macro should be defined. + * However, if none is defined, Unix is assumed. + **/ + +# define OPENSSL_SYS_UNIX + +/* --------------------- Microsoft operating systems ---------------------- */ + +/* + * Note that MSDOS actually denotes 32-bit environments running on top of + * MS-DOS, such as DJGPP one. + */ +# if defined(OPENSSL_SYS_MSDOS) +# undef OPENSSL_SYS_UNIX +# endif + +/* + * For 32 bit environment, there seems to be the CygWin environment and then + * all the others that try to do the same thing Microsoft does... + */ +/* + * UEFI lives here because it might be built with a Microsoft toolchain and + * we need to avoid the false positive match on Windows. + */ +# if defined(OPENSSL_SYS_UEFI) +# undef OPENSSL_SYS_UNIX +# elif defined(OPENSSL_SYS_UWIN) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WIN32_UWIN +# else +# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) +# define OPENSSL_SYS_WIN32_CYGWIN +# else +# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) +# undef OPENSSL_SYS_UNIX +# if !defined(OPENSSL_SYS_WIN32) +# define OPENSSL_SYS_WIN32 +# endif +# endif +# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) +# undef OPENSSL_SYS_UNIX +# if !defined(OPENSSL_SYS_WIN64) +# define OPENSSL_SYS_WIN64 +# endif +# endif +# if defined(OPENSSL_SYS_WINNT) +# undef OPENSSL_SYS_UNIX +# endif +# if defined(OPENSSL_SYS_WINCE) +# undef OPENSSL_SYS_UNIX +# endif +# endif +# endif + +/* Anything that tries to look like Microsoft is "Windows" */ +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) +# undef OPENSSL_SYS_UNIX +# define OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_SYS_MSDOS +# define OPENSSL_SYS_MSDOS +# endif +# endif + +/* + * DLL settings. This part is a bit tough, because it's up to the + * application implementor how he or she will link the application, so it + * requires some macro to be used. + */ +# ifdef OPENSSL_SYS_WINDOWS +# ifndef OPENSSL_OPT_WINDLL +# if defined(_WINDLL) /* This is used when building OpenSSL to + * indicate that DLL linkage should be used */ +# define OPENSSL_OPT_WINDLL +# endif +# endif +# endif + +/* ------------------------------- OpenVMS -------------------------------- */ +# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYS_VMS) +# if !defined(OPENSSL_SYS_VMS) +# undef OPENSSL_SYS_UNIX +# endif +# define OPENSSL_SYS_VMS +# if defined(__DECC) +# define OPENSSL_SYS_VMS_DECC +# elif defined(__DECCXX) +# define OPENSSL_SYS_VMS_DECC +# define OPENSSL_SYS_VMS_DECCXX +# else +# define OPENSSL_SYS_VMS_NODECC +# endif +# endif + +/* -------------------------------- Unix ---------------------------------- */ +# ifdef OPENSSL_SYS_UNIX +# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) +# define OPENSSL_SYS_LINUX +# endif +# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) +# define OPENSSL_SYS_AIX +# endif +# endif + +/* -------------------------------- VOS ----------------------------------- */ +# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) +# define OPENSSL_SYS_VOS +# ifdef __HPPA__ +# define OPENSSL_SYS_VOS_HPPA +# endif +# ifdef __IA32__ +# define OPENSSL_SYS_VOS_IA32 +# endif +# endif + +/** + * That's it for OS-specific stuff + *****************************************************************************/ + +/* Specials for I/O an exit */ +# ifdef OPENSSL_SYS_MSDOS +# define OPENSSL_UNISTD_IO +# define OPENSSL_DECLARE_EXIT extern void exit(int); +# else +# define OPENSSL_UNISTD_IO OPENSSL_UNISTD +# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ +# endif + +/*- + * OPENSSL_EXTERN is normally used to declare a symbol with possible extra + * attributes to handle its presence in a shared library. + * OPENSSL_EXPORT is used to define a symbol with extra possible attributes + * to make it visible in a shared library. + * Care needs to be taken when a header file is used both to declare and + * define symbols. Basically, for any library that exports some global + * variables, the following code must be present in the header file that + * declares them, before OPENSSL_EXTERN is used: + * + * #ifdef SOME_BUILD_FLAG_MACRO + * # undef OPENSSL_EXTERN + * # define OPENSSL_EXTERN OPENSSL_EXPORT + * #endif + * + * The default is to have OPENSSL_EXPORT and OPENSSL_EXTERN + * have some generally sensible values. + */ + +# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) +# define OPENSSL_EXPORT extern __declspec(dllexport) +# define OPENSSL_EXTERN extern __declspec(dllimport) +# else +# define OPENSSL_EXPORT extern +# define OPENSSL_EXTERN extern +# endif + +/*- + * Macros to allow global variables to be reached through function calls when + * required (if a shared library version requires it, for example. + * The way it's done allows definitions like this: + * + * // in foobar.c + * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) + * // in foobar.h + * OPENSSL_DECLARE_GLOBAL(int,foobar); + * #define foobar OPENSSL_GLOBAL_REF(foobar) + */ +# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ + type *_shadow_##name(void) \ + { static type _hide_##name=value; return &_hide_##name; } +# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) +# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) +# else +# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) type _shadow_##name=value; +# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name +# define OPENSSL_GLOBAL_REF(name) _shadow_##name +# endif + +# ifdef _WIN32 +# ifdef _WIN64 +# define ossl_ssize_t __int64 +# define OSSL_SSIZE_MAX _I64_MAX +# else +# define ossl_ssize_t int +# define OSSL_SSIZE_MAX INT_MAX +# endif +# endif + +# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) +# define ossl_ssize_t INTN +# define OSSL_SSIZE_MAX MAX_INTN +# endif + +# ifndef ossl_ssize_t +# define ossl_ssize_t ssize_t +# if defined(SSIZE_MAX) +# define OSSL_SSIZE_MAX SSIZE_MAX +# elif defined(_POSIX_SSIZE_MAX) +# define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX +# else +# define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1)) +# endif +# endif + +# ifdef DEBUG_UNUSED +# define __owur __attribute__((__warn_unused_result__)) +# else +# define __owur +# endif + +/* Standard integer types */ +# if defined(OPENSSL_SYS_UEFI) +typedef INT8 int8_t; +typedef UINT8 uint8_t; +typedef INT16 int16_t; +typedef UINT16 uint16_t; +typedef INT32 int32_t; +typedef UINT32 uint32_t; +typedef INT64 int64_t; +typedef UINT64 uint64_t; +# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ + defined(__osf__) || defined(__sgi) || defined(__hpux) || \ + defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) +# include +# elif defined(_MSC_VER) && _MSC_VER<=1500 +/* + * minimally required typdefs for systems not supporting inttypes.h or + * stdint.h: currently just older VC++ + */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef short int16_t; +typedef unsigned short uint16_t; +typedef int int32_t; +typedef unsigned int uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +# else +# include +# endif + +/* ossl_inline: portable inline definition usable in public headers */ +# if !defined(inline) && !defined(__cplusplus) +# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L + /* just use inline */ +# define ossl_inline inline +# elif defined(__GNUC__) && __GNUC__>=2 +# define ossl_inline __inline__ +# elif defined(_MSC_VER) + /* + * Visual Studio: inline is available in C++ only, however + * __inline is available for C, see + * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx + */ +# define ossl_inline __inline +# else +# define ossl_inline +# endif +# else +# define ossl_inline inline +# endif + +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define ossl_noreturn _Noreturn +# elif defined(__GNUC__) && __GNUC__ >= 2 +# define ossl_noreturn __attribute__((noreturn)) +# else +# define ossl_noreturn +# endif + +/* ossl_unused: portable unused attribute for use in public headers */ +# if defined(__GNUC__) +# define ossl_unused __attribute__((unused)) +# else +# define ossl_unused +# endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/ebcdic.h b/thrid-party/openssl/openssl/ebcdic.h new file mode 100644 index 000000000..aa0128559 --- /dev/null +++ b/thrid-party/openssl/openssl/ebcdic.h @@ -0,0 +1,33 @@ +/* + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_EBCDIC_H +# define HEADER_EBCDIC_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid name clashes with other applications */ +# define os_toascii _openssl_os_toascii +# define os_toebcdic _openssl_os_toebcdic +# define ebcdic2ascii _openssl_ebcdic2ascii +# define ascii2ebcdic _openssl_ascii2ebcdic + +extern const unsigned char os_toascii[256]; +extern const unsigned char os_toebcdic[256]; +void *ebcdic2ascii(void *dest, const void *srce, size_t count); +void *ascii2ebcdic(void *dest, const void *srce, size_t count); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/ec.h b/thrid-party/openssl/openssl/ec.h new file mode 100644 index 000000000..5af9ebdc7 --- /dev/null +++ b/thrid-party/openssl/openssl/ec.h @@ -0,0 +1,1479 @@ +/* + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_EC_H +# define HEADER_EC_H + +# include + +# ifndef OPENSSL_NO_EC +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# ifdef __cplusplus +extern "C" { +# endif + +# ifndef OPENSSL_ECC_MAX_FIELD_BITS +# define OPENSSL_ECC_MAX_FIELD_BITS 661 +# endif + +/** Enum for the point conversion form as defined in X9.62 (ECDSA) + * for the encoding of a elliptic curve point (x,y) */ +typedef enum { + /** the point is encoded as z||x, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_COMPRESSED = 2, + /** the point is encoded as z||x||y, where z is the octet 0x04 */ + POINT_CONVERSION_UNCOMPRESSED = 4, + /** the point is encoded as z||x||y, where the octet z specifies + * which solution of the quadratic equation y is */ + POINT_CONVERSION_HYBRID = 6 +} point_conversion_form_t; + +typedef struct ec_method_st EC_METHOD; +typedef struct ec_group_st EC_GROUP; +typedef struct ec_point_st EC_POINT; +typedef struct ecpk_parameters_st ECPKPARAMETERS; +typedef struct ec_parameters_st ECPARAMETERS; + +/********************************************************************/ +/* EC_METHODs for curves over GF(p) */ +/********************************************************************/ + +/** Returns the basic GFp ec methods which provides the basis for the + * optimized methods. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_simple_method(void); + +/** Returns GFp methods using montgomery multiplication. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_mont_method(void); + +/** Returns GFp methods using optimized methods for NIST recommended curves + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nist_method(void); + +# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +/** Returns 64-bit optimized methods for nistp224 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp224_method(void); + +/** Returns 64-bit optimized methods for nistp256 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp256_method(void); + +/** Returns 64-bit optimized methods for nistp521 + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistp521_method(void); +# endif + +# ifndef OPENSSL_NO_EC2M +/********************************************************************/ +/* EC_METHOD for curves over GF(2^m) */ +/********************************************************************/ + +/** Returns the basic GF2m ec method + * \return EC_METHOD object + */ +const EC_METHOD *EC_GF2m_simple_method(void); + +# endif + +/********************************************************************/ +/* EC_GROUP functions */ +/********************************************************************/ + +/** Creates a new EC_GROUP object + * \param meth EC_METHOD to use + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); + +/** Frees a EC_GROUP object + * \param group EC_GROUP object to be freed. + */ +void EC_GROUP_free(EC_GROUP *group); + +/** Clears and frees a EC_GROUP object + * \param group EC_GROUP object to be cleared and freed. + */ +void EC_GROUP_clear_free(EC_GROUP *group); + +/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. + * \param dst destination EC_GROUP object + * \param src source EC_GROUP object + * \return 1 on success and 0 if an error occurred. + */ +int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); + +/** Creates a new EC_GROUP object and copies the copies the content + * form src to the newly created EC_KEY object + * \param src source EC_GROUP object + * \return newly created EC_GROUP object or NULL in case of an error. + */ +EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); + +/** Returns the EC_METHOD of the EC_GROUP object. + * \param group EC_GROUP object + * \return EC_METHOD used in this EC_GROUP object. + */ +const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); + +/** Returns the field type of the EC_METHOD. + * \param meth EC_METHOD object + * \return NID of the underlying field type OID. + */ +int EC_METHOD_get_field_type(const EC_METHOD *meth); + +/** Sets the generator and its order/cofactor of a EC_GROUP object. + * \param group EC_GROUP object + * \param generator EC_POINT object with the generator. + * \param order the order of the group generated by the generator. + * \param cofactor the index of the sub-group generated by the generator + * in the group of all points on the elliptic curve. + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, + const BIGNUM *order, const BIGNUM *cofactor); + +/** Returns the generator of a EC_GROUP object. + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). + */ +const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); + +/** Returns the montgomery data for order(Generator) + * \param group EC_GROUP object + * \return the currently used montgomery data (possibly NULL). +*/ +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); + +/** Gets the order of a EC_GROUP + * \param group EC_GROUP object + * \param order BIGNUM to which the order is copied + * \param ctx unused + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); + +/** Gets the order of an EC_GROUP + * \param group EC_GROUP object + * \return the group order + */ +const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); + +/** Gets the number of bits of the order of an EC_GROUP + * \param group EC_GROUP object + * \return number of bits of group order. + */ +int EC_GROUP_order_bits(const EC_GROUP *group); + +/** Gets the cofactor of a EC_GROUP + * \param group EC_GROUP object + * \param cofactor BIGNUM to which the cofactor is copied + * \param ctx unused + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, + BN_CTX *ctx); + +/** Gets the cofactor of an EC_GROUP + * \param group EC_GROUP object + * \return the group cofactor + */ +const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); + +/** Sets the name of a EC_GROUP object + * \param group EC_GROUP object + * \param nid NID of the curve name OID + */ +void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); + +/** Returns the curve name of a EC_GROUP object + * \param group EC_GROUP object + * \return NID of the curve name OID or 0 if not set. + */ +int EC_GROUP_get_curve_name(const EC_GROUP *group); + +void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); +int EC_GROUP_get_asn1_flag(const EC_GROUP *group); + +void EC_GROUP_set_point_conversion_form(EC_GROUP *group, + point_conversion_form_t form); +point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); + +unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); +size_t EC_GROUP_get_seed_len(const EC_GROUP *); +size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); + +/** Sets the parameters of a ec curve defined by y^2 = x^3 + a*x + b (for GFp) + * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); + +/** Gets the parameters of the ec curve defined by y^2 = x^3 + a*x + b (for GFp) + * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, + BN_CTX *ctx); + +/** Sets the parameters of an ec curve. Synonym for EC_GROUP_set_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, + const BIGNUM *a, const BIGNUM *b, + BN_CTX *ctx)) + +/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, + BIGNUM *a, BIGNUM *b, + BN_CTX *ctx)) + +# ifndef OPENSSL_NO_EC2M +/** Sets the parameter of an ec curve. Synonym for EC_GROUP_set_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM with parameter a of the equation + * \param b BIGNUM with parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, + const BIGNUM *a, const BIGNUM *b, + BN_CTX *ctx)) + +/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve + * \param group EC_GROUP object + * \param p BIGNUM with the prime number (GFp) or the polynomial + * defining the underlying field (GF2m) + * \param a BIGNUM for parameter a of the equation + * \param b BIGNUM for parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, + BIGNUM *a, BIGNUM *b, + BN_CTX *ctx)) +# endif +/** Returns the number of bits needed to represent a field element + * \param group EC_GROUP object + * \return number of bits needed to represent a field element + */ +int EC_GROUP_get_degree(const EC_GROUP *group); + +/** Checks whether the parameter in the EC_GROUP define a valid ec group + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if group is a valid ec group and 0 otherwise + */ +int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); + +/** Checks whether the discriminant of the elliptic curve is zero or not + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 if the discriminant is not zero and 0 otherwise + */ +int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); + +/** Compares two EC_GROUP objects + * \param a first EC_GROUP object + * \param b second EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 0 if the groups are equal, 1 if not, or -1 on error + */ +int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); + +/* + * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after + * choosing an appropriate EC_METHOD + */ + +/** Creates a new EC_GROUP object with the specified parameters defined + * over GFp (defined by the equation y^2 = x^3 + a*x + b) + * \param p BIGNUM with the prime number + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# ifndef OPENSSL_NO_EC2M +/** Creates a new EC_GROUP object with the specified parameters defined + * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) + * \param p BIGNUM with the polynomial defining the underlying field + * \param a BIGNUM with the parameter a of the equation + * \param b BIGNUM with the parameter b of the equation + * \param ctx BN_CTX object (optional) + * \return newly created EC_GROUP object with the specified parameters + */ +EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +# endif + +/** Creates a EC_GROUP object with a curve specified by a NID + * \param nid NID of the OID of the curve name + * \return newly created EC_GROUP object with specified curve or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_by_curve_name(int nid); + +/** Creates a new EC_GROUP object from an ECPARAMETERS object + * \param params pointer to the ECPARAMETERS object + * \return newly created EC_GROUP object with specified curve or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); + +/** Creates an ECPARAMETERS object for the given EC_GROUP object. + * \param group pointer to the EC_GROUP object + * \param params pointer to an existing ECPARAMETERS object or NULL + * \return pointer to the new ECPARAMETERS object or NULL + * if an error occurred. + */ +ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, + ECPARAMETERS *params); + +/** Creates a new EC_GROUP object from an ECPKPARAMETERS object + * \param params pointer to an existing ECPKPARAMETERS object, or NULL + * \return newly created EC_GROUP object with specified curve, or NULL + * if an error occurred + */ +EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); + +/** Creates an ECPKPARAMETERS object for the given EC_GROUP object. + * \param group pointer to the EC_GROUP object + * \param params pointer to an existing ECPKPARAMETERS object or NULL + * \return pointer to the new ECPKPARAMETERS object or NULL + * if an error occurred. + */ +ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, + ECPKPARAMETERS *params); + +/********************************************************************/ +/* handling of internal curves */ +/********************************************************************/ + +typedef struct { + int nid; + const char *comment; +} EC_builtin_curve; + +/* + * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all + * available curves or zero if a error occurred. In case r is not zero, + * nitems EC_builtin_curve structures are filled with the data of the first + * nitems internal groups + */ +size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); + +const char *EC_curve_nid2nist(int nid); +int EC_curve_nist2nid(const char *name); + +/********************************************************************/ +/* EC_POINT functions */ +/********************************************************************/ + +/** Creates a new EC_POINT object for the specified EC_GROUP + * \param group EC_GROUP the underlying EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_new(const EC_GROUP *group); + +/** Frees a EC_POINT object + * \param point EC_POINT object to be freed + */ +void EC_POINT_free(EC_POINT *point); + +/** Clears and frees a EC_POINT object + * \param point EC_POINT object to be cleared and freed + */ +void EC_POINT_clear_free(EC_POINT *point); + +/** Copies EC_POINT object + * \param dst destination EC_POINT object + * \param src source EC_POINT object + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); + +/** Creates a new EC_POINT object and copies the content of the supplied + * EC_POINT + * \param src source EC_POINT object + * \param group underlying the EC_GROUP object + * \return newly created EC_POINT object or NULL if an error occurred + */ +EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); + +/** Returns the EC_METHOD used in EC_POINT object + * \param point EC_POINT object + * \return the EC_METHOD used + */ +const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); + +/** Sets a point to infinity (neutral element) + * \param group underlying EC_GROUP object + * \param point EC_POINT to set to infinity + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); + +/** Sets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param z BIGNUM with the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + const BIGNUM *y, const BIGNUM *z, + BN_CTX *ctx); + +/** Gets the jacobian projective coordinates of a EC_POINT over GFp + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param z BIGNUM for the z-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BIGNUM *z, + BN_CTX *ctx); + +/** Sets the affine coordinates of an EC_POINT + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); + +/** Gets the affine coordinates of an EC_POINT. + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, + BIGNUM *x, BIGNUM *y, BN_CTX *ctx); + +/** Sets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_set_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + const BIGNUM *y, + BN_CTX *ctx)) + +/** Gets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_get_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, + BIGNUM *x, + BIGNUM *y, + BN_CTX *ctx)) + +/** Sets the x9.62 compressed coordinates of a EC_POINT + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, int y_bit, + BN_CTX *ctx); + +/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of + * EC_POINT_set_compressed_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + int y_bit, + BN_CTX *ctx)) +# ifndef OPENSSL_NO_EC2M +/** Sets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_set_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with the x-coordinate + * \param y BIGNUM with the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + const BIGNUM *y, + BN_CTX *ctx)) + +/** Gets the affine coordinates of an EC_POINT. A synonym of + * EC_POINT_get_affine_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM for the x-coordinate + * \param y BIGNUM for the y-coordinate + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, + const EC_POINT *p, + BIGNUM *x, + BIGNUM *y, + BN_CTX *ctx)) + +/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of + * EC_POINT_set_compressed_coordinates + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param x BIGNUM with x-coordinate + * \param y_bit integer with the y-Bit (either 0 or 1) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, + EC_POINT *p, + const BIGNUM *x, + int y_bit, + BN_CTX *ctx)) +# endif +/** Encodes a EC_POINT object to a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param form point conversion form + * \param buf memory buffer for the result. If NULL the function returns + * required buffer size. + * \param len length of the memory buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, + point_conversion_form_t form, + unsigned char *buf, size_t len, BN_CTX *ctx); + +/** Decodes a EC_POINT from a octet string + * \param group underlying EC_GROUP object + * \param p EC_POINT object + * \param buf memory buffer with the encoded ec point + * \param len length of the encoded ec point + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, + const unsigned char *buf, size_t len, BN_CTX *ctx); + +/** Encodes an EC_POINT object to an allocated octet string + * \param group underlying EC_GROUP object + * \param point EC_POINT object + * \param form point conversion form + * \param pbuf returns pointer to allocated buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, + point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); + +/* other interfaces to point2oct/oct2point: */ +BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BIGNUM *, BN_CTX *); +EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, + EC_POINT *, BN_CTX *); +char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BN_CTX *); +EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, + EC_POINT *, BN_CTX *); + +/********************************************************************/ +/* functions for doing EC_POINT arithmetic */ +/********************************************************************/ + +/** Computes the sum of two EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = a + b) + * \param a EC_POINT object with the first summand + * \param b EC_POINT object with the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + const EC_POINT *b, BN_CTX *ctx); + +/** Computes the double of a EC_POINT + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result (r = 2 * a) + * \param a EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + BN_CTX *ctx); + +/** Computes the inverse of a EC_POINT + * \param group underlying EC_GROUP object + * \param a EC_POINT object to be inverted (it's used for the result as well) + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); + +/** Checks whether the point is the neutral element of the group + * \param group the underlying EC_GROUP object + * \param p EC_POINT object + * \return 1 if the point is the neutral element and 0 otherwise + */ +int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); + +/** Checks whether the point is on the curve + * \param group underlying EC_GROUP object + * \param point EC_POINT object to check + * \param ctx BN_CTX object (optional) + * \return 1 if the point is on the curve, 0 if not, or -1 on error + */ +int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, + BN_CTX *ctx); + +/** Compares two EC_POINTs + * \param group underlying EC_GROUP object + * \param a first EC_POINT object + * \param b second EC_POINT object + * \param ctx BN_CTX object (optional) + * \return 1 if the points are not equal, 0 if they are, or -1 on error + */ +int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, + BN_CTX *ctx); + +int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); +int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, + EC_POINT *points[], BN_CTX *ctx); + +/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param num number further summands + * \param p array of size num of EC_POINT objects + * \param m array of size num of BIGNUM objects + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + size_t num, const EC_POINT *p[], const BIGNUM *m[], + BN_CTX *ctx); + +/** Computes r = generator * n + q * m + * \param group underlying EC_GROUP object + * \param r EC_POINT object for the result + * \param n BIGNUM with the multiplier for the group generator (optional) + * \param q EC_POINT object with the first factor of the second summand + * \param m BIGNUM with the second factor of the second summand + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); + +/** Stores multiples of generator for faster point multiplication + * \param group EC_GROUP object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ +int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); + +/** Reports whether a precomputation has been done + * \param group EC_GROUP object + * \return 1 if a pre-computation has been done and 0 otherwise + */ +int EC_GROUP_have_precompute_mult(const EC_GROUP *group); + +/********************************************************************/ +/* ASN1 stuff */ +/********************************************************************/ + +DECLARE_ASN1_ITEM(ECPKPARAMETERS) +DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) +DECLARE_ASN1_ITEM(ECPARAMETERS) +DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) + +/* + * EC_GROUP_get_basis_type() returns the NID of the basis type used to + * represent the field elements + */ +int EC_GROUP_get_basis_type(const EC_GROUP *); +# ifndef OPENSSL_NO_EC2M +int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); +int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, + unsigned int *k2, unsigned int *k3); +# endif + +# define OPENSSL_EC_EXPLICIT_CURVE 0x000 +# define OPENSSL_EC_NAMED_CURVE 0x001 + +EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); +int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); + +# define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) +# define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) +# define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ + (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) +# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ + (unsigned char *)(x)) + +int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); +# ifndef OPENSSL_NO_STDIO +int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); +# endif + +/********************************************************************/ +/* EC_KEY functions */ +/********************************************************************/ + +/* some values for the encoding_flag */ +# define EC_PKEY_NO_PARAMETERS 0x001 +# define EC_PKEY_NO_PUBKEY 0x002 + +/* some values for the flags field */ +# define EC_FLAG_NON_FIPS_ALLOW 0x1 +# define EC_FLAG_FIPS_CHECKED 0x2 +# define EC_FLAG_COFACTOR_ECDH 0x1000 + +/** Creates a new EC_KEY object. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new(void); + +int EC_KEY_get_flags(const EC_KEY *key); + +void EC_KEY_set_flags(EC_KEY *key, int flags); + +void EC_KEY_clear_flags(EC_KEY *key, int flags); + +/** Creates a new EC_KEY object using a named curve as underlying + * EC_GROUP object. + * \param nid NID of the named curve. + * \return EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_new_by_curve_name(int nid); + +/** Frees a EC_KEY object. + * \param key EC_KEY object to be freed. + */ +void EC_KEY_free(EC_KEY *key); + +/** Copies a EC_KEY object. + * \param dst destination EC_KEY object + * \param src src EC_KEY object + * \return dst or NULL if an error occurred. + */ +EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); + +/** Creates a new EC_KEY object and copies the content from src to it. + * \param src the source EC_KEY object + * \return newly created EC_KEY object or NULL if an error occurred. + */ +EC_KEY *EC_KEY_dup(const EC_KEY *src); + +/** Increases the internal reference count of a EC_KEY object. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_up_ref(EC_KEY *key); + +/** Returns the ENGINE object of a EC_KEY object + * \param eckey EC_KEY object + * \return the ENGINE object (possibly NULL). + */ +ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); + +/** Returns the EC_GROUP object of a EC_KEY object + * \param key EC_KEY object + * \return the EC_GROUP object (possibly NULL). + */ +const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); + +/** Sets the EC_GROUP of a EC_KEY object. + * \param key EC_KEY object + * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY + * object will use an own copy of the EC_GROUP). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); + +/** Returns the private key of a EC_KEY object. + * \param key EC_KEY object + * \return a BIGNUM with the private key (possibly NULL). + */ +const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); + +/** Sets the private key of a EC_KEY object. + * \param key EC_KEY object + * \param prv BIGNUM with the private key (note: the EC_KEY object + * will use an own copy of the BIGNUM). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); + +/** Returns the public key of a EC_KEY object. + * \param key the EC_KEY object + * \return a EC_POINT object with the public key (possibly NULL) + */ +const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); + +/** Sets the public key of a EC_KEY object. + * \param key EC_KEY object + * \param pub EC_POINT object with the public key (note: the EC_KEY object + * will use an own copy of the EC_POINT object). + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); + +unsigned EC_KEY_get_enc_flags(const EC_KEY *key); +void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); +point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); +void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); + +#define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) +int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); +void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); + +/* wrapper functions for the underlying EC_GROUP object */ +void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); + +/** Creates a table of pre-computed multiples of the generator to + * accelerate further EC_KEY operations. + * \param key EC_KEY object + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); + +/** Creates a new ec private (and optional a new public) key. + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred. + */ +int EC_KEY_generate_key(EC_KEY *key); + +/** Verifies that a private and/or public key is valid. + * \param key the EC_KEY object + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_check_key(const EC_KEY *key); + +/** Indicates if an EC_KEY can be used for signing. + * \param eckey the EC_KEY object + * \return 1 if can can sign and 0 otherwise. + */ +int EC_KEY_can_sign(const EC_KEY *eckey); + +/** Sets a public key from affine coordinates performing + * necessary NIST PKV tests. + * \param key the EC_KEY object + * \param x public key x coordinate + * \param y public key y coordinate + * \return 1 on success and 0 otherwise. + */ +int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, + BIGNUM *y); + +/** Encodes an EC_KEY public key to an allocated octet string + * \param key key to encode + * \param form point conversion form + * \param pbuf returns pointer to allocated buffer + * \param ctx BN_CTX object (optional) + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); + +/** Decodes a EC_KEY public key from a octet string + * \param key key to decode + * \param buf memory buffer with the encoded ec point + * \param len length of the encoded ec point + * \param ctx BN_CTX object (optional) + * \return 1 on success and 0 if an error occurred + */ + +int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, + BN_CTX *ctx); + +/** Decodes an EC_KEY private key from an octet string + * \param key key to decode + * \param buf memory buffer with the encoded private key + * \param len length of the encoded key + * \return 1 on success and 0 if an error occurred + */ + +int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); + +/** Encodes a EC_KEY private key to an octet string + * \param key key to encode + * \param buf memory buffer for the result. If NULL the function returns + * required buffer size. + * \param len length of the memory buffer + * \return the length of the encoded octet string or 0 if an error occurred + */ + +size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); + +/** Encodes an EC_KEY private key to an allocated octet string + * \param eckey key to encode + * \param pbuf returns pointer to allocated buffer + * \return the length of the encoded octet string or 0 if an error occurred + */ +size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); + +/********************************************************************/ +/* de- and encoding functions for SEC1 ECPrivateKey */ +/********************************************************************/ + +/** Decodes a private key from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded private key + * \param len length of the DER encoded private key + * \return the decoded private key or NULL if an error occurred. + */ +EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a private key object and stores the result in a buffer. + * \param key the EC_KEY object to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC parameters */ +/********************************************************************/ + +/** Decodes ec parameter from a memory buffer. + * \param key a pointer to a EC_KEY object which should be used (or NULL) + * \param in pointer to memory with the DER encoded ec parameters + * \param len length of the DER encoded ec parameters + * \return a EC_KEY object with the decoded parameters or NULL if an error + * occurred. + */ +EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes ec parameter and stores the result in a buffer. + * \param key the EC_KEY object with ec parameters to encode + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred. + */ +int i2d_ECParameters(EC_KEY *key, unsigned char **out); + +/********************************************************************/ +/* de- and encoding functions for EC public key */ +/* (octet string, not DER -- hence 'o2i' and 'i2o') */ +/********************************************************************/ + +/** Decodes a ec public key from a octet string. + * \param key a pointer to a EC_KEY object which should be used + * \param in memory buffer with the encoded public key + * \param len length of the encoded public key + * \return EC_KEY object with decoded public key or NULL if an error + * occurred. + */ +EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); + +/** Encodes a ec public key in an octet string. + * \param key the EC_KEY object with the public key + * \param out the buffer for the result (if NULL the function returns number + * of bytes needed). + * \return 1 on success and 0 if an error occurred + */ +int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); + +/** Prints out the ec parameters on human readable form. + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print(BIO *bp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param bp BIO object to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); + +# ifndef OPENSSL_NO_STDIO +/** Prints out the ec parameters on human readable form. + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \return 1 on success and 0 if an error occurred + */ +int ECParameters_print_fp(FILE *fp, const EC_KEY *key); + +/** Prints out the contents of a EC_KEY object + * \param fp file descriptor to which the information is printed + * \param key EC_KEY object + * \param off line offset + * \return 1 on success and 0 if an error occurred + */ +int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); + +# endif + +const EC_KEY_METHOD *EC_KEY_OpenSSL(void); +const EC_KEY_METHOD *EC_KEY_get_default_method(void); +void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); +const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); +int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); +EC_KEY *EC_KEY_new_method(ENGINE *engine); + +/** The old name for ecdh_KDF_X9_63 + * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, + * it is actually specified in ANSI X9.63. + * This identifier is retained for backwards compatibility + */ +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + const EC_KEY *ecdh, + void *(*KDF) (const void *in, size_t inlen, + void *out, size_t *outlen)); + +typedef struct ECDSA_SIG_st ECDSA_SIG; + +/** Allocates and initialize a ECDSA_SIG structure + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_SIG_new(void); + +/** frees a ECDSA_SIG structure + * \param sig pointer to the ECDSA_SIG structure + */ +void ECDSA_SIG_free(ECDSA_SIG *sig); + +/** DER encode content of ECDSA_SIG object (note: this function modifies *pp + * (*pp += length of the DER encoded signature)). + * \param sig pointer to the ECDSA_SIG object + * \param pp pointer to a unsigned char pointer for the output or NULL + * \return the length of the DER encoded ECDSA_SIG object or a negative value + * on error + */ +int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); + +/** Decodes a DER encoded ECDSA signature (note: this function changes *pp + * (*pp += len)). + * \param sig pointer to ECDSA_SIG pointer (may be NULL) + * \param pp memory buffer with the DER encoded signature + * \param len length of the buffer + * \return pointer to the decoded ECDSA_SIG structure (or NULL) + */ +ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); + +/** Accessor for r and s fields of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + * \param pr pointer to BIGNUM pointer for r (may be NULL) + * \param ps pointer to BIGNUM pointer for s (may be NULL) + */ +void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); + +/** Accessor for r field of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + */ +const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); + +/** Accessor for s field of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + */ +const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); + +/** Setter for r and s fields of ECDSA_SIG + * \param sig pointer to ECDSA_SIG structure + * \param r pointer to BIGNUM for r (may be NULL) + * \param s pointer to BIGNUM for s (may be NULL) + */ +int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); + +/** Computes the ECDSA signature of the given hash value using + * the supplied private key and returns the created signature. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, + EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optional), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return pointer to a ECDSA_SIG structure or NULL if an error occurred + */ +ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, + const BIGNUM *kinv, const BIGNUM *rp, + EC_KEY *eckey); + +/** Verifies that the supplied signature is a valid ECDSA + * signature of the supplied hash value using the supplied public key. + * \param dgst pointer to the hash value + * \param dgst_len length of the hash value + * \param sig ECDSA_SIG structure + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); + +/** Precompute parts of the signing operation + * \param eckey EC_KEY object containing a private EC key + * \param ctx BN_CTX object (optional) + * \param kinv BIGNUM pointer for the inverse of k + * \param rp BIGNUM pointer for x coordinate of k * generator + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig memory for the DER encoded created signature + * \param siglen pointer to the length of the returned signature + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); + +/** Computes ECDSA signature of a given hash value using the supplied + * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). + * \param type this parameter is ignored + * \param dgst pointer to the hash value to sign + * \param dgstlen length of the hash value + * \param sig buffer to hold the DER encoded signature + * \param siglen pointer to the length of the returned signature + * \param kinv BIGNUM with a pre-computed inverse k (optional) + * \param rp BIGNUM with a pre-computed rp value (optional), + * see ECDSA_sign_setup + * \param eckey EC_KEY object containing a private EC key + * \return 1 on success and 0 otherwise + */ +int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); + +/** Verifies that the given signature is valid ECDSA signature + * of the supplied hash value using the specified public key. + * \param type this parameter is ignored + * \param dgst pointer to the hash value + * \param dgstlen length of the hash value + * \param sig pointer to the DER encoded signature + * \param siglen length of the DER encoded signature + * \param eckey EC_KEY object containing a public EC key + * \return 1 if the signature is valid, 0 if the signature is invalid + * and -1 on error + */ +int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int siglen, EC_KEY *eckey); + +/** Returns the maximum length of the DER encoded signature + * \param eckey EC_KEY object + * \return numbers of bytes required for the DER encoded signature + */ +int ECDSA_size(const EC_KEY *eckey); + +/********************************************************************/ +/* EC_KEY_METHOD constructors, destructors, writers and accessors */ +/********************************************************************/ + +EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); +void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); +void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, + int (*init)(EC_KEY *key), + void (*finish)(EC_KEY *key), + int (*copy)(EC_KEY *dest, const EC_KEY *src), + int (*set_group)(EC_KEY *key, const EC_GROUP *grp), + int (*set_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (*set_public)(EC_KEY *key, + const EC_POINT *pub_key)); + +void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, + int (*keygen)(EC_KEY *key)); + +void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, + int (*ckey)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); + +void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, + int (*sign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); + +void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, + int (*verify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (*verify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, + int (**pinit)(EC_KEY *key), + void (**pfinish)(EC_KEY *key), + int (**pcopy)(EC_KEY *dest, const EC_KEY *src), + int (**pset_group)(EC_KEY *key, + const EC_GROUP *grp), + int (**pset_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (**pset_public)(EC_KEY *key, + const EC_POINT *pub_key)); + +void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, + int (**pkeygen)(EC_KEY *key)); + +void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, + int (**pck)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); + +void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, + int (**psign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); + +void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, + int (**pverify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (**pverify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) + +# ifndef __cplusplus +# if defined(__SUNPRO_C) +# if __SUNPRO_C >= 0x520 +# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) +# endif +# endif +# endif + +# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) + +# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) + +# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) + +# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)(pmd)) + +# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, \ + (void *)(plen)) + +# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)(p)) + +# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)(p)) + +/* SM2 will skip the operation check so no need to pass operation here */ +# define EVP_PKEY_CTX_set1_id(ctx, id, id_len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_SET1_ID, (int)id_len, (void*)(id)) + +# define EVP_PKEY_CTX_get1_id(ctx, id) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_GET1_ID, 0, (void*)(id)) + +# define EVP_PKEY_CTX_get1_id_len(ctx, id_len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ + EVP_PKEY_CTRL_GET1_ID_LEN, 0, (void*)(id_len)) + +# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_SET1_ID (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET1_ID (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_GET1_ID_LEN (EVP_PKEY_ALG_CTRL + 13) +/* KDF types */ +# define EVP_PKEY_ECDH_KDF_NONE 1 +# define EVP_PKEY_ECDH_KDF_X9_63 2 +/** The old name for EVP_PKEY_ECDH_KDF_X9_63 + * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, + * it is actually specified in ANSI X9.63. + * This identifier is retained for backwards compatibility + */ +# define EVP_PKEY_ECDH_KDF_X9_62 EVP_PKEY_ECDH_KDF_X9_63 + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/ecdh.h b/thrid-party/openssl/openssl/ecdh.h new file mode 100644 index 000000000..681f3d5e5 --- /dev/null +++ b/thrid-party/openssl/openssl/ecdh.h @@ -0,0 +1,10 @@ +/* + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include diff --git a/thrid-party/openssl/openssl/ecdsa.h b/thrid-party/openssl/openssl/ecdsa.h new file mode 100644 index 000000000..681f3d5e5 --- /dev/null +++ b/thrid-party/openssl/openssl/ecdsa.h @@ -0,0 +1,10 @@ +/* + * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include diff --git a/thrid-party/openssl/openssl/ecerr.h b/thrid-party/openssl/openssl/ecerr.h new file mode 100644 index 000000000..f7b918345 --- /dev/null +++ b/thrid-party/openssl/openssl/ecerr.h @@ -0,0 +1,275 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ECERR_H +# define HEADER_ECERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_EC + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_EC_strings(void); + +/* + * EC function codes. + */ +# define EC_F_BN_TO_FELEM 224 +# define EC_F_D2I_ECPARAMETERS 144 +# define EC_F_D2I_ECPKPARAMETERS 145 +# define EC_F_D2I_ECPRIVATEKEY 146 +# define EC_F_DO_EC_KEY_PRINT 221 +# define EC_F_ECDH_CMS_DECRYPT 238 +# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 +# define EC_F_ECDH_COMPUTE_KEY 246 +# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 +# define EC_F_ECDSA_DO_SIGN_EX 251 +# define EC_F_ECDSA_DO_VERIFY 252 +# define EC_F_ECDSA_SIGN_EX 254 +# define EC_F_ECDSA_SIGN_SETUP 248 +# define EC_F_ECDSA_SIG_NEW 265 +# define EC_F_ECDSA_VERIFY 253 +# define EC_F_ECD_ITEM_VERIFY 270 +# define EC_F_ECKEY_PARAM2TYPE 223 +# define EC_F_ECKEY_PARAM_DECODE 212 +# define EC_F_ECKEY_PRIV_DECODE 213 +# define EC_F_ECKEY_PRIV_ENCODE 214 +# define EC_F_ECKEY_PUB_DECODE 215 +# define EC_F_ECKEY_PUB_ENCODE 216 +# define EC_F_ECKEY_TYPE2PARAM 220 +# define EC_F_ECPARAMETERS_PRINT 147 +# define EC_F_ECPARAMETERS_PRINT_FP 148 +# define EC_F_ECPKPARAMETERS_PRINT 149 +# define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_INV_MOD_ORD 275 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 +# define EC_F_ECX_KEY_OP 266 +# define EC_F_ECX_PRIV_ENCODE 267 +# define EC_F_ECX_PUB_ENCODE 268 +# define EC_F_EC_ASN1_GROUP2CURVE 153 +# define EC_F_EC_ASN1_GROUP2FIELDID 154 +# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 +# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 296 +# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 +# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 +# define EC_F_EC_GF2M_SIMPLE_LADDER_POST 285 +# define EC_F_EC_GF2M_SIMPLE_LADDER_PRE 288 +# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 +# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 +# define EC_F_EC_GF2M_SIMPLE_POINTS_MUL 289 +# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 +# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 +# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 +# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 +# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 +# define EC_F_EC_GFP_MONT_FIELD_INV 297 +# define EC_F_EC_GFP_MONT_FIELD_MUL 131 +# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 +# define EC_F_EC_GFP_MONT_FIELD_SQR 132 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 +# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 +# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 +# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 +# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 +# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 +# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 +# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 +# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 +# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 +# define EC_F_EC_GFP_NIST_FIELD_MUL 200 +# define EC_F_EC_GFP_NIST_FIELD_SQR 201 +# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 +# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 287 +# define EC_F_EC_GFP_SIMPLE_FIELD_INV 298 +# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 +# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 +# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 +# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 +# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 +# define EC_F_EC_GROUP_CHECK 170 +# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 +# define EC_F_EC_GROUP_COPY 106 +# define EC_F_EC_GROUP_GET_CURVE 291 +# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 +# define EC_F_EC_GROUP_GET_CURVE_GFP 130 +# define EC_F_EC_GROUP_GET_DEGREE 173 +# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 +# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 +# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 +# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 +# define EC_F_EC_GROUP_NEW 108 +# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 +# define EC_F_EC_GROUP_NEW_FROM_DATA 175 +# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 +# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 +# define EC_F_EC_GROUP_SET_CURVE 292 +# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 +# define EC_F_EC_GROUP_SET_CURVE_GFP 109 +# define EC_F_EC_GROUP_SET_GENERATOR 111 +# define EC_F_EC_GROUP_SET_SEED 286 +# define EC_F_EC_KEY_CHECK_KEY 177 +# define EC_F_EC_KEY_COPY 178 +# define EC_F_EC_KEY_GENERATE_KEY 179 +# define EC_F_EC_KEY_NEW 182 +# define EC_F_EC_KEY_NEW_METHOD 245 +# define EC_F_EC_KEY_OCT2PRIV 255 +# define EC_F_EC_KEY_PRINT 180 +# define EC_F_EC_KEY_PRINT_FP 181 +# define EC_F_EC_KEY_PRIV2BUF 279 +# define EC_F_EC_KEY_PRIV2OCT 256 +# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 +# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 +# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 +# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 +# define EC_F_EC_PKEY_CHECK 273 +# define EC_F_EC_PKEY_PARAM_CHECK 274 +# define EC_F_EC_POINTS_MAKE_AFFINE 136 +# define EC_F_EC_POINTS_MUL 290 +# define EC_F_EC_POINT_ADD 112 +# define EC_F_EC_POINT_BN2POINT 280 +# define EC_F_EC_POINT_CMP 113 +# define EC_F_EC_POINT_COPY 114 +# define EC_F_EC_POINT_DBL 115 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES 293 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 +# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 +# define EC_F_EC_POINT_INVERT 210 +# define EC_F_EC_POINT_IS_AT_INFINITY 118 +# define EC_F_EC_POINT_IS_ON_CURVE 119 +# define EC_F_EC_POINT_MAKE_AFFINE 120 +# define EC_F_EC_POINT_NEW 121 +# define EC_F_EC_POINT_OCT2POINT 122 +# define EC_F_EC_POINT_POINT2BUF 281 +# define EC_F_EC_POINT_POINT2OCT 123 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES 294 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES 295 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 +# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 +# define EC_F_EC_POINT_SET_TO_INFINITY 127 +# define EC_F_EC_PRE_COMP_NEW 196 +# define EC_F_EC_SCALAR_MUL_LADDER 284 +# define EC_F_EC_WNAF_MUL 187 +# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 +# define EC_F_I2D_ECPARAMETERS 190 +# define EC_F_I2D_ECPKPARAMETERS 191 +# define EC_F_I2D_ECPRIVATEKEY 192 +# define EC_F_I2O_ECPUBLICKEY 151 +# define EC_F_NISTP224_PRE_COMP_NEW 227 +# define EC_F_NISTP256_PRE_COMP_NEW 236 +# define EC_F_NISTP521_PRE_COMP_NEW 237 +# define EC_F_O2I_ECPUBLICKEY 152 +# define EC_F_OLD_EC_PRIV_DECODE 222 +# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 +# define EC_F_OSSL_ECDSA_SIGN_SIG 249 +# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 +# define EC_F_PKEY_ECD_CTRL 271 +# define EC_F_PKEY_ECD_DIGESTSIGN 272 +# define EC_F_PKEY_ECD_DIGESTSIGN25519 276 +# define EC_F_PKEY_ECD_DIGESTSIGN448 277 +# define EC_F_PKEY_ECX_DERIVE 269 +# define EC_F_PKEY_EC_CTRL 197 +# define EC_F_PKEY_EC_CTRL_STR 198 +# define EC_F_PKEY_EC_DERIVE 217 +# define EC_F_PKEY_EC_INIT 282 +# define EC_F_PKEY_EC_KDF_DERIVE 283 +# define EC_F_PKEY_EC_KEYGEN 199 +# define EC_F_PKEY_EC_PARAMGEN 219 +# define EC_F_PKEY_EC_SIGN 218 +# define EC_F_VALIDATE_ECX_DERIVE 278 + +/* + * EC reason codes. + */ +# define EC_R_ASN1_ERROR 115 +# define EC_R_BAD_SIGNATURE 156 +# define EC_R_BIGNUM_OUT_OF_RANGE 144 +# define EC_R_BUFFER_TOO_SMALL 100 +# define EC_R_CANNOT_INVERT 165 +# define EC_R_COORDINATES_OUT_OF_RANGE 146 +# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 +# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 +# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 +# define EC_R_DECODE_ERROR 142 +# define EC_R_DISCRIMINANT_IS_ZERO 118 +# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 +# define EC_R_FIELD_TOO_LARGE 143 +# define EC_R_GF2M_NOT_SUPPORTED 147 +# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 +# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 +# define EC_R_INCOMPATIBLE_OBJECTS 101 +# define EC_R_INVALID_ARGUMENT 112 +# define EC_R_INVALID_COMPRESSED_POINT 110 +# define EC_R_INVALID_COMPRESSION_BIT 109 +# define EC_R_INVALID_CURVE 141 +# define EC_R_INVALID_DIGEST 151 +# define EC_R_INVALID_DIGEST_TYPE 138 +# define EC_R_INVALID_ENCODING 102 +# define EC_R_INVALID_FIELD 103 +# define EC_R_INVALID_FORM 104 +# define EC_R_INVALID_GROUP_ORDER 122 +# define EC_R_INVALID_KEY 116 +# define EC_R_INVALID_OUTPUT_LENGTH 161 +# define EC_R_INVALID_PEER_KEY 133 +# define EC_R_INVALID_PENTANOMIAL_BASIS 132 +# define EC_R_INVALID_PRIVATE_KEY 123 +# define EC_R_INVALID_TRINOMIAL_BASIS 137 +# define EC_R_KDF_PARAMETER_ERROR 148 +# define EC_R_KEYS_NOT_SET 140 +# define EC_R_LADDER_POST_FAILURE 136 +# define EC_R_LADDER_PRE_FAILURE 153 +# define EC_R_LADDER_STEP_FAILURE 162 +# define EC_R_MISSING_PARAMETERS 124 +# define EC_R_MISSING_PRIVATE_KEY 125 +# define EC_R_NEED_NEW_SETUP_VALUES 157 +# define EC_R_NOT_A_NIST_PRIME 135 +# define EC_R_NOT_IMPLEMENTED 126 +# define EC_R_NOT_INITIALIZED 111 +# define EC_R_NO_PARAMETERS_SET 139 +# define EC_R_NO_PRIVATE_VALUE 154 +# define EC_R_OPERATION_NOT_SUPPORTED 152 +# define EC_R_PASSED_NULL_PARAMETER 134 +# define EC_R_PEER_KEY_ERROR 149 +# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 +# define EC_R_POINT_ARITHMETIC_FAILURE 155 +# define EC_R_POINT_AT_INFINITY 106 +# define EC_R_POINT_COORDINATES_BLIND_FAILURE 163 +# define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 +# define EC_R_SHARED_INFO_ERROR 150 +# define EC_R_SLOT_FULL 108 +# define EC_R_UNDEFINED_GENERATOR 113 +# define EC_R_UNDEFINED_ORDER 128 +# define EC_R_UNKNOWN_COFACTOR 164 +# define EC_R_UNKNOWN_GROUP 129 +# define EC_R_UNKNOWN_ORDER 114 +# define EC_R_UNSUPPORTED_FIELD 131 +# define EC_R_WRONG_CURVE_PARAMETERS 145 +# define EC_R_WRONG_ORDER 130 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/engine.h b/thrid-party/openssl/openssl/engine.h new file mode 100644 index 000000000..0780f0fb5 --- /dev/null +++ b/thrid-party/openssl/openssl/engine.h @@ -0,0 +1,751 @@ +/* + * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ENGINE_H +# define HEADER_ENGINE_H + +# include + +# ifndef OPENSSL_NO_ENGINE +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# include +# include +# include +# include +# include +# include +# include +# endif +# include +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +/* + * These flags are used to control combinations of algorithm (methods) by + * bitwise "OR"ing. + */ +# define ENGINE_METHOD_RSA (unsigned int)0x0001 +# define ENGINE_METHOD_DSA (unsigned int)0x0002 +# define ENGINE_METHOD_DH (unsigned int)0x0004 +# define ENGINE_METHOD_RAND (unsigned int)0x0008 +# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 +# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 +# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 +# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 +# define ENGINE_METHOD_EC (unsigned int)0x0800 +/* Obvious all-or-nothing cases. */ +# define ENGINE_METHOD_ALL (unsigned int)0xFFFF +# define ENGINE_METHOD_NONE (unsigned int)0x0000 + +/* + * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used + * internally to control registration of ENGINE implementations, and can be + * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to + * initialise registered ENGINEs if they are not already initialised. + */ +# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 + +/* ENGINE flags that can be set by ENGINE_set_flags(). */ +/* Not used */ +/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ + +/* + * This flag is for ENGINEs that wish to handle the various 'CMD'-related + * control commands on their own. Without this flag, ENGINE_ctrl() handles + * these control commands on behalf of the ENGINE using their "cmd_defns" + * data. + */ +# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 + +/* + * This flag is for ENGINEs who return new duplicate structures when found + * via "ENGINE_by_id()". When an ENGINE must store state (eg. if + * ENGINE_ctrl() commands are called in sequence as part of some stateful + * process like key-generation setup and execution), it can set this flag - + * then each attempt to obtain the ENGINE will result in it being copied into + * a new structure. Normally, ENGINEs don't declare this flag so + * ENGINE_by_id() just increments the existing ENGINE's structural reference + * count. + */ +# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 + +/* + * This flag if for an ENGINE that does not want its methods registered as + * part of ENGINE_register_all_complete() for example if the methods are not + * usable as default methods. + */ + +# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 + +/* + * ENGINEs can support their own command types, and these flags are used in + * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input + * each command expects. Currently only numeric and string input is + * supported. If a control command supports none of the _NUMERIC, _STRING, or + * _NO_INPUT options, then it is regarded as an "internal" control command - + * and not for use in config setting situations. As such, they're not + * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() + * access. Changes to this list of 'command types' should be reflected + * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). + */ + +/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ +# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 +/* + * accepts string input (cast from 'void*' to 'const char *', 4th parameter + * to ENGINE_ctrl) + */ +# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 +/* + * Indicates that the control command takes *no* input. Ie. the control + * command is unparameterised. + */ +# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 +/* + * Indicates that the control command is internal. This control command won't + * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() + * function. + */ +# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 + +/* + * NB: These 3 control commands are deprecated and should not be used. + * ENGINEs relying on these commands should compile conditional support for + * compatibility (eg. if these symbols are defined) but should also migrate + * the same functionality to their own ENGINE-specific control functions that + * can be "discovered" by calling applications. The fact these control + * commands wouldn't be "executable" (ie. usable by text-based config) + * doesn't change the fact that application code can find and use them + * without requiring per-ENGINE hacking. + */ + +/* + * These flags are used to tell the ctrl function what should be done. All + * command numbers are shared between all engines, even if some don't make + * sense to some engines. In such a case, they do nothing but return the + * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. + */ +# define ENGINE_CTRL_SET_LOGSTREAM 1 +# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 +# define ENGINE_CTRL_HUP 3/* Close and reinitialise + * any handles/connections + * etc. */ +# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ +# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used + * when calling the password + * callback and the user + * interface */ +# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, + * given a string that + * represents a file name + * or so */ +# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given + * section in the already + * loaded configuration */ + +/* + * These control commands allow an application to deal with an arbitrary + * engine in a dynamic way. Warn: Negative return values indicate errors FOR + * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other + * commands, including ENGINE-specific command types, return zero for an + * error. An ENGINE can choose to implement these ctrl functions, and can + * internally manage things however it chooses - it does so by setting the + * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise + * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the + * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's + * ctrl() handler need only implement its own commands - the above "meta" + * commands will be taken care of. + */ + +/* + * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", + * then all the remaining control commands will return failure, so it is + * worth checking this first if the caller is trying to "discover" the + * engine's capabilities and doesn't want errors generated unnecessarily. + */ +# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 +/* + * Returns a positive command number for the first command supported by the + * engine. Returns zero if no ctrl commands are supported. + */ +# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 +/* + * The 'long' argument specifies a command implemented by the engine, and the + * return value is the next command supported, or zero if there are no more. + */ +# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 +/* + * The 'void*' argument is a command name (cast from 'const char *'), and the + * return value is the command that corresponds to it. + */ +# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 +/* + * The next two allow a command to be converted into its corresponding string + * form. In each case, the 'long' argument supplies the command. In the + * NAME_LEN case, the return value is the length of the command name (not + * counting a trailing EOL). In the NAME case, the 'void*' argument must be a + * string buffer large enough, and it will be populated with the name of the + * command (WITH a trailing EOL). + */ +# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 +# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 +/* The next two are similar but give a "short description" of a command. */ +# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 +# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 +/* + * With this command, the return value is the OR'd combination of + * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given + * engine-specific ctrl command expects. + */ +# define ENGINE_CTRL_GET_CMD_FLAGS 18 + +/* + * ENGINE implementations should start the numbering of their own control + * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). + */ +# define ENGINE_CMD_BASE 200 + +/* + * NB: These 2 nCipher "chil" control commands are deprecated, and their + * functionality is now available through ENGINE-specific control commands + * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 + * commands should be migrated to the more general command handling before + * these are removed. + */ + +/* Flags specific to the nCipher "chil" engine */ +# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 + /* + * Depending on the value of the (long)i argument, this sets or + * unsets the SimpleForkCheck flag in the CHIL API to enable or + * disable checking and workarounds for applications that fork(). + */ +# define ENGINE_CTRL_CHIL_NO_LOCKING 101 + /* + * This prevents the initialisation function from providing mutex + * callbacks to the nCipher library. + */ + +/* + * If an ENGINE supports its own specific control commands and wishes the + * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on + * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN + * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() + * handler that supports the stated commands (ie. the "cmd_num" entries as + * described by the array). NB: The array must be ordered in increasing order + * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element + * has cmd_num set to zero and/or cmd_name set to NULL. + */ +typedef struct ENGINE_CMD_DEFN_st { + unsigned int cmd_num; /* The command number */ + const char *cmd_name; /* The command name itself */ + const char *cmd_desc; /* A short description of the command */ + unsigned int cmd_flags; /* The input the command expects */ +} ENGINE_CMD_DEFN; + +/* Generic function pointer */ +typedef int (*ENGINE_GEN_FUNC_PTR) (void); +/* Generic function pointer taking no arguments */ +typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); +/* Specific control function pointer */ +typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, + void (*f) (void)); +/* Generic load_key function pointer */ +typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, + UI_METHOD *ui_method, + void *callback_data); +typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, + STACK_OF(X509_NAME) *ca_dn, + X509 **pcert, EVP_PKEY **pkey, + STACK_OF(X509) **pother, + UI_METHOD *ui_method, + void *callback_data); +/*- + * These callback types are for an ENGINE's handler for cipher and digest logic. + * These handlers have these prototypes; + * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); + * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); + * Looking at how to implement these handlers in the case of cipher support, if + * the framework wants the EVP_CIPHER for 'nid', it will call; + * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) + * If the framework wants a list of supported 'nid's, it will call; + * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) + */ +/* + * Returns to a pointer to the array of supported cipher 'nid's. If the + * second parameter is non-NULL it is set to the size of the returned array. + */ +typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, + const int **, int); +typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, + int); +typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, + const int **, int); +typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, + const int **, int); +/* + * STRUCTURE functions ... all of these functions deal with pointers to + * ENGINE structures where the pointers have a "structural reference". This + * means that their reference is to allowed access to the structure but it + * does not imply that the structure is functional. To simply increment or + * decrement the structural reference count, use ENGINE_by_id and + * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next + * as it will automatically decrement the structural reference count of the + * "current" ENGINE and increment the structural reference count of the + * ENGINE it returns (unless it is NULL). + */ + +/* Get the first/last "ENGINE" type available. */ +ENGINE *ENGINE_get_first(void); +ENGINE *ENGINE_get_last(void); +/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ +ENGINE *ENGINE_get_next(ENGINE *e); +ENGINE *ENGINE_get_prev(ENGINE *e); +/* Add another "ENGINE" type into the array. */ +int ENGINE_add(ENGINE *e); +/* Remove an existing "ENGINE" type from the array. */ +int ENGINE_remove(ENGINE *e); +/* Retrieve an engine from the list by its unique "id" value. */ +ENGINE *ENGINE_by_id(const char *id); + +#if OPENSSL_API_COMPAT < 0x10100000L +# define ENGINE_load_openssl() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) +# define ENGINE_load_dynamic() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) +# ifndef OPENSSL_NO_STATIC_ENGINE +# define ENGINE_load_padlock() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) +# define ENGINE_load_capi() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) +# define ENGINE_load_afalg() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) +# endif +# define ENGINE_load_cryptodev() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) +# define ENGINE_load_rdrand() \ + OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) +#endif +void ENGINE_load_builtin_engines(void); + +/* + * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation + * "registry" handling. + */ +unsigned int ENGINE_get_table_flags(void); +void ENGINE_set_table_flags(unsigned int flags); + +/*- Manage registration of ENGINEs per "table". For each type, there are 3 + * functions; + * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) + * ENGINE_unregister_***(e) - unregister the implementation from 'e' + * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list + * Cleanup is automatically registered from each table when required. + */ + +int ENGINE_register_RSA(ENGINE *e); +void ENGINE_unregister_RSA(ENGINE *e); +void ENGINE_register_all_RSA(void); + +int ENGINE_register_DSA(ENGINE *e); +void ENGINE_unregister_DSA(ENGINE *e); +void ENGINE_register_all_DSA(void); + +int ENGINE_register_EC(ENGINE *e); +void ENGINE_unregister_EC(ENGINE *e); +void ENGINE_register_all_EC(void); + +int ENGINE_register_DH(ENGINE *e); +void ENGINE_unregister_DH(ENGINE *e); +void ENGINE_register_all_DH(void); + +int ENGINE_register_RAND(ENGINE *e); +void ENGINE_unregister_RAND(ENGINE *e); +void ENGINE_register_all_RAND(void); + +int ENGINE_register_ciphers(ENGINE *e); +void ENGINE_unregister_ciphers(ENGINE *e); +void ENGINE_register_all_ciphers(void); + +int ENGINE_register_digests(ENGINE *e); +void ENGINE_unregister_digests(ENGINE *e); +void ENGINE_register_all_digests(void); + +int ENGINE_register_pkey_meths(ENGINE *e); +void ENGINE_unregister_pkey_meths(ENGINE *e); +void ENGINE_register_all_pkey_meths(void); + +int ENGINE_register_pkey_asn1_meths(ENGINE *e); +void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); +void ENGINE_register_all_pkey_asn1_meths(void); + +/* + * These functions register all support from the above categories. Note, use + * of these functions can result in static linkage of code your application + * may not need. If you only need a subset of functionality, consider using + * more selective initialisation. + */ +int ENGINE_register_complete(ENGINE *e); +int ENGINE_register_all_complete(void); + +/* + * Send parameterised control commands to the engine. The possibilities to + * send down an integer, a pointer to data or a function pointer are + * provided. Any of the parameters may or may not be NULL, depending on the + * command number. In actuality, this function only requires a structural + * (rather than functional) reference to an engine, but many control commands + * may require the engine be functional. The caller should be aware of trying + * commands that require an operational ENGINE, and only use functional + * references in such situations. + */ +int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); + +/* + * This function tests if an ENGINE-specific command is usable as a + * "setting". Eg. in an application's config file that gets processed through + * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to + * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). + */ +int ENGINE_cmd_is_executable(ENGINE *e, int cmd); + +/* + * This function works like ENGINE_ctrl() with the exception of taking a + * command name instead of a command number, and can handle optional + * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation + * on how to use the cmd_name and cmd_optional. + */ +int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, + long i, void *p, void (*f) (void), int cmd_optional); + +/* + * This function passes a command-name and argument to an ENGINE. The + * cmd_name is converted to a command number and the control command is + * called using 'arg' as an argument (unless the ENGINE doesn't support such + * a command, in which case no control command is called). The command is + * checked for input flags, and if necessary the argument will be converted + * to a numeric value. If cmd_optional is non-zero, then if the ENGINE + * doesn't support the given cmd_name the return value will be success + * anyway. This function is intended for applications to use so that users + * (or config files) can supply engine-specific config data to the ENGINE at + * run-time to control behaviour of specific engines. As such, it shouldn't + * be used for calling ENGINE_ctrl() functions that return data, deal with + * binary data, or that are otherwise supposed to be used directly through + * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() + * operation in this function will be lost - the return value is interpreted + * as failure if the return value is zero, success otherwise, and this + * function returns a boolean value as a result. In other words, vendors of + * 'ENGINE'-enabled devices should write ENGINE implementations with + * parameterisations that work in this scheme, so that compliant ENGINE-based + * applications can work consistently with the same configuration for the + * same ENGINE-enabled devices, across applications. + */ +int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, + int cmd_optional); + +/* + * These functions are useful for manufacturing new ENGINE structures. They + * don't address reference counting at all - one uses them to populate an + * ENGINE structure with personalised implementations of things prior to + * using it directly or adding it to the builtin ENGINE list in OpenSSL. + * These are also here so that the ENGINE structure doesn't have to be + * exposed and break binary compatibility! + */ +ENGINE *ENGINE_new(void); +int ENGINE_free(ENGINE *e); +int ENGINE_up_ref(ENGINE *e); +int ENGINE_set_id(ENGINE *e, const char *id); +int ENGINE_set_name(ENGINE *e, const char *name); +int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); +int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); +int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); +int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); +int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); +int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); +int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); +int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); +int ENGINE_set_load_privkey_function(ENGINE *e, + ENGINE_LOAD_KEY_PTR loadpriv_f); +int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); +int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, + ENGINE_SSL_CLIENT_CERT_PTR + loadssl_f); +int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); +int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); +int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); +int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); +int ENGINE_set_flags(ENGINE *e, int flags); +int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); +/* These functions allow control over any per-structure ENGINE data. */ +#define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) +int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); +void *ENGINE_get_ex_data(const ENGINE *e, int idx); + +#if OPENSSL_API_COMPAT < 0x10100000L +/* + * This function previously cleaned up anything that needs it. Auto-deinit will + * now take care of it so it is no longer required to call this function. + */ +# define ENGINE_cleanup() while(0) continue +#endif + +/* + * These return values from within the ENGINE structure. These can be useful + * with functional references as well as structural references - it depends + * which you obtained. Using the result for functional purposes if you only + * obtained a structural reference may be problematic! + */ +const char *ENGINE_get_id(const ENGINE *e); +const char *ENGINE_get_name(const ENGINE *e); +const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); +const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); +const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); +const DH_METHOD *ENGINE_get_DH(const ENGINE *e); +const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); +ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); +ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE + *e); +ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); +ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); +ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); +ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); +const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); +const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); +const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, + const char *str, + int len); +const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, + const char *str, + int len); +const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); +int ENGINE_get_flags(const ENGINE *e); + +/* + * FUNCTIONAL functions. These functions deal with ENGINE structures that + * have (or will) be initialised for use. Broadly speaking, the structural + * functions are useful for iterating the list of available engine types, + * creating new engine types, and other "list" operations. These functions + * actually deal with ENGINEs that are to be used. As such these functions + * can fail (if applicable) when particular engines are unavailable - eg. if + * a hardware accelerator is not attached or not functioning correctly. Each + * ENGINE has 2 reference counts; structural and functional. Every time a + * functional reference is obtained or released, a corresponding structural + * reference is automatically obtained or released too. + */ + +/* + * Initialise a engine type for use (or up its reference count if it's + * already in use). This will fail if the engine is not currently operational + * and cannot initialise. + */ +int ENGINE_init(ENGINE *e); +/* + * Free a functional reference to a engine type. This does not require a + * corresponding call to ENGINE_free as it also releases a structural + * reference. + */ +int ENGINE_finish(ENGINE *e); + +/* + * The following functions handle keys that are stored in some secondary + * location, handled by the engine. The storage may be on a card or + * whatever. + */ +EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, + STACK_OF(X509_NAME) *ca_dn, X509 **pcert, + EVP_PKEY **ppkey, STACK_OF(X509) **pother, + UI_METHOD *ui_method, void *callback_data); + +/* + * This returns a pointer for the current ENGINE structure that is (by + * default) performing any RSA operations. The value returned is an + * incremented reference, so it should be free'd (ENGINE_finish) before it is + * discarded. + */ +ENGINE *ENGINE_get_default_RSA(void); +/* Same for the other "methods" */ +ENGINE *ENGINE_get_default_DSA(void); +ENGINE *ENGINE_get_default_EC(void); +ENGINE *ENGINE_get_default_DH(void); +ENGINE *ENGINE_get_default_RAND(void); +/* + * These functions can be used to get a functional reference to perform + * ciphering or digesting corresponding to "nid". + */ +ENGINE *ENGINE_get_cipher_engine(int nid); +ENGINE *ENGINE_get_digest_engine(int nid); +ENGINE *ENGINE_get_pkey_meth_engine(int nid); +ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); + +/* + * This sets a new default ENGINE structure for performing RSA operations. If + * the result is non-zero (success) then the ENGINE structure will have had + * its reference count up'd so the caller should still free their own + * reference 'e'. + */ +int ENGINE_set_default_RSA(ENGINE *e); +int ENGINE_set_default_string(ENGINE *e, const char *def_list); +/* Same for the other "methods" */ +int ENGINE_set_default_DSA(ENGINE *e); +int ENGINE_set_default_EC(ENGINE *e); +int ENGINE_set_default_DH(ENGINE *e); +int ENGINE_set_default_RAND(ENGINE *e); +int ENGINE_set_default_ciphers(ENGINE *e); +int ENGINE_set_default_digests(ENGINE *e); +int ENGINE_set_default_pkey_meths(ENGINE *e); +int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); + +/* + * The combination "set" - the flags are bitwise "OR"d from the + * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" + * function, this function can result in unnecessary static linkage. If your + * application requires only specific functionality, consider using more + * selective functions. + */ +int ENGINE_set_default(ENGINE *e, unsigned int flags); + +void ENGINE_add_conf_module(void); + +/* Deprecated functions ... */ +/* int ENGINE_clear_defaults(void); */ + +/**************************/ +/* DYNAMIC ENGINE SUPPORT */ +/**************************/ + +/* Binary/behaviour compatibility levels */ +# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 +/* + * Binary versions older than this are too old for us (whether we're a loader + * or a loadee) + */ +# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 + +/* + * When compiling an ENGINE entirely as an external shared library, loadable + * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' + * structure type provides the calling application's (or library's) error + * functionality and memory management function pointers to the loaded + * library. These should be used/set in the loaded library code so that the + * loading application's 'state' will be used/changed in all operations. The + * 'static_state' pointer allows the loaded library to know if it shares the + * same static data as the calling application (or library), and thus whether + * these callbacks need to be set or not. + */ +typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); +typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); +typedef void (*dyn_MEM_free_fn) (void *, const char *, int); +typedef struct st_dynamic_MEM_fns { + dyn_MEM_malloc_fn malloc_fn; + dyn_MEM_realloc_fn realloc_fn; + dyn_MEM_free_fn free_fn; +} dynamic_MEM_fns; +/* + * FIXME: Perhaps the memory and locking code (crypto.h) should declare and + * use these types so we (and any other dependent code) can simplify a bit?? + */ +/* The top-level structure */ +typedef struct st_dynamic_fns { + void *static_state; + dynamic_MEM_fns mem_fns; +} dynamic_fns; + +/* + * The version checking function should be of this prototype. NB: The + * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading + * code. If this function returns zero, it indicates a (potential) version + * incompatibility and the loaded library doesn't believe it can proceed. + * Otherwise, the returned value is the (latest) version supported by the + * loading library. The loader may still decide that the loaded code's + * version is unsatisfactory and could veto the load. The function is + * expected to be implemented with the symbol name "v_check", and a default + * implementation can be fully instantiated with + * IMPLEMENT_DYNAMIC_CHECK_FN(). + */ +typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); +# define IMPLEMENT_DYNAMIC_CHECK_FN() \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ + OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ + if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ + return 0; } + +/* + * This function is passed the ENGINE structure to initialise with its own + * function and command settings. It should not adjust the structural or + * functional reference counts. If this function returns zero, (a) the load + * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto + * the structure, and (c) the shared library will be unloaded. So + * implementations should do their own internal cleanup in failure + * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, + * represents the ENGINE id that the loader is looking for. If this is NULL, + * the shared library can choose to return failure or to initialise a + * 'default' ENGINE. If non-NULL, the shared library must initialise only an + * ENGINE matching the passed 'id'. The function is expected to be + * implemented with the symbol name "bind_engine". A standard implementation + * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter + * 'fn' is a callback function that populates the ENGINE structure and + * returns an int value (zero for failure). 'fn' should have prototype; + * [static] int fn(ENGINE *e, const char *id); + */ +typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, + const dynamic_fns *fns); +# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ + OPENSSL_EXPORT \ + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ + if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ + CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ + fns->mem_fns.realloc_fn, \ + fns->mem_fns.free_fn); \ + skip_cbs: \ + if (!fn(e, id)) return 0; \ + return 1; } + +/* + * If the loading application (or library) and the loaded ENGINE library + * share the same static data (eg. they're both dynamically linked to the + * same libcrypto.so) we need a way to avoid trying to set system callbacks - + * this would fail, and for the same reason that it's unnecessary to try. If + * the loaded ENGINE has (or gets from through the loader) its own copy of + * the libcrypto static data, we will need to set the callbacks. The easiest + * way to detect this is to have a function that returns a pointer to some + * static data and let the loading application and loaded ENGINE compare + * their respective values. + */ +void *ENGINE_get_static_state(void); + +# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) +DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) +# endif + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/engineerr.h b/thrid-party/openssl/openssl/engineerr.h new file mode 100644 index 000000000..05e84bd2a --- /dev/null +++ b/thrid-party/openssl/openssl/engineerr.h @@ -0,0 +1,111 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ENGINEERR_H +# define HEADER_ENGINEERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_ENGINE + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_ENGINE_strings(void); + +/* + * ENGINE function codes. + */ +# define ENGINE_F_DIGEST_UPDATE 198 +# define ENGINE_F_DYNAMIC_CTRL 180 +# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 +# define ENGINE_F_DYNAMIC_LOAD 182 +# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 +# define ENGINE_F_ENGINE_ADD 105 +# define ENGINE_F_ENGINE_BY_ID 106 +# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 +# define ENGINE_F_ENGINE_CTRL 142 +# define ENGINE_F_ENGINE_CTRL_CMD 178 +# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 +# define ENGINE_F_ENGINE_FINISH 107 +# define ENGINE_F_ENGINE_GET_CIPHER 185 +# define ENGINE_F_ENGINE_GET_DIGEST 186 +# define ENGINE_F_ENGINE_GET_FIRST 195 +# define ENGINE_F_ENGINE_GET_LAST 196 +# define ENGINE_F_ENGINE_GET_NEXT 115 +# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 +# define ENGINE_F_ENGINE_GET_PKEY_METH 192 +# define ENGINE_F_ENGINE_GET_PREV 116 +# define ENGINE_F_ENGINE_INIT 119 +# define ENGINE_F_ENGINE_LIST_ADD 120 +# define ENGINE_F_ENGINE_LIST_REMOVE 121 +# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 +# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 +# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 +# define ENGINE_F_ENGINE_NEW 122 +# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 +# define ENGINE_F_ENGINE_REMOVE 123 +# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 +# define ENGINE_F_ENGINE_SET_ID 129 +# define ENGINE_F_ENGINE_SET_NAME 130 +# define ENGINE_F_ENGINE_TABLE_REGISTER 184 +# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 +# define ENGINE_F_ENGINE_UP_REF 190 +# define ENGINE_F_INT_CLEANUP_ITEM 199 +# define ENGINE_F_INT_CTRL_HELPER 172 +# define ENGINE_F_INT_ENGINE_CONFIGURE 188 +# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 +# define ENGINE_F_OSSL_HMAC_INIT 200 + +/* + * ENGINE reason codes. + */ +# define ENGINE_R_ALREADY_LOADED 100 +# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 +# define ENGINE_R_CMD_NOT_EXECUTABLE 134 +# define ENGINE_R_COMMAND_TAKES_INPUT 135 +# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 +# define ENGINE_R_CONFLICTING_ENGINE_ID 103 +# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 +# define ENGINE_R_DSO_FAILURE 104 +# define ENGINE_R_DSO_NOT_FOUND 132 +# define ENGINE_R_ENGINES_SECTION_ERROR 148 +# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 +# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 +# define ENGINE_R_ENGINE_SECTION_ERROR 149 +# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 +# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 +# define ENGINE_R_FINISH_FAILED 106 +# define ENGINE_R_ID_OR_NAME_MISSING 108 +# define ENGINE_R_INIT_FAILED 109 +# define ENGINE_R_INTERNAL_LIST_ERROR 110 +# define ENGINE_R_INVALID_ARGUMENT 143 +# define ENGINE_R_INVALID_CMD_NAME 137 +# define ENGINE_R_INVALID_CMD_NUMBER 138 +# define ENGINE_R_INVALID_INIT_VALUE 151 +# define ENGINE_R_INVALID_STRING 150 +# define ENGINE_R_NOT_INITIALISED 117 +# define ENGINE_R_NOT_LOADED 112 +# define ENGINE_R_NO_CONTROL_FUNCTION 120 +# define ENGINE_R_NO_INDEX 144 +# define ENGINE_R_NO_LOAD_FUNCTION 125 +# define ENGINE_R_NO_REFERENCE 130 +# define ENGINE_R_NO_SUCH_ENGINE 116 +# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 +# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 +# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 +# define ENGINE_R_VERSION_INCOMPATIBILITY 145 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/err.h b/thrid-party/openssl/openssl/err.h new file mode 100644 index 000000000..b49f88129 --- /dev/null +++ b/thrid-party/openssl/openssl/err.h @@ -0,0 +1,274 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ERR_H +# define HEADER_ERR_H + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# include +# endif + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_NO_ERR +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) +# else +# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) +# endif + +# include + +# define ERR_TXT_MALLOCED 0x01 +# define ERR_TXT_STRING 0x02 + +# define ERR_FLAG_MARK 0x01 +# define ERR_FLAG_CLEAR 0x02 + +# define ERR_NUM_ERRORS 16 +typedef struct err_state_st { + int err_flags[ERR_NUM_ERRORS]; + unsigned long err_buffer[ERR_NUM_ERRORS]; + char *err_data[ERR_NUM_ERRORS]; + int err_data_flags[ERR_NUM_ERRORS]; + const char *err_file[ERR_NUM_ERRORS]; + int err_line[ERR_NUM_ERRORS]; + int top, bottom; +} ERR_STATE; + +/* library */ +# define ERR_LIB_NONE 1 +# define ERR_LIB_SYS 2 +# define ERR_LIB_BN 3 +# define ERR_LIB_RSA 4 +# define ERR_LIB_DH 5 +# define ERR_LIB_EVP 6 +# define ERR_LIB_BUF 7 +# define ERR_LIB_OBJ 8 +# define ERR_LIB_PEM 9 +# define ERR_LIB_DSA 10 +# define ERR_LIB_X509 11 +/* #define ERR_LIB_METH 12 */ +# define ERR_LIB_ASN1 13 +# define ERR_LIB_CONF 14 +# define ERR_LIB_CRYPTO 15 +# define ERR_LIB_EC 16 +# define ERR_LIB_SSL 20 +/* #define ERR_LIB_SSL23 21 */ +/* #define ERR_LIB_SSL2 22 */ +/* #define ERR_LIB_SSL3 23 */ +/* #define ERR_LIB_RSAREF 30 */ +/* #define ERR_LIB_PROXY 31 */ +# define ERR_LIB_BIO 32 +# define ERR_LIB_PKCS7 33 +# define ERR_LIB_X509V3 34 +# define ERR_LIB_PKCS12 35 +# define ERR_LIB_RAND 36 +# define ERR_LIB_DSO 37 +# define ERR_LIB_ENGINE 38 +# define ERR_LIB_OCSP 39 +# define ERR_LIB_UI 40 +# define ERR_LIB_COMP 41 +# define ERR_LIB_ECDSA 42 +# define ERR_LIB_ECDH 43 +# define ERR_LIB_OSSL_STORE 44 +# define ERR_LIB_FIPS 45 +# define ERR_LIB_CMS 46 +# define ERR_LIB_TS 47 +# define ERR_LIB_HMAC 48 +/* # define ERR_LIB_JPAKE 49 */ +# define ERR_LIB_CT 50 +# define ERR_LIB_ASYNC 51 +# define ERR_LIB_KDF 52 +# define ERR_LIB_SM2 53 + +# define ERR_LIB_USER 128 + +# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define OSSL_STOREerr(f,r) ERR_PUT_error(ERR_LIB_OSSL_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define CTerr(f,r) ERR_PUT_error(ERR_LIB_CT,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define ASYNCerr(f,r) ERR_PUT_error(ERR_LIB_ASYNC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +# define SM2err(f,r) ERR_PUT_error(ERR_LIB_SM2,(f),(r),OPENSSL_FILE,OPENSSL_LINE) + +# define ERR_PACK(l,f,r) ( \ + (((unsigned int)(l) & 0x0FF) << 24L) | \ + (((unsigned int)(f) & 0xFFF) << 12L) | \ + (((unsigned int)(r) & 0xFFF) ) ) +# define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) +# define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) +# define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) +# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) + +/* OS functions */ +# define SYS_F_FOPEN 1 +# define SYS_F_CONNECT 2 +# define SYS_F_GETSERVBYNAME 3 +# define SYS_F_SOCKET 4 +# define SYS_F_IOCTLSOCKET 5 +# define SYS_F_BIND 6 +# define SYS_F_LISTEN 7 +# define SYS_F_ACCEPT 8 +# define SYS_F_WSASTARTUP 9/* Winsock stuff */ +# define SYS_F_OPENDIR 10 +# define SYS_F_FREAD 11 +# define SYS_F_GETADDRINFO 12 +# define SYS_F_GETNAMEINFO 13 +# define SYS_F_SETSOCKOPT 14 +# define SYS_F_GETSOCKOPT 15 +# define SYS_F_GETSOCKNAME 16 +# define SYS_F_GETHOSTBYNAME 17 +# define SYS_F_FFLUSH 18 +# define SYS_F_OPEN 19 +# define SYS_F_CLOSE 20 +# define SYS_F_IOCTL 21 +# define SYS_F_STAT 22 +# define SYS_F_FCNTL 23 +# define SYS_F_FSTAT 24 + +/* reasons */ +# define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ +# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ +# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ +# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ +# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ +# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ +# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ +# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ +# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ +# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ +# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ +# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ +# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ +# define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ +# define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ +# define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ +# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ +# define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ +# define ERR_R_OSSL_STORE_LIB ERR_LIB_OSSL_STORE/* 44 */ + +# define ERR_R_NESTED_ASN1_ERROR 58 +# define ERR_R_MISSING_ASN1_EOS 63 + +/* fatal error */ +# define ERR_R_FATAL 64 +# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) +# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) +# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) +# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) +# define ERR_R_DISABLED (5|ERR_R_FATAL) +# define ERR_R_INIT_FAIL (6|ERR_R_FATAL) +# define ERR_R_PASSED_INVALID_ARGUMENT (7) +# define ERR_R_OPERATION_FAIL (8|ERR_R_FATAL) + +/* + * 99 is the maximum possible ERR_R_... code, higher values are reserved for + * the individual libraries + */ + +typedef struct ERR_string_data_st { + unsigned long error; + const char *string; +} ERR_STRING_DATA; + +DEFINE_LHASH_OF(ERR_STRING_DATA); + +void ERR_put_error(int lib, int func, int reason, const char *file, int line); +void ERR_set_error_data(char *data, int flags); + +unsigned long ERR_get_error(void); +unsigned long ERR_get_error_line(const char **file, int *line); +unsigned long ERR_get_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_error(void); +unsigned long ERR_peek_error_line(const char **file, int *line); +unsigned long ERR_peek_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_last_error(void); +unsigned long ERR_peek_last_error_line(const char **file, int *line); +unsigned long ERR_peek_last_error_line_data(const char **file, int *line, + const char **data, int *flags); +void ERR_clear_error(void); +char *ERR_error_string(unsigned long e, char *buf); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +const char *ERR_lib_error_string(unsigned long e); +const char *ERR_func_error_string(unsigned long e); +const char *ERR_reason_error_string(unsigned long e); +void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +# ifndef OPENSSL_NO_STDIO +void ERR_print_errors_fp(FILE *fp); +# endif +void ERR_print_errors(BIO *bp); +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); +int ERR_load_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_strings_const(const ERR_STRING_DATA *str); +int ERR_unload_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_ERR_strings(void); + +#if OPENSSL_API_COMPAT < 0x10100000L +# define ERR_load_crypto_strings() \ + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +# define ERR_free_strings() while(0) continue +#endif + +DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) +DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) +ERR_STATE *ERR_get_state(void); + +int ERR_get_next_error_library(void); + +int ERR_set_mark(void); +int ERR_pop_to_mark(void); +int ERR_clear_last_mark(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/evp.h b/thrid-party/openssl/openssl/evp.h new file mode 100644 index 000000000..545654a98 --- /dev/null +++ b/thrid-party/openssl/openssl/evp.h @@ -0,0 +1,1638 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_ENVELOPE_H +# define HEADER_ENVELOPE_H + +# include +# include +# include +# include +# include + +# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ +# define EVP_MAX_KEY_LENGTH 64 +# define EVP_MAX_IV_LENGTH 16 +# define EVP_MAX_BLOCK_LENGTH 32 + +# define PKCS5_SALT_LEN 8 +/* Default PKCS#5 iteration count */ +# define PKCS5_DEFAULT_ITER 2048 + +# include + +# define EVP_PK_RSA 0x0001 +# define EVP_PK_DSA 0x0002 +# define EVP_PK_DH 0x0004 +# define EVP_PK_EC 0x0008 +# define EVP_PKT_SIGN 0x0010 +# define EVP_PKT_ENC 0x0020 +# define EVP_PKT_EXCH 0x0040 +# define EVP_PKS_RSA 0x0100 +# define EVP_PKS_DSA 0x0200 +# define EVP_PKS_EC 0x0400 + +# define EVP_PKEY_NONE NID_undef +# define EVP_PKEY_RSA NID_rsaEncryption +# define EVP_PKEY_RSA2 NID_rsa +# define EVP_PKEY_RSA_PSS NID_rsassaPss +# define EVP_PKEY_DSA NID_dsa +# define EVP_PKEY_DSA1 NID_dsa_2 +# define EVP_PKEY_DSA2 NID_dsaWithSHA +# define EVP_PKEY_DSA3 NID_dsaWithSHA1 +# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 +# define EVP_PKEY_DH NID_dhKeyAgreement +# define EVP_PKEY_DHX NID_dhpublicnumber +# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey +# define EVP_PKEY_SM2 NID_sm2 +# define EVP_PKEY_HMAC NID_hmac +# define EVP_PKEY_CMAC NID_cmac +# define EVP_PKEY_SCRYPT NID_id_scrypt +# define EVP_PKEY_TLS1_PRF NID_tls1_prf +# define EVP_PKEY_HKDF NID_hkdf +# define EVP_PKEY_POLY1305 NID_poly1305 +# define EVP_PKEY_SIPHASH NID_siphash +# define EVP_PKEY_X25519 NID_X25519 +# define EVP_PKEY_ED25519 NID_ED25519 +# define EVP_PKEY_X448 NID_X448 +# define EVP_PKEY_ED448 NID_ED448 + +#ifdef __cplusplus +extern "C" { +#endif + +# define EVP_PKEY_MO_SIGN 0x0001 +# define EVP_PKEY_MO_VERIFY 0x0002 +# define EVP_PKEY_MO_ENCRYPT 0x0004 +# define EVP_PKEY_MO_DECRYPT 0x0008 + +# ifndef EVP_MD +EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); +EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); +void EVP_MD_meth_free(EVP_MD *md); + +int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); +int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); +int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); +int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); +int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, + const void *data, + size_t count)); +int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, + unsigned char *md)); +int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, + const EVP_MD_CTX *from)); +int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2)); + +int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); +int EVP_MD_meth_get_result_size(const EVP_MD *md); +int EVP_MD_meth_get_app_datasize(const EVP_MD *md); +unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); +int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, + const void *data, + size_t count); +int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, + unsigned char *md); +int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, + const EVP_MD_CTX *from); +int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2); + +/* digest can only handle a single block */ +# define EVP_MD_FLAG_ONESHOT 0x0001 + +/* digest is extensible-output function, XOF */ +# define EVP_MD_FLAG_XOF 0x0002 + +/* DigestAlgorithmIdentifier flags... */ + +# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 + +/* NULL or absent parameter accepted. Use NULL */ + +# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 + +/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ + +# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 + +/* Custom handling via ctrl */ + +# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 + +/* Note if suitable for use in FIPS mode */ +# define EVP_MD_FLAG_FIPS 0x0400 + +/* Digest ctrls */ + +# define EVP_MD_CTRL_DIGALGID 0x1 +# define EVP_MD_CTRL_MICALG 0x2 +# define EVP_MD_CTRL_XOF_LEN 0x3 + +/* Minimum Algorithm specific ctrl value */ + +# define EVP_MD_CTRL_ALG_CTRL 0x1000 + +# endif /* !EVP_MD */ + +/* values for EVP_MD_CTX flags */ + +# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be + * called once only */ +# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been + * cleaned */ +# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data + * in EVP_MD_CTX_reset */ +/* + * FIPS and pad options are ignored in 1.0.0, definitions are here so we + * don't accidentally reuse the values for other purposes. + */ + +# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS + * digest in FIPS mode */ + +/* + * The following PAD options are also currently ignored in 1.0.0, digest + * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() + * instead. + */ +# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ +# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ +# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ +# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ + +# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ +/* + * Some functions such as EVP_DigestSign only finalise copies of internal + * contexts so additional data can be included after the finalisation call. + * This is inefficient if this functionality is not required: it is disabled + * if the following flag is set. + */ +# define EVP_MD_CTX_FLAG_FINALISE 0x0200 +/* NOTE: 0x0400 is reserved for internal usage in evp_int.h */ + +EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); +EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); +void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); + +int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); +int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); +int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); +int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, + int (*init) (EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc)); +int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, + int (*do_cipher) (EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl)); +int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, + int (*cleanup) (EVP_CIPHER_CTX *)); +int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, + int (*set_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, + int (*get_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, + int (*ctrl) (EVP_CIPHER_CTX *, int type, + int arg, void *ptr)); + +int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc); +int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl); +int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); +int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + int type, int arg, + void *ptr); + +/* Values for cipher flags */ + +/* Modes for ciphers */ + +# define EVP_CIPH_STREAM_CIPHER 0x0 +# define EVP_CIPH_ECB_MODE 0x1 +# define EVP_CIPH_CBC_MODE 0x2 +# define EVP_CIPH_CFB_MODE 0x3 +# define EVP_CIPH_OFB_MODE 0x4 +# define EVP_CIPH_CTR_MODE 0x5 +# define EVP_CIPH_GCM_MODE 0x6 +# define EVP_CIPH_CCM_MODE 0x7 +# define EVP_CIPH_XTS_MODE 0x10001 +# define EVP_CIPH_WRAP_MODE 0x10002 +# define EVP_CIPH_OCB_MODE 0x10003 +# define EVP_CIPH_MODE 0xF0007 +/* Set if variable length cipher */ +# define EVP_CIPH_VARIABLE_LENGTH 0x8 +/* Set if the iv handling should be done by the cipher itself */ +# define EVP_CIPH_CUSTOM_IV 0x10 +/* Set if the cipher's init() function should be called if key is NULL */ +# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 +/* Call ctrl() to init cipher parameters */ +# define EVP_CIPH_CTRL_INIT 0x40 +/* Don't use standard key length function */ +# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 +/* Don't use standard block padding */ +# define EVP_CIPH_NO_PADDING 0x100 +/* cipher handles random key generation */ +# define EVP_CIPH_RAND_KEY 0x200 +/* cipher has its own additional copying logic */ +# define EVP_CIPH_CUSTOM_COPY 0x400 +/* Don't use standard iv length function */ +# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 +/* Allow use default ASN1 get/set iv */ +# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 +/* Buffer length in bits not bytes: CFB1 mode only */ +# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 +/* Note if suitable for use in FIPS mode */ +# define EVP_CIPH_FLAG_FIPS 0x4000 +/* Allow non FIPS cipher in FIPS mode */ +# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 +/* + * Cipher handles any and all padding logic as well as finalisation. + */ +# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 +# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 +/* Cipher can handle pipeline operations */ +# define EVP_CIPH_FLAG_PIPELINE 0X800000 + +/* + * Cipher context flag to indicate we can handle wrap mode: if allowed in + * older applications it could overflow buffers. + */ + +# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 + +/* ctrl() values */ + +# define EVP_CTRL_INIT 0x0 +# define EVP_CTRL_SET_KEY_LENGTH 0x1 +# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 +# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 +# define EVP_CTRL_GET_RC5_ROUNDS 0x4 +# define EVP_CTRL_SET_RC5_ROUNDS 0x5 +# define EVP_CTRL_RAND_KEY 0x6 +# define EVP_CTRL_PBE_PRF_NID 0x7 +# define EVP_CTRL_COPY 0x8 +# define EVP_CTRL_AEAD_SET_IVLEN 0x9 +# define EVP_CTRL_AEAD_GET_TAG 0x10 +# define EVP_CTRL_AEAD_SET_TAG 0x11 +# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 +# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN +# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG +# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG +# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED +# define EVP_CTRL_GCM_IV_GEN 0x13 +# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN +# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG +# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG +# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED +# define EVP_CTRL_CCM_SET_L 0x14 +# define EVP_CTRL_CCM_SET_MSGLEN 0x15 +/* + * AEAD cipher deduces payload length and returns number of bytes required to + * store MAC and eventual padding. Subsequent call to EVP_Cipher even + * appends/verifies MAC. + */ +# define EVP_CTRL_AEAD_TLS1_AAD 0x16 +/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ +# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 +/* Set the GCM invocation field, decrypt only */ +# define EVP_CTRL_GCM_SET_IV_INV 0x18 + +# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 +# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a +# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b +# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c + +# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d + +/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ +# define EVP_CTRL_SET_SBOX 0x1e +/* + * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a + * pre-allocated buffer with specified size + */ +# define EVP_CTRL_SBOX_USED 0x1f +/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, + * 0 switches meshing off + */ +# define EVP_CTRL_KEY_MESH 0x20 +/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ +# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 + +/* Set the output buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 +/* Set the input buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 +/* Set the input buffer lengths to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 + +# define EVP_CTRL_GET_IVLEN 0x25 + +/* Padding modes */ +#define EVP_PADDING_PKCS7 1 +#define EVP_PADDING_ISO7816_4 2 +#define EVP_PADDING_ANSI923 3 +#define EVP_PADDING_ISO10126 4 +#define EVP_PADDING_ZERO 5 + +/* RFC 5246 defines additional data to be 13 bytes in length */ +# define EVP_AEAD_TLS1_AAD_LEN 13 + +typedef struct { + unsigned char *out; + const unsigned char *inp; + size_t len; + unsigned int interleave; +} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; + +/* GCM TLS constants */ +/* Length of fixed part of IV derived from PRF */ +# define EVP_GCM_TLS_FIXED_IV_LEN 4 +/* Length of explicit part of IV part of TLS records */ +# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 +/* Length of tag for TLS */ +# define EVP_GCM_TLS_TAG_LEN 16 + +/* CCM TLS constants */ +/* Length of fixed part of IV derived from PRF */ +# define EVP_CCM_TLS_FIXED_IV_LEN 4 +/* Length of explicit part of IV part of TLS records */ +# define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 +/* Total length of CCM IV length for TLS */ +# define EVP_CCM_TLS_IV_LEN 12 +/* Length of tag for TLS */ +# define EVP_CCM_TLS_TAG_LEN 16 +/* Length of CCM8 tag for TLS */ +# define EVP_CCM8_TLS_TAG_LEN 8 + +/* Length of tag for TLS */ +# define EVP_CHACHAPOLY_TLS_TAG_LEN 16 + +typedef struct evp_cipher_info_st { + const EVP_CIPHER *cipher; + unsigned char iv[EVP_MAX_IV_LENGTH]; +} EVP_CIPHER_INFO; + + +/* Password based encryption function */ +typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *cipher, const EVP_MD *md, + int en_de); + +# ifndef OPENSSL_NO_RSA +# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ + (char *)(rsa)) +# endif + +# ifndef OPENSSL_NO_DSA +# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ + (char *)(dsa)) +# endif + +# ifndef OPENSSL_NO_DH +# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ + (char *)(dh)) +# endif + +# ifndef OPENSSL_NO_EC +# define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ + (char *)(eckey)) +# endif +# ifndef OPENSSL_NO_SIPHASH +# define EVP_PKEY_assign_SIPHASH(pkey,shkey) EVP_PKEY_assign((pkey),EVP_PKEY_SIPHASH,\ + (char *)(shkey)) +# endif + +# ifndef OPENSSL_NO_POLY1305 +# define EVP_PKEY_assign_POLY1305(pkey,polykey) EVP_PKEY_assign((pkey),EVP_PKEY_POLY1305,\ + (char *)(polykey)) +# endif + +/* Add some extra combinations */ +# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) +# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) +# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) +# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) + +int EVP_MD_type(const EVP_MD *md); +# define EVP_MD_nid(e) EVP_MD_type(e) +# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) +int EVP_MD_pkey_type(const EVP_MD *md); +int EVP_MD_size(const EVP_MD *md); +int EVP_MD_block_size(const EVP_MD *md); +unsigned long EVP_MD_flags(const EVP_MD *md); + +const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); +int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, + const void *data, size_t count); +void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, + int (*update) (EVP_MD_CTX *ctx, + const void *data, size_t count)); +# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) +# define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) +EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx); +void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); +void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx); + +int EVP_CIPHER_nid(const EVP_CIPHER *cipher); +# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) +int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); +int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); +unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); +# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) + +const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); +int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); +void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); +void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); +void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); +# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) +# if OPENSSL_API_COMPAT < 0x10100000L +# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) +# endif +# define EVP_CIPHER_CTX_mode(c) EVP_CIPHER_mode(EVP_CIPHER_CTX_cipher(c)) + +# define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) +# define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) + +# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_SignInit(a,b) EVP_DigestInit(a,b) +# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) +# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) +# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) +# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) + +# ifdef CONST_STRICT +void BIO_set_md(BIO *, const EVP_MD *md); +# else +# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)(md)) +# endif +# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)(mdp)) +# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0, \ + (char *)(mdcp)) +# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0, \ + (char *)(mdcp)) +# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) +# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0, \ + (char *)(c_pp)) + +/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, + unsigned char *out, + const unsigned char *in, unsigned int inl); + +# define EVP_add_cipher_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_add_digest_alias(n,alias) \ + OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) +# define EVP_delete_cipher_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); +# define EVP_delete_digest_alias(alias) \ + OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); + +int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); +EVP_MD_CTX *EVP_MD_CTX_new(void); +int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); +void EVP_MD_CTX_free(EVP_MD_CTX *ctx); +# define EVP_MD_CTX_create() EVP_MD_CTX_new() +# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) +# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) +__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); +void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); +void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); +int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); +__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, + ENGINE *impl); +__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, + size_t cnt); +__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); +__owur int EVP_Digest(const void *data, size_t count, + unsigned char *md, unsigned int *size, + const EVP_MD *type, ENGINE *impl); + +__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); +__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); +__owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); +__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, + size_t len); + +int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); +int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, + const char *prompt, int verify); +void EVP_set_pw_prompt(const char *prompt); +char *EVP_get_pw_prompt(void); + +__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, + const unsigned char *salt, + const unsigned char *data, int datal, int count, + unsigned char *key, unsigned char *iv); + +void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); +void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); +int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); + +__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); +/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); +/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); + +__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); +/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); +/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); +/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + +__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv, + int enc); +/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv, int enc); +__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); +__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); +__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + +__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, + EVP_PKEY *pkey); + +__owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen, const unsigned char *tbs, + size_t tbslen); + +__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, + unsigned int siglen, EVP_PKEY *pkey); + +__owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, + size_t siglen, const unsigned char *tbs, + size_t tbslen); + +/*__owur*/ int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); +__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen); + +__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); +__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, + size_t siglen); + +# ifndef OPENSSL_NO_RSA +__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + const unsigned char *ek, int ekl, + const unsigned char *iv, EVP_PKEY *priv); +__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + +__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + unsigned char **ek, int *ekl, unsigned char *iv, + EVP_PKEY **pubk, int npubk); +__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +# endif + +EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); +void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); +int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); +int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); +void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); +int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); + +void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); +int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned + char *out, int *outl); +int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) +# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) +# endif +EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); +int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); +void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); +int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); +int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); +int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); +int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); + +const BIO_METHOD *BIO_f_md(void); +const BIO_METHOD *BIO_f_base64(void); +const BIO_METHOD *BIO_f_cipher(void); +const BIO_METHOD *BIO_f_reliable(void); +__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, + const unsigned char *i, int enc); + +const EVP_MD *EVP_md_null(void); +# ifndef OPENSSL_NO_MD2 +const EVP_MD *EVP_md2(void); +# endif +# ifndef OPENSSL_NO_MD4 +const EVP_MD *EVP_md4(void); +# endif +# ifndef OPENSSL_NO_MD5 +const EVP_MD *EVP_md5(void); +const EVP_MD *EVP_md5_sha1(void); +# endif +# ifndef OPENSSL_NO_BLAKE2 +const EVP_MD *EVP_blake2b512(void); +const EVP_MD *EVP_blake2s256(void); +# endif +const EVP_MD *EVP_sha1(void); +const EVP_MD *EVP_sha224(void); +const EVP_MD *EVP_sha256(void); +const EVP_MD *EVP_sha384(void); +const EVP_MD *EVP_sha512(void); +const EVP_MD *EVP_sha512_224(void); +const EVP_MD *EVP_sha512_256(void); +const EVP_MD *EVP_sha3_224(void); +const EVP_MD *EVP_sha3_256(void); +const EVP_MD *EVP_sha3_384(void); +const EVP_MD *EVP_sha3_512(void); +const EVP_MD *EVP_shake128(void); +const EVP_MD *EVP_shake256(void); +# ifndef OPENSSL_NO_MDC2 +const EVP_MD *EVP_mdc2(void); +# endif +# ifndef OPENSSL_NO_RMD160 +const EVP_MD *EVP_ripemd160(void); +# endif +# ifndef OPENSSL_NO_WHIRLPOOL +const EVP_MD *EVP_whirlpool(void); +# endif +# ifndef OPENSSL_NO_SM3 +const EVP_MD *EVP_sm3(void); +# endif +const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ +# ifndef OPENSSL_NO_DES +const EVP_CIPHER *EVP_des_ecb(void); +const EVP_CIPHER *EVP_des_ede(void); +const EVP_CIPHER *EVP_des_ede3(void); +const EVP_CIPHER *EVP_des_ede_ecb(void); +const EVP_CIPHER *EVP_des_ede3_ecb(void); +const EVP_CIPHER *EVP_des_cfb64(void); +# define EVP_des_cfb EVP_des_cfb64 +const EVP_CIPHER *EVP_des_cfb1(void); +const EVP_CIPHER *EVP_des_cfb8(void); +const EVP_CIPHER *EVP_des_ede_cfb64(void); +# define EVP_des_ede_cfb EVP_des_ede_cfb64 +const EVP_CIPHER *EVP_des_ede3_cfb64(void); +# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 +const EVP_CIPHER *EVP_des_ede3_cfb1(void); +const EVP_CIPHER *EVP_des_ede3_cfb8(void); +const EVP_CIPHER *EVP_des_ofb(void); +const EVP_CIPHER *EVP_des_ede_ofb(void); +const EVP_CIPHER *EVP_des_ede3_ofb(void); +const EVP_CIPHER *EVP_des_cbc(void); +const EVP_CIPHER *EVP_des_ede_cbc(void); +const EVP_CIPHER *EVP_des_ede3_cbc(void); +const EVP_CIPHER *EVP_desx_cbc(void); +const EVP_CIPHER *EVP_des_ede3_wrap(void); +/* + * This should now be supported through the dev_crypto ENGINE. But also, why + * are rc4 and md5 declarations made here inside a "NO_DES" precompiler + * branch? + */ +# endif +# ifndef OPENSSL_NO_RC4 +const EVP_CIPHER *EVP_rc4(void); +const EVP_CIPHER *EVP_rc4_40(void); +# ifndef OPENSSL_NO_MD5 +const EVP_CIPHER *EVP_rc4_hmac_md5(void); +# endif +# endif +# ifndef OPENSSL_NO_IDEA +const EVP_CIPHER *EVP_idea_ecb(void); +const EVP_CIPHER *EVP_idea_cfb64(void); +# define EVP_idea_cfb EVP_idea_cfb64 +const EVP_CIPHER *EVP_idea_ofb(void); +const EVP_CIPHER *EVP_idea_cbc(void); +# endif +# ifndef OPENSSL_NO_RC2 +const EVP_CIPHER *EVP_rc2_ecb(void); +const EVP_CIPHER *EVP_rc2_cbc(void); +const EVP_CIPHER *EVP_rc2_40_cbc(void); +const EVP_CIPHER *EVP_rc2_64_cbc(void); +const EVP_CIPHER *EVP_rc2_cfb64(void); +# define EVP_rc2_cfb EVP_rc2_cfb64 +const EVP_CIPHER *EVP_rc2_ofb(void); +# endif +# ifndef OPENSSL_NO_BF +const EVP_CIPHER *EVP_bf_ecb(void); +const EVP_CIPHER *EVP_bf_cbc(void); +const EVP_CIPHER *EVP_bf_cfb64(void); +# define EVP_bf_cfb EVP_bf_cfb64 +const EVP_CIPHER *EVP_bf_ofb(void); +# endif +# ifndef OPENSSL_NO_CAST +const EVP_CIPHER *EVP_cast5_ecb(void); +const EVP_CIPHER *EVP_cast5_cbc(void); +const EVP_CIPHER *EVP_cast5_cfb64(void); +# define EVP_cast5_cfb EVP_cast5_cfb64 +const EVP_CIPHER *EVP_cast5_ofb(void); +# endif +# ifndef OPENSSL_NO_RC5 +const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); +const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); +const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); +# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 +const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); +# endif +const EVP_CIPHER *EVP_aes_128_ecb(void); +const EVP_CIPHER *EVP_aes_128_cbc(void); +const EVP_CIPHER *EVP_aes_128_cfb1(void); +const EVP_CIPHER *EVP_aes_128_cfb8(void); +const EVP_CIPHER *EVP_aes_128_cfb128(void); +# define EVP_aes_128_cfb EVP_aes_128_cfb128 +const EVP_CIPHER *EVP_aes_128_ofb(void); +const EVP_CIPHER *EVP_aes_128_ctr(void); +const EVP_CIPHER *EVP_aes_128_ccm(void); +const EVP_CIPHER *EVP_aes_128_gcm(void); +const EVP_CIPHER *EVP_aes_128_xts(void); +const EVP_CIPHER *EVP_aes_128_wrap(void); +const EVP_CIPHER *EVP_aes_128_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_128_ocb(void); +# endif +const EVP_CIPHER *EVP_aes_192_ecb(void); +const EVP_CIPHER *EVP_aes_192_cbc(void); +const EVP_CIPHER *EVP_aes_192_cfb1(void); +const EVP_CIPHER *EVP_aes_192_cfb8(void); +const EVP_CIPHER *EVP_aes_192_cfb128(void); +# define EVP_aes_192_cfb EVP_aes_192_cfb128 +const EVP_CIPHER *EVP_aes_192_ofb(void); +const EVP_CIPHER *EVP_aes_192_ctr(void); +const EVP_CIPHER *EVP_aes_192_ccm(void); +const EVP_CIPHER *EVP_aes_192_gcm(void); +const EVP_CIPHER *EVP_aes_192_wrap(void); +const EVP_CIPHER *EVP_aes_192_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_192_ocb(void); +# endif +const EVP_CIPHER *EVP_aes_256_ecb(void); +const EVP_CIPHER *EVP_aes_256_cbc(void); +const EVP_CIPHER *EVP_aes_256_cfb1(void); +const EVP_CIPHER *EVP_aes_256_cfb8(void); +const EVP_CIPHER *EVP_aes_256_cfb128(void); +# define EVP_aes_256_cfb EVP_aes_256_cfb128 +const EVP_CIPHER *EVP_aes_256_ofb(void); +const EVP_CIPHER *EVP_aes_256_ctr(void); +const EVP_CIPHER *EVP_aes_256_ccm(void); +const EVP_CIPHER *EVP_aes_256_gcm(void); +const EVP_CIPHER *EVP_aes_256_xts(void); +const EVP_CIPHER *EVP_aes_256_wrap(void); +const EVP_CIPHER *EVP_aes_256_wrap_pad(void); +# ifndef OPENSSL_NO_OCB +const EVP_CIPHER *EVP_aes_256_ocb(void); +# endif +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +# ifndef OPENSSL_NO_ARIA +const EVP_CIPHER *EVP_aria_128_ecb(void); +const EVP_CIPHER *EVP_aria_128_cbc(void); +const EVP_CIPHER *EVP_aria_128_cfb1(void); +const EVP_CIPHER *EVP_aria_128_cfb8(void); +const EVP_CIPHER *EVP_aria_128_cfb128(void); +# define EVP_aria_128_cfb EVP_aria_128_cfb128 +const EVP_CIPHER *EVP_aria_128_ctr(void); +const EVP_CIPHER *EVP_aria_128_ofb(void); +const EVP_CIPHER *EVP_aria_128_gcm(void); +const EVP_CIPHER *EVP_aria_128_ccm(void); +const EVP_CIPHER *EVP_aria_192_ecb(void); +const EVP_CIPHER *EVP_aria_192_cbc(void); +const EVP_CIPHER *EVP_aria_192_cfb1(void); +const EVP_CIPHER *EVP_aria_192_cfb8(void); +const EVP_CIPHER *EVP_aria_192_cfb128(void); +# define EVP_aria_192_cfb EVP_aria_192_cfb128 +const EVP_CIPHER *EVP_aria_192_ctr(void); +const EVP_CIPHER *EVP_aria_192_ofb(void); +const EVP_CIPHER *EVP_aria_192_gcm(void); +const EVP_CIPHER *EVP_aria_192_ccm(void); +const EVP_CIPHER *EVP_aria_256_ecb(void); +const EVP_CIPHER *EVP_aria_256_cbc(void); +const EVP_CIPHER *EVP_aria_256_cfb1(void); +const EVP_CIPHER *EVP_aria_256_cfb8(void); +const EVP_CIPHER *EVP_aria_256_cfb128(void); +# define EVP_aria_256_cfb EVP_aria_256_cfb128 +const EVP_CIPHER *EVP_aria_256_ctr(void); +const EVP_CIPHER *EVP_aria_256_ofb(void); +const EVP_CIPHER *EVP_aria_256_gcm(void); +const EVP_CIPHER *EVP_aria_256_ccm(void); +# endif +# ifndef OPENSSL_NO_CAMELLIA +const EVP_CIPHER *EVP_camellia_128_ecb(void); +const EVP_CIPHER *EVP_camellia_128_cbc(void); +const EVP_CIPHER *EVP_camellia_128_cfb1(void); +const EVP_CIPHER *EVP_camellia_128_cfb8(void); +const EVP_CIPHER *EVP_camellia_128_cfb128(void); +# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 +const EVP_CIPHER *EVP_camellia_128_ofb(void); +const EVP_CIPHER *EVP_camellia_128_ctr(void); +const EVP_CIPHER *EVP_camellia_192_ecb(void); +const EVP_CIPHER *EVP_camellia_192_cbc(void); +const EVP_CIPHER *EVP_camellia_192_cfb1(void); +const EVP_CIPHER *EVP_camellia_192_cfb8(void); +const EVP_CIPHER *EVP_camellia_192_cfb128(void); +# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 +const EVP_CIPHER *EVP_camellia_192_ofb(void); +const EVP_CIPHER *EVP_camellia_192_ctr(void); +const EVP_CIPHER *EVP_camellia_256_ecb(void); +const EVP_CIPHER *EVP_camellia_256_cbc(void); +const EVP_CIPHER *EVP_camellia_256_cfb1(void); +const EVP_CIPHER *EVP_camellia_256_cfb8(void); +const EVP_CIPHER *EVP_camellia_256_cfb128(void); +# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 +const EVP_CIPHER *EVP_camellia_256_ofb(void); +const EVP_CIPHER *EVP_camellia_256_ctr(void); +# endif +# ifndef OPENSSL_NO_CHACHA +const EVP_CIPHER *EVP_chacha20(void); +# ifndef OPENSSL_NO_POLY1305 +const EVP_CIPHER *EVP_chacha20_poly1305(void); +# endif +# endif + +# ifndef OPENSSL_NO_SEED +const EVP_CIPHER *EVP_seed_ecb(void); +const EVP_CIPHER *EVP_seed_cbc(void); +const EVP_CIPHER *EVP_seed_cfb128(void); +# define EVP_seed_cfb EVP_seed_cfb128 +const EVP_CIPHER *EVP_seed_ofb(void); +# endif + +# ifndef OPENSSL_NO_SM4 +const EVP_CIPHER *EVP_sm4_ecb(void); +const EVP_CIPHER *EVP_sm4_cbc(void); +const EVP_CIPHER *EVP_sm4_cfb128(void); +# define EVP_sm4_cfb EVP_sm4_cfb128 +const EVP_CIPHER *EVP_sm4_ofb(void); +const EVP_CIPHER *EVP_sm4_ctr(void); +# endif + +# if OPENSSL_API_COMPAT < 0x10100000L +# define OPENSSL_add_all_algorithms_conf() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS \ + | OPENSSL_INIT_LOAD_CONFIG, NULL) +# define OPENSSL_add_all_algorithms_noconf() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ + | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) + +# ifdef OPENSSL_LOAD_CONF +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() +# else +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() +# endif + +# define OpenSSL_add_all_ciphers() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) +# define OpenSSL_add_all_digests() \ + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) + +# define EVP_cleanup() while(0) continue +# endif + +int EVP_add_cipher(const EVP_CIPHER *cipher); +int EVP_add_digest(const EVP_MD *digest); + +const EVP_CIPHER *EVP_get_cipherbyname(const char *name); +const EVP_MD *EVP_get_digestbyname(const char *name); + +void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_CIPHER_do_all_sorted(void (*fn) + (const EVP_CIPHER *ciph, const char *from, + const char *to, void *x), void *arg); + +void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_MD_do_all_sorted(void (*fn) + (const EVP_MD *ciph, const char *from, + const char *to, void *x), void *arg); + +int EVP_PKEY_decrypt_old(unsigned char *dec_key, + const unsigned char *enc_key, int enc_key_len, + EVP_PKEY *private_key); +int EVP_PKEY_encrypt_old(unsigned char *enc_key, + const unsigned char *key, int key_len, + EVP_PKEY *pub_key); +int EVP_PKEY_type(int type); +int EVP_PKEY_id(const EVP_PKEY *pkey); +int EVP_PKEY_base_id(const EVP_PKEY *pkey); +int EVP_PKEY_bits(const EVP_PKEY *pkey); +int EVP_PKEY_security_bits(const EVP_PKEY *pkey); +int EVP_PKEY_size(const EVP_PKEY *pkey); +int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); +int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); +# ifndef OPENSSL_NO_ENGINE +int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); +ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); +# endif +int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); +void *EVP_PKEY_get0(const EVP_PKEY *pkey); +const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); +# ifndef OPENSSL_NO_POLY1305 +const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); +# endif +# ifndef OPENSSL_NO_SIPHASH +const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); +# endif + +# ifndef OPENSSL_NO_RSA +struct rsa_st; +int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); +struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); +struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DSA +struct dsa_st; +int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); +struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); +struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_DH +struct dh_st; +int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); +struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); +struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); +# endif +# ifndef OPENSSL_NO_EC +struct ec_key_st; +int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); +struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); +struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); +# endif + +EVP_PKEY *EVP_PKEY_new(void); +int EVP_PKEY_up_ref(EVP_PKEY *pkey); +void EVP_PKEY_free(EVP_PKEY *pkey); + +EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); + +EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); + +int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); +int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); +int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); +int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); + +int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); + +int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); + +int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, + const unsigned char *pt, size_t ptlen); +size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); + +int EVP_CIPHER_type(const EVP_CIPHER *ctx); + +/* calls methods */ +int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* These are used by EVP_CIPHER methods */ +int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); + +/* PKCS5 password based encryption */ +int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); +int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + int keylen, unsigned char *out); +int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + const EVP_MD *digest, int keylen, unsigned char *out); +int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); + +#ifndef OPENSSL_NO_SCRYPT +int EVP_PBE_scrypt(const char *pass, size_t passlen, + const unsigned char *salt, size_t saltlen, + uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, + unsigned char *key, size_t keylen); + +int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *c, const EVP_MD *md, int en_de); +#endif + +void PKCS5_PBE_add(void); + +int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, + ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); + +/* PBE type */ + +/* Can appear as the outermost AlgorithmIdentifier */ +# define EVP_PBE_TYPE_OUTER 0x0 +/* Is an PRF type OID */ +# define EVP_PBE_TYPE_PRF 0x1 +/* Is a PKCS#5 v2.0 KDF */ +# define EVP_PBE_TYPE_KDF 0x2 + +int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, + int md_nid, EVP_PBE_KEYGEN *keygen); +int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, + EVP_PBE_KEYGEN *keygen); +int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, + EVP_PBE_KEYGEN **pkeygen); +void EVP_PBE_cleanup(void); +int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); + +# define ASN1_PKEY_ALIAS 0x1 +# define ASN1_PKEY_DYNAMIC 0x2 +# define ASN1_PKEY_SIGPARAM_NULL 0x4 + +# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 +# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 +# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 +# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 +# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 +# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 + +# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 +# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa + +int EVP_PKEY_asn1_get_count(void); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, + const char *str, int len); +int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); +int EVP_PKEY_asn1_add_alias(int to, int from); +int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, + int *ppkey_flags, const char **pinfo, + const char **ppem_str, + const EVP_PKEY_ASN1_METHOD *ameth); + +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); +EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, + const char *pem_str, + const char *info); +void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, + const EVP_PKEY_ASN1_METHOD *src); +void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); +void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, + int (*pub_decode) (EVP_PKEY *pk, + X509_PUBKEY *pub), + int (*pub_encode) (X509_PUBKEY *pub, + const EVP_PKEY *pk), + int (*pub_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*pub_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx), + int (*pkey_size) (const EVP_PKEY *pk), + int (*pkey_bits) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, + int (*priv_decode) (EVP_PKEY *pk, + const PKCS8_PRIV_KEY_INFO + *p8inf), + int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, + const EVP_PKEY *pk), + int (*priv_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); +void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, + int (*param_decode) (EVP_PKEY *pkey, + const unsigned char **pder, + int derlen), + int (*param_encode) (const EVP_PKEY *pkey, + unsigned char **pder), + int (*param_missing) (const EVP_PKEY *pk), + int (*param_copy) (EVP_PKEY *to, + const EVP_PKEY *from), + int (*param_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*param_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); + +void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, + void (*pkey_free) (EVP_PKEY *pkey)); +void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_ctrl) (EVP_PKEY *pkey, int op, + long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); + +void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, + int (*siginf_set) (X509_SIG_INFO *siginf, + const X509_ALGOR *alg, + const ASN1_STRING *sig)); + +void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_pub_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_param_check) (const EVP_PKEY *pk)); + +void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_priv_key) (EVP_PKEY *pk, + const unsigned char + *priv, + size_t len)); +void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_pub_key) (EVP_PKEY *pk, + const unsigned char *pub, + size_t len)); +void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_priv_key) (const EVP_PKEY *pk, + unsigned char *priv, + size_t *len)); +void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_pub_key) (const EVP_PKEY *pk, + unsigned char *pub, + size_t *len)); + +void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_security_bits) (const EVP_PKEY + *pk)); + +# define EVP_PKEY_OP_UNDEFINED 0 +# define EVP_PKEY_OP_PARAMGEN (1<<1) +# define EVP_PKEY_OP_KEYGEN (1<<2) +# define EVP_PKEY_OP_SIGN (1<<3) +# define EVP_PKEY_OP_VERIFY (1<<4) +# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) +# define EVP_PKEY_OP_SIGNCTX (1<<6) +# define EVP_PKEY_OP_VERIFYCTX (1<<7) +# define EVP_PKEY_OP_ENCRYPT (1<<8) +# define EVP_PKEY_OP_DECRYPT (1<<9) +# define EVP_PKEY_OP_DERIVE (1<<10) + +# define EVP_PKEY_OP_TYPE_SIG \ + (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ + | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) + +# define EVP_PKEY_OP_TYPE_CRYPT \ + (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) + +# define EVP_PKEY_OP_TYPE_NOGEN \ + (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE) + +# define EVP_PKEY_OP_TYPE_GEN \ + (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) + +# define EVP_PKEY_CTX_set_signature_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_GET_MD, 0, (void *)(pmd)) + +# define EVP_PKEY_CTX_set_mac_key(ctx, key, len) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)(key)) + +# define EVP_PKEY_CTRL_MD 1 +# define EVP_PKEY_CTRL_PEER_KEY 2 + +# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 +# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 + +# define EVP_PKEY_CTRL_PKCS7_SIGN 5 + +# define EVP_PKEY_CTRL_SET_MAC_KEY 6 + +# define EVP_PKEY_CTRL_DIGESTINIT 7 + +/* Used by GOST key encryption in TLS */ +# define EVP_PKEY_CTRL_SET_IV 8 + +# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 +# define EVP_PKEY_CTRL_CMS_DECRYPT 10 +# define EVP_PKEY_CTRL_CMS_SIGN 11 + +# define EVP_PKEY_CTRL_CIPHER 12 + +# define EVP_PKEY_CTRL_GET_MD 13 + +# define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14 + +# define EVP_PKEY_ALG_CTRL 0x1000 + +# define EVP_PKEY_FLAG_AUTOARGLEN 2 +/* + * Method handles all operations: don't assume any digest related defaults. + */ +# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 + +const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); +EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); +void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, + const EVP_PKEY_METHOD *meth); +void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); +void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); +size_t EVP_PKEY_meth_get_count(void); +const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); + +EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, int p1, void *p2); +int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, + const char *value); +int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, uint64_t value); + +int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); +int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); + +int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); + +int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); + +EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, + const unsigned char *key, int keylen); +EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, + const unsigned char *priv, + size_t len); +EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, + const unsigned char *pub, + size_t len); +int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, + size_t *len); +int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, + size_t *len); + +EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, + size_t len, const EVP_CIPHER *cipher); + +void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); +EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); + +EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); + +void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, + unsigned char *rout, size_t *routlen, + const unsigned char *sig, size_t siglen); +int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); +int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); + +int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); +int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); + +typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); + +void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); +EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); + +int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); + +void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, + int (*init) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, + int (*copy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); + +void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, + void (*cleanup) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, + int (*paramgen_init) (EVP_PKEY_CTX *ctx), + int (*paramgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, + int (*keygen_init) (EVP_PKEY_CTX *ctx), + int (*keygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, + int (*sign_init) (EVP_PKEY_CTX *ctx), + int (*sign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, + int (*verify_init) (EVP_PKEY_CTX *ctx), + int (*verify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, + int (*verify_recover_init) (EVP_PKEY_CTX + *ctx), + int (*verify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, + int (*signctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*signctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, + int (*verifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*verifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, + int (*encrypt_init) (EVP_PKEY_CTX *ctx), + int (*encryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, + int (*decrypt_init) (EVP_PKEY_CTX *ctx), + int (*decrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, + int (*derive_init) (EVP_PKEY_CTX *ctx), + int (*derive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); + +void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, + int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (*ctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); + +void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth, + int (*digest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth, + int (**pinit) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, + int (**pcopy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); + +void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, + void (**pcleanup) (EVP_PKEY_CTX *ctx)); + +void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, + int (**pparamgen_init) (EVP_PKEY_CTX *ctx), + int (**pparamgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, + int (**pkeygen_init) (EVP_PKEY_CTX *ctx), + int (**pkeygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, + int (**psign_init) (EVP_PKEY_CTX *ctx), + int (**psign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, + int (**pverify_init) (EVP_PKEY_CTX *ctx), + int (**pverify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, + int (**pverify_recover_init) (EVP_PKEY_CTX + *ctx), + int (**pverify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); + +void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, + int (**psignctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (**psignctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, + int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (**pverifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); + +void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, + int (**pencrypt_init) (EVP_PKEY_CTX *ctx), + int (**pencryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, + int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), + int (**pdecrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); + +void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, + int (**pderive_init) (EVP_PKEY_CTX *ctx), + int (**pderive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); + +void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, + int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (**pctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); + +void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); + +void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth, + int (**pdigest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); +void EVP_add_alg_module(void); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/evperr.h b/thrid-party/openssl/openssl/evperr.h new file mode 100644 index 000000000..6a651f556 --- /dev/null +++ b/thrid-party/openssl/openssl/evperr.h @@ -0,0 +1,204 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_EVPERR_H +# define HEADER_EVPERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_EVP_strings(void); + +/* + * EVP function codes. + */ +# define EVP_F_AESNI_INIT_KEY 165 +# define EVP_F_AESNI_XTS_INIT_KEY 207 +# define EVP_F_AES_GCM_CTRL 196 +# define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_OCB_CIPHER 169 +# define EVP_F_AES_T4_INIT_KEY 178 +# define EVP_F_AES_T4_XTS_INIT_KEY 208 +# define EVP_F_AES_WRAP_CIPHER 170 +# define EVP_F_AES_XTS_INIT_KEY 209 +# define EVP_F_ALG_MODULE_INIT 177 +# define EVP_F_ARIA_CCM_INIT_KEY 175 +# define EVP_F_ARIA_GCM_CTRL 197 +# define EVP_F_ARIA_GCM_INIT_KEY 176 +# define EVP_F_ARIA_INIT_KEY 185 +# define EVP_F_B64_NEW 198 +# define EVP_F_CAMELLIA_INIT_KEY 159 +# define EVP_F_CHACHA20_POLY1305_CTRL 182 +# define EVP_F_CMLL_T4_INIT_KEY 179 +# define EVP_F_DES_EDE3_WRAP_CIPHER 171 +# define EVP_F_DO_SIGVER_INIT 161 +# define EVP_F_ENC_NEW 199 +# define EVP_F_EVP_CIPHERINIT_EX 123 +# define EVP_F_EVP_CIPHER_ASN1_TO_PARAM 204 +# define EVP_F_EVP_CIPHER_CTX_COPY 163 +# define EVP_F_EVP_CIPHER_CTX_CTRL 124 +# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 +# define EVP_F_EVP_CIPHER_PARAM_TO_ASN1 205 +# define EVP_F_EVP_DECRYPTFINAL_EX 101 +# define EVP_F_EVP_DECRYPTUPDATE 166 +# define EVP_F_EVP_DIGESTFINALXOF 174 +# define EVP_F_EVP_DIGESTINIT_EX 128 +# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 219 +# define EVP_F_EVP_ENCRYPTFINAL_EX 127 +# define EVP_F_EVP_ENCRYPTUPDATE 167 +# define EVP_F_EVP_MD_CTX_COPY_EX 110 +# define EVP_F_EVP_MD_SIZE 162 +# define EVP_F_EVP_OPENINIT 102 +# define EVP_F_EVP_PBE_ALG_ADD 115 +# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 +# define EVP_F_EVP_PBE_CIPHERINIT 116 +# define EVP_F_EVP_PBE_SCRYPT 181 +# define EVP_F_EVP_PKCS82PKEY 111 +# define EVP_F_EVP_PKEY2PKCS8 113 +# define EVP_F_EVP_PKEY_ASN1_ADD0 188 +# define EVP_F_EVP_PKEY_CHECK 186 +# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 +# define EVP_F_EVP_PKEY_CTX_CTRL 137 +# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 +# define EVP_F_EVP_PKEY_CTX_DUP 156 +# define EVP_F_EVP_PKEY_CTX_MD 168 +# define EVP_F_EVP_PKEY_DECRYPT 104 +# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 +# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 +# define EVP_F_EVP_PKEY_DERIVE 153 +# define EVP_F_EVP_PKEY_DERIVE_INIT 154 +# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 +# define EVP_F_EVP_PKEY_ENCRYPT 105 +# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 +# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 +# define EVP_F_EVP_PKEY_GET0_DH 119 +# define EVP_F_EVP_PKEY_GET0_DSA 120 +# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 +# define EVP_F_EVP_PKEY_GET0_HMAC 183 +# define EVP_F_EVP_PKEY_GET0_POLY1305 184 +# define EVP_F_EVP_PKEY_GET0_RSA 121 +# define EVP_F_EVP_PKEY_GET0_SIPHASH 172 +# define EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY 202 +# define EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY 203 +# define EVP_F_EVP_PKEY_KEYGEN 146 +# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 +# define EVP_F_EVP_PKEY_METH_ADD0 194 +# define EVP_F_EVP_PKEY_METH_NEW 195 +# define EVP_F_EVP_PKEY_NEW 106 +# define EVP_F_EVP_PKEY_NEW_CMAC_KEY 193 +# define EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY 191 +# define EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY 192 +# define EVP_F_EVP_PKEY_PARAMGEN 148 +# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 +# define EVP_F_EVP_PKEY_PARAM_CHECK 189 +# define EVP_F_EVP_PKEY_PUBLIC_CHECK 190 +# define EVP_F_EVP_PKEY_SET1_ENGINE 187 +# define EVP_F_EVP_PKEY_SET_ALIAS_TYPE 206 +# define EVP_F_EVP_PKEY_SIGN 140 +# define EVP_F_EVP_PKEY_SIGN_INIT 141 +# define EVP_F_EVP_PKEY_VERIFY 142 +# define EVP_F_EVP_PKEY_VERIFY_INIT 143 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 +# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 +# define EVP_F_EVP_SIGNFINAL 107 +# define EVP_F_EVP_VERIFYFINAL 108 +# define EVP_F_INT_CTX_NEW 157 +# define EVP_F_OK_NEW 200 +# define EVP_F_PKCS5_PBE_KEYIVGEN 117 +# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 +# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 +# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 +# define EVP_F_PKEY_SET_TYPE 158 +# define EVP_F_RC2_MAGIC_TO_METH 109 +# define EVP_F_RC5_CTRL 125 +# define EVP_F_R_32_12_16_INIT_KEY 242 +# define EVP_F_S390X_AES_GCM_CTRL 201 +# define EVP_F_UPDATE 173 + +/* + * EVP reason codes. + */ +# define EVP_R_AES_KEY_SETUP_FAILED 143 +# define EVP_R_ARIA_KEY_SETUP_FAILED 176 +# define EVP_R_BAD_DECRYPT 100 +# define EVP_R_BAD_KEY_LENGTH 195 +# define EVP_R_BUFFER_TOO_SMALL 155 +# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 +# define EVP_R_CIPHER_PARAMETER_ERROR 122 +# define EVP_R_COMMAND_NOT_SUPPORTED 147 +# define EVP_R_COPY_ERROR 173 +# define EVP_R_CTRL_NOT_IMPLEMENTED 132 +# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 +# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 +# define EVP_R_DECODE_ERROR 114 +# define EVP_R_DIFFERENT_KEY_TYPES 101 +# define EVP_R_DIFFERENT_PARAMETERS 153 +# define EVP_R_ERROR_LOADING_SECTION 165 +# define EVP_R_ERROR_SETTING_FIPS_MODE 166 +# define EVP_R_EXPECTING_AN_HMAC_KEY 174 +# define EVP_R_EXPECTING_AN_RSA_KEY 127 +# define EVP_R_EXPECTING_A_DH_KEY 128 +# define EVP_R_EXPECTING_A_DSA_KEY 129 +# define EVP_R_EXPECTING_A_EC_KEY 142 +# define EVP_R_EXPECTING_A_POLY1305_KEY 164 +# define EVP_R_EXPECTING_A_SIPHASH_KEY 175 +# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 +# define EVP_R_GET_RAW_KEY_FAILED 182 +# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 +# define EVP_R_INITIALIZATION_ERROR 134 +# define EVP_R_INPUT_NOT_INITIALIZED 111 +# define EVP_R_INVALID_DIGEST 152 +# define EVP_R_INVALID_FIPS_MODE 168 +# define EVP_R_INVALID_KEY 163 +# define EVP_R_INVALID_KEY_LENGTH 130 +# define EVP_R_INVALID_OPERATION 148 +# define EVP_R_KEYGEN_FAILURE 120 +# define EVP_R_KEY_SETUP_FAILED 180 +# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 +# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 +# define EVP_R_METHOD_NOT_SUPPORTED 144 +# define EVP_R_MISSING_PARAMETERS 103 +# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 +# define EVP_R_NO_CIPHER_SET 131 +# define EVP_R_NO_DEFAULT_DIGEST 158 +# define EVP_R_NO_DIGEST_SET 139 +# define EVP_R_NO_KEY_SET 154 +# define EVP_R_NO_OPERATION_SET 149 +# define EVP_R_ONLY_ONESHOT_SUPPORTED 177 +# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 +# define EVP_R_OPERATON_NOT_INITIALIZED 151 +# define EVP_R_PARTIALLY_OVERLAPPING 162 +# define EVP_R_PBKDF2_ERROR 181 +# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 179 +# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 +# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 +# define EVP_R_PUBLIC_KEY_NOT_RSA 106 +# define EVP_R_UNKNOWN_CIPHER 160 +# define EVP_R_UNKNOWN_DIGEST 161 +# define EVP_R_UNKNOWN_OPTION 169 +# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 +# define EVP_R_UNSUPPORTED_ALGORITHM 156 +# define EVP_R_UNSUPPORTED_CIPHER 107 +# define EVP_R_UNSUPPORTED_KEYLENGTH 123 +# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 +# define EVP_R_UNSUPPORTED_KEY_SIZE 108 +# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 +# define EVP_R_UNSUPPORTED_PRF 125 +# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 +# define EVP_R_UNSUPPORTED_SALT_TYPE 126 +# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 +# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 +# define EVP_R_XTS_DUPLICATED_KEYS 183 + +#endif diff --git a/thrid-party/openssl/openssl/hmac.h b/thrid-party/openssl/openssl/hmac.h new file mode 100644 index 000000000..458efc1d5 --- /dev/null +++ b/thrid-party/openssl/openssl/hmac.h @@ -0,0 +1,51 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_HMAC_H +# define HEADER_HMAC_H + +# include + +# include + +# if OPENSSL_API_COMPAT < 0x10200000L +# define HMAC_MAX_MD_CBLOCK 128 /* Deprecated */ +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +size_t HMAC_size(const HMAC_CTX *e); +HMAC_CTX *HMAC_CTX_new(void); +int HMAC_CTX_reset(HMAC_CTX *ctx); +void HMAC_CTX_free(HMAC_CTX *ctx); + +DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md)) + +/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, + const EVP_MD *md, ENGINE *impl); +/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, + size_t len); +/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, + unsigned int *len); +unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, + const unsigned char *d, size_t n, unsigned char *md, + unsigned int *md_len); +__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); + +void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); +const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/idea.h b/thrid-party/openssl/openssl/idea.h new file mode 100644 index 000000000..4334f3ea7 --- /dev/null +++ b/thrid-party/openssl/openssl/idea.h @@ -0,0 +1,64 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_IDEA_H +# define HEADER_IDEA_H + +# include + +# ifndef OPENSSL_NO_IDEA +# ifdef __cplusplus +extern "C" { +# endif + +typedef unsigned int IDEA_INT; + +# define IDEA_ENCRYPT 1 +# define IDEA_DECRYPT 0 + +# define IDEA_BLOCK 8 +# define IDEA_KEY_LENGTH 16 + +typedef struct idea_key_st { + IDEA_INT data[9][6]; +} IDEA_KEY_SCHEDULE; + +const char *IDEA_options(void); +void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out, + IDEA_KEY_SCHEDULE *ks); +void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); +void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); +void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int enc); +void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num, int enc); +void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, + int *num); +void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define idea_options IDEA_options +# define idea_ecb_encrypt IDEA_ecb_encrypt +# define idea_set_encrypt_key IDEA_set_encrypt_key +# define idea_set_decrypt_key IDEA_set_decrypt_key +# define idea_cbc_encrypt IDEA_cbc_encrypt +# define idea_cfb64_encrypt IDEA_cfb64_encrypt +# define idea_ofb64_encrypt IDEA_ofb64_encrypt +# define idea_encrypt IDEA_encrypt +# endif + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/kdf.h b/thrid-party/openssl/openssl/kdf.h new file mode 100644 index 000000000..5abd4c371 --- /dev/null +++ b/thrid-party/openssl/openssl/kdf.h @@ -0,0 +1,97 @@ +/* + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_KDF_H +# define HEADER_KDF_H + +# include +#ifdef __cplusplus +extern "C" { +#endif + +# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) +# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_HKDF_MODE (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_PASS (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_SCRYPT_SALT (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_SCRYPT_N (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_SCRYPT_R (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_SCRYPT_P (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES (EVP_PKEY_ALG_CTRL + 13) + +# define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND 0 +# define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY 1 +# define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY 2 + +# define EVP_PKEY_CTX_set_tls1_prf_md(pctx, md) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, seclen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_SECRET, seclen, (void *)(sec)) + +# define EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, seedlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_TLS_SEED, seedlen, (void *)(seed)) + +# define EVP_PKEY_CTX_set_hkdf_md(pctx, md) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, saltlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_SALT, saltlen, (void *)(salt)) + +# define EVP_PKEY_CTX_set1_hkdf_key(pctx, key, keylen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_KEY, keylen, (void *)(key)) + +# define EVP_PKEY_CTX_add1_hkdf_info(pctx, info, infolen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_INFO, infolen, (void *)(info)) + +# define EVP_PKEY_CTX_hkdf_mode(pctx, mode) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_HKDF_MODE, mode, NULL) + +# define EVP_PKEY_CTX_set1_pbe_pass(pctx, pass, passlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_PASS, passlen, (void *)(pass)) + +# define EVP_PKEY_CTX_set1_scrypt_salt(pctx, salt, saltlen) \ + EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_SALT, saltlen, (void *)(salt)) + +# define EVP_PKEY_CTX_set_scrypt_N(pctx, n) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_N, n) + +# define EVP_PKEY_CTX_set_scrypt_r(pctx, r) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_R, r) + +# define EVP_PKEY_CTX_set_scrypt_p(pctx, p) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_P, p) + +# define EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, maxmem_bytes) \ + EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES, maxmem_bytes) + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/kdferr.h b/thrid-party/openssl/openssl/kdferr.h new file mode 100644 index 000000000..3f51bd022 --- /dev/null +++ b/thrid-party/openssl/openssl/kdferr.h @@ -0,0 +1,55 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_KDFERR_H +# define HEADER_KDFERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_KDF_strings(void); + +/* + * KDF function codes. + */ +# define KDF_F_PKEY_HKDF_CTRL_STR 103 +# define KDF_F_PKEY_HKDF_DERIVE 102 +# define KDF_F_PKEY_HKDF_INIT 108 +# define KDF_F_PKEY_SCRYPT_CTRL_STR 104 +# define KDF_F_PKEY_SCRYPT_CTRL_UINT64 105 +# define KDF_F_PKEY_SCRYPT_DERIVE 109 +# define KDF_F_PKEY_SCRYPT_INIT 106 +# define KDF_F_PKEY_SCRYPT_SET_MEMBUF 107 +# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 +# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 +# define KDF_F_PKEY_TLS1_PRF_INIT 110 +# define KDF_F_TLS1_PRF_ALG 111 + +/* + * KDF reason codes. + */ +# define KDF_R_INVALID_DIGEST 100 +# define KDF_R_MISSING_ITERATION_COUNT 109 +# define KDF_R_MISSING_KEY 104 +# define KDF_R_MISSING_MESSAGE_DIGEST 105 +# define KDF_R_MISSING_PARAMETER 101 +# define KDF_R_MISSING_PASS 110 +# define KDF_R_MISSING_SALT 111 +# define KDF_R_MISSING_SECRET 107 +# define KDF_R_MISSING_SEED 106 +# define KDF_R_UNKNOWN_PARAMETER_TYPE 103 +# define KDF_R_VALUE_ERROR 108 +# define KDF_R_VALUE_MISSING 102 + +#endif diff --git a/thrid-party/openssl/openssl/krb5_asn.h b/thrid-party/openssl/openssl/krb5_asn.h new file mode 100644 index 000000000..9cf5a26dd --- /dev/null +++ b/thrid-party/openssl/openssl/krb5_asn.h @@ -0,0 +1,240 @@ +/* krb5_asn.h */ +/* + * Written by Vern Staats for the OpenSSL project, ** + * using ocsp/{*.h,*asn*.c} as a starting point + */ + +/* ==================================================================== + * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_KRB5_ASN_H +# define HEADER_KRB5_ASN_H + +/* + * #include + */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ASN.1 from Kerberos RFC 1510 + */ + +/*- EncryptedData ::= SEQUENCE { + * etype[0] INTEGER, -- EncryptionType + * kvno[1] INTEGER OPTIONAL, + * cipher[2] OCTET STRING -- ciphertext + * } + */ +typedef struct krb5_encdata_st { + ASN1_INTEGER *etype; + ASN1_INTEGER *kvno; + ASN1_OCTET_STRING *cipher; +} KRB5_ENCDATA; + +DECLARE_STACK_OF(KRB5_ENCDATA) + +/*- PrincipalName ::= SEQUENCE { + * name-type[0] INTEGER, + * name-string[1] SEQUENCE OF GeneralString + * } + */ +typedef struct krb5_princname_st { + ASN1_INTEGER *nametype; + STACK_OF(ASN1_GENERALSTRING) *namestring; +} KRB5_PRINCNAME; + +DECLARE_STACK_OF(KRB5_PRINCNAME) + +/*- Ticket ::= [APPLICATION 1] SEQUENCE { + * tkt-vno[0] INTEGER, + * realm[1] Realm, + * sname[2] PrincipalName, + * enc-part[3] EncryptedData + * } + */ +typedef struct krb5_tktbody_st { + ASN1_INTEGER *tktvno; + ASN1_GENERALSTRING *realm; + KRB5_PRINCNAME *sname; + KRB5_ENCDATA *encdata; +} KRB5_TKTBODY; + +typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; +DECLARE_STACK_OF(KRB5_TKTBODY) + +/*- AP-REQ ::= [APPLICATION 14] SEQUENCE { + * pvno[0] INTEGER, + * msg-type[1] INTEGER, + * ap-options[2] APOptions, + * ticket[3] Ticket, + * authenticator[4] EncryptedData + * } + * + * APOptions ::= BIT STRING { + * reserved(0), use-session-key(1), mutual-required(2) } + */ +typedef struct krb5_ap_req_st { + ASN1_INTEGER *pvno; + ASN1_INTEGER *msgtype; + ASN1_BIT_STRING *apoptions; + KRB5_TICKET *ticket; + KRB5_ENCDATA *authenticator; +} KRB5_APREQBODY; + +typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; +DECLARE_STACK_OF(KRB5_APREQBODY) + +/* Authenticator Stuff */ + +/*- Checksum ::= SEQUENCE { + * cksumtype[0] INTEGER, + * checksum[1] OCTET STRING + * } + */ +typedef struct krb5_checksum_st { + ASN1_INTEGER *ctype; + ASN1_OCTET_STRING *checksum; +} KRB5_CHECKSUM; + +DECLARE_STACK_OF(KRB5_CHECKSUM) + +/*- EncryptionKey ::= SEQUENCE { + * keytype[0] INTEGER, + * keyvalue[1] OCTET STRING + * } + */ +typedef struct krb5_encryptionkey_st { + ASN1_INTEGER *ktype; + ASN1_OCTET_STRING *keyvalue; +} KRB5_ENCKEY; + +DECLARE_STACK_OF(KRB5_ENCKEY) + +/*- AuthorizationData ::= SEQUENCE OF SEQUENCE { + * ad-type[0] INTEGER, + * ad-data[1] OCTET STRING + * } + */ +typedef struct krb5_authorization_st { + ASN1_INTEGER *adtype; + ASN1_OCTET_STRING *addata; +} KRB5_AUTHDATA; + +DECLARE_STACK_OF(KRB5_AUTHDATA) + +/*- -- Unencrypted authenticator + * Authenticator ::= [APPLICATION 2] SEQUENCE { + * authenticator-vno[0] INTEGER, + * crealm[1] Realm, + * cname[2] PrincipalName, + * cksum[3] Checksum OPTIONAL, + * cusec[4] INTEGER, + * ctime[5] KerberosTime, + * subkey[6] EncryptionKey OPTIONAL, + * seq-number[7] INTEGER OPTIONAL, + * authorization-data[8] AuthorizationData OPTIONAL + * } + */ +typedef struct krb5_authenticator_st { + ASN1_INTEGER *avno; + ASN1_GENERALSTRING *crealm; + KRB5_PRINCNAME *cname; + KRB5_CHECKSUM *cksum; + ASN1_INTEGER *cusec; + ASN1_GENERALIZEDTIME *ctime; + KRB5_ENCKEY *subkey; + ASN1_INTEGER *seqnum; + KRB5_AUTHDATA *authorization; +} KRB5_AUTHENTBODY; + +typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; +DECLARE_STACK_OF(KRB5_AUTHENTBODY) + +/*- DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = + * type *name##_new(void); + * void name##_free(type *a); + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = + * DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = + * type *d2i_##name(type **a, const unsigned char **in, long len); + * int i2d_##name(type *a, unsigned char **out); + * DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it + */ + +DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) +DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) +DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) + +DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) +DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) +DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/kssl.h b/thrid-party/openssl/openssl/kssl.h new file mode 100644 index 000000000..ae8a51f47 --- /dev/null +++ b/thrid-party/openssl/openssl/kssl.h @@ -0,0 +1,197 @@ +/* ssl/kssl.h */ +/* + * Written by Vern Staats for the OpenSSL project + * 2000. project 2000. + */ +/* ==================================================================== + * Copyright (c) 2000 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + ** 19990701 VRS Started. + */ + +#ifndef KSSL_H +# define KSSL_H + +# include + +# ifndef OPENSSL_NO_KRB5 + +# include +# include +# include +# ifdef OPENSSL_SYS_WIN32 +/* + * These can sometimes get redefined indirectly by krb5 header files after + * they get undefed in ossl_typ.h + */ +# undef X509_NAME +# undef X509_EXTENSIONS +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Depending on which KRB5 implementation used, some types from + * the other may be missing. Resolve that here and now + */ +# ifdef KRB5_HEIMDAL +typedef unsigned char krb5_octet; +# define FAR +# else + +# ifndef FAR +# define FAR +# endif + +# endif + +/*- + * Uncomment this to debug kssl problems or + * to trace usage of the Kerberos session key + * + * #define KSSL_DEBUG + */ + +# ifndef KRB5SVC +# define KRB5SVC "host" +# endif + +# ifndef KRB5KEYTAB +# define KRB5KEYTAB "/etc/krb5.keytab" +# endif + +# ifndef KRB5SENDAUTH +# define KRB5SENDAUTH 1 +# endif + +# ifndef KRB5CHECKAUTH +# define KRB5CHECKAUTH 1 +# endif + +# ifndef KSSL_CLOCKSKEW +# define KSSL_CLOCKSKEW 300; +# endif + +# define KSSL_ERR_MAX 255 +typedef struct kssl_err_st { + int reason; + char text[KSSL_ERR_MAX + 1]; +} KSSL_ERR; + +/*- Context for passing + * (1) Kerberos session key to SSL, and + * (2) Config data between application and SSL lib + */ +typedef struct kssl_ctx_st { + /* used by: disposition: */ + char *service_name; /* C,S default ok (kssl) */ + char *service_host; /* C input, REQUIRED */ + char *client_princ; /* S output from krb5 ticket */ + char *keytab_file; /* S NULL (/etc/krb5.keytab) */ + char *cred_cache; /* C NULL (default) */ + krb5_enctype enctype; + int length; + krb5_octet FAR *key; +} KSSL_CTX; + +# define KSSL_CLIENT 1 +# define KSSL_SERVER 2 +# define KSSL_SERVICE 3 +# define KSSL_KEYTAB 4 + +# define KSSL_CTX_OK 0 +# define KSSL_CTX_ERR 1 +# define KSSL_NOMEM 2 + +/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ +krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); +KSSL_CTX *kssl_ctx_new(void); +KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); +void kssl_ctx_show(KSSL_CTX *kssl_ctx); +krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, + krb5_data *realm, krb5_data *entity, + int nentities); +krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, + krb5_data *authenp, KSSL_ERR *kssl_err); +krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, + krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); +krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); +void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); +void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); +krb5_error_code kssl_build_principal_2(krb5_context context, + krb5_principal *princ, int rlen, + const char *realm, int slen, + const char *svc, int hlen, + const char *host); +krb5_error_code kssl_validate_times(krb5_timestamp atime, + krb5_ticket_times *ttimes); +krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, + krb5_timestamp *atimep, + KSSL_ERR *kssl_err); +unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); + +void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); +KSSL_CTX *SSL_get0_kssl_ctx(SSL *s); +char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); + +#ifdef __cplusplus +} +#endif +# endif /* OPENSSL_NO_KRB5 */ +#endif /* KSSL_H */ diff --git a/thrid-party/openssl/openssl/lhash.h b/thrid-party/openssl/openssl/lhash.h new file mode 100644 index 000000000..47b99d17f --- /dev/null +++ b/thrid-party/openssl/openssl/lhash.h @@ -0,0 +1,242 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * Header for dynamic hash table routines Author - Eric Young + */ + +#ifndef HEADER_LHASH_H +# define HEADER_LHASH_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct lhash_node_st OPENSSL_LH_NODE; +typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef struct lhash_st OPENSSL_LHASH; + +/* + * Macros for declaring and implementing type-safe wrappers for LHASH + * callbacks. This way, callbacks can be provided to LHASH structures without + * function pointer casting and the macro-defined callbacks provide + * per-variable casting before deferring to the underlying type-specific + * callbacks. NB: It is possible to place a "static" in front of both the + * DECLARE and IMPLEMENT macros if the functions are strictly internal. + */ + +/* First: "hash" functions */ +# define DECLARE_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *); +# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *arg) { \ + const o_type *a = arg; \ + return name##_hash(a); } +# define LHASH_HASH_FN(name) name##_LHASH_HASH + +/* Second: "compare" functions */ +# define DECLARE_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *, const void *); +# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ + const o_type *a = arg1; \ + const o_type *b = arg2; \ + return name##_cmp(a,b); } +# define LHASH_COMP_FN(name) name##_LHASH_COMP + +/* Fourth: "doall_arg" functions */ +# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *, void *); +# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ + o_type *a = arg1; \ + a_type *b = arg2; \ + name##_doall_arg(a, b); } +# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG + + +# define LH_LOAD_MULT 256 + +int OPENSSL_LH_error(OPENSSL_LHASH *lh); +OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +void OPENSSL_LH_free(OPENSSL_LHASH *lh); +void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); +void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); +void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); +void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +unsigned long OPENSSL_LH_strhash(const char *c); +unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); +unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); +void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); + +# ifndef OPENSSL_NO_STDIO +void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define _LHASH OPENSSL_LHASH +# define LHASH_NODE OPENSSL_LH_NODE +# define lh_error OPENSSL_LH_error +# define lh_new OPENSSL_LH_new +# define lh_free OPENSSL_LH_free +# define lh_insert OPENSSL_LH_insert +# define lh_delete OPENSSL_LH_delete +# define lh_retrieve OPENSSL_LH_retrieve +# define lh_doall OPENSSL_LH_doall +# define lh_doall_arg OPENSSL_LH_doall_arg +# define lh_strhash OPENSSL_LH_strhash +# define lh_num_items OPENSSL_LH_num_items +# ifndef OPENSSL_NO_STDIO +# define lh_stats OPENSSL_LH_stats +# define lh_node_stats OPENSSL_LH_node_stats +# define lh_node_usage_stats OPENSSL_LH_node_usage_stats +# endif +# define lh_stats_bio OPENSSL_LH_stats_bio +# define lh_node_stats_bio OPENSSL_LH_node_stats_bio +# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio +# endif + +/* Type checking... */ + +# define LHASH_OF(type) struct lhash_st_##type + +# define DEFINE_LHASH_OF(type) \ + LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ + static ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ + { \ + return (LHASH_OF(type) *) \ + OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ + } \ + static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + { \ + OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + { \ + return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + { \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + } \ + static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ + void (*doall)(type *)) \ + { \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + } \ + LHASH_OF(type) + +#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ + int_implement_lhash_doall(type, argtype, const type) + +#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ + int_implement_lhash_doall(type, argtype, type) + +#define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ + void (*fn)(cbargtype *, argtype *), \ + argtype *arg) \ + { \ + OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ + } \ + LHASH_OF(type) + +DEFINE_LHASH_OF(OPENSSL_STRING); +# ifdef _MSC_VER +/* + * push and pop this warning: + * warning C4090: 'function': different 'const' qualifiers + */ +# pragma warning (push) +# pragma warning (disable: 4090) +# endif + +DEFINE_LHASH_OF(OPENSSL_CSTRING); + +# ifdef _MSC_VER +# pragma warning (pop) +# endif + +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_LH_new +# pragma weak OPENSSL_LH_free +# pragma weak OPENSSL_LH_insert +# pragma weak OPENSSL_LH_delete +# pragma weak OPENSSL_LH_retrieve +# pragma weak OPENSSL_LH_error +# pragma weak OPENSSL_LH_num_items +# pragma weak OPENSSL_LH_node_stats_bio +# pragma weak OPENSSL_LH_node_usage_stats_bio +# pragma weak OPENSSL_LH_stats_bio +# pragma weak OPENSSL_LH_get_down_load +# pragma weak OPENSSL_LH_set_down_load +# pragma weak OPENSSL_LH_doall +# pragma weak OPENSSL_LH_doall_arg +# endif /* __SUNPRO_C */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/md2.h b/thrid-party/openssl/openssl/md2.h new file mode 100644 index 000000000..7faf8e3d6 --- /dev/null +++ b/thrid-party/openssl/openssl/md2.h @@ -0,0 +1,44 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MD2_H +# define HEADER_MD2_H + +# include + +# ifndef OPENSSL_NO_MD2 +# include +# ifdef __cplusplus +extern "C" { +# endif + +typedef unsigned char MD2_INT; + +# define MD2_DIGEST_LENGTH 16 +# define MD2_BLOCK 16 + +typedef struct MD2state_st { + unsigned int num; + unsigned char data[MD2_BLOCK]; + MD2_INT cksm[MD2_BLOCK]; + MD2_INT state[MD2_BLOCK]; +} MD2_CTX; + +const char *MD2_options(void); +int MD2_Init(MD2_CTX *c); +int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len); +int MD2_Final(unsigned char *md, MD2_CTX *c); +unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/md4.h b/thrid-party/openssl/openssl/md4.h new file mode 100644 index 000000000..940e29db4 --- /dev/null +++ b/thrid-party/openssl/openssl/md4.h @@ -0,0 +1,51 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MD4_H +# define HEADER_MD4_H + +# include + +# ifndef OPENSSL_NO_MD4 +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD4_LONG has to be at least 32 bits wide. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ +# define MD4_LONG unsigned int + +# define MD4_CBLOCK 64 +# define MD4_LBLOCK (MD4_CBLOCK/4) +# define MD4_DIGEST_LENGTH 16 + +typedef struct MD4state_st { + MD4_LONG A, B, C, D; + MD4_LONG Nl, Nh; + MD4_LONG data[MD4_LBLOCK]; + unsigned int num; +} MD4_CTX; + +int MD4_Init(MD4_CTX *c); +int MD4_Update(MD4_CTX *c, const void *data, size_t len); +int MD4_Final(unsigned char *md, MD4_CTX *c); +unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); +void MD4_Transform(MD4_CTX *c, const unsigned char *b); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/md5.h b/thrid-party/openssl/openssl/md5.h new file mode 100644 index 000000000..2deb77211 --- /dev/null +++ b/thrid-party/openssl/openssl/md5.h @@ -0,0 +1,50 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MD5_H +# define HEADER_MD5_H + +# include + +# ifndef OPENSSL_NO_MD5 +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +/* + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! MD5_LONG has to be at least 32 bits wide. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ +# define MD5_LONG unsigned int + +# define MD5_CBLOCK 64 +# define MD5_LBLOCK (MD5_CBLOCK/4) +# define MD5_DIGEST_LENGTH 16 + +typedef struct MD5state_st { + MD5_LONG A, B, C, D; + MD5_LONG Nl, Nh; + MD5_LONG data[MD5_LBLOCK]; + unsigned int num; +} MD5_CTX; + +int MD5_Init(MD5_CTX *c); +int MD5_Update(MD5_CTX *c, const void *data, size_t len); +int MD5_Final(unsigned char *md, MD5_CTX *c); +unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); +void MD5_Transform(MD5_CTX *c, const unsigned char *b); +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/mdc2.h b/thrid-party/openssl/openssl/mdc2.h new file mode 100644 index 000000000..aabd2bfaa --- /dev/null +++ b/thrid-party/openssl/openssl/mdc2.h @@ -0,0 +1,42 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MDC2_H +# define HEADER_MDC2_H + +# include + +#ifndef OPENSSL_NO_MDC2 +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +# define MDC2_BLOCK 8 +# define MDC2_DIGEST_LENGTH 16 + +typedef struct mdc2_ctx_st { + unsigned int num; + unsigned char data[MDC2_BLOCK]; + DES_cblock h, hh; + int pad_type; /* either 1 or 2, default 1 */ +} MDC2_CTX; + +int MDC2_Init(MDC2_CTX *c); +int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); +int MDC2_Final(unsigned char *md, MDC2_CTX *c); +unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/modes.h b/thrid-party/openssl/openssl/modes.h new file mode 100644 index 000000000..d544f98d5 --- /dev/null +++ b/thrid-party/openssl/openssl/modes.h @@ -0,0 +1,208 @@ +/* + * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_MODES_H +# define HEADER_MODES_H + +# include + +# ifdef __cplusplus +extern "C" { +# endif +typedef void (*block128_f) (const unsigned char in[16], + unsigned char out[16], const void *key); + +typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int enc); + +typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16]); + +typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + const unsigned char ivec[16], + unsigned char cmac[16]); + +void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); +void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], block128_f block); + +void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], unsigned int *num, + block128_f block); + +void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], + unsigned char ecount_buf[16], + unsigned int *num, ctr128_f ctr); + +void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + block128_f block); + +void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); +void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, + size_t bits, const void *key, + unsigned char ivec[16], int *num, + int enc, block128_f block); + +size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, unsigned char ivec[16], + block128_f block); +size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); +size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, + unsigned char *out, size_t len, + const void *key, + unsigned char ivec[16], + block128_f block); +size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const void *key, + unsigned char ivec[16], cbc128_f cbc); + +typedef struct gcm128_context GCM128_CONTEXT; + +GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); +void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); +void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, + size_t len); +int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len); +int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, + const unsigned char *in, unsigned char *out, + size_t len, ctr128_f stream); +int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, + size_t len); +void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); + +typedef struct ccm128_context CCM128_CONTEXT; + +void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, + unsigned int M, unsigned int L, void *key, + block128_f block); +int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, + size_t nlen, size_t mlen); +void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, + size_t alen); +int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len); +int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, + unsigned char *out, size_t len, + ccm128_f stream); +size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); + +typedef struct xts128_context XTS128_CONTEXT; + +int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, + const unsigned char iv[16], + const unsigned char *inp, unsigned char *out, + size_t len, int enc); + +size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); +size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, + unsigned char *out, const unsigned char *in, + size_t inlen, block128_f block); +size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, + unsigned char *out, const unsigned char *in, + size_t inlen, block128_f block); + +# ifndef OPENSSL_NO_OCB +typedef struct ocb128_context OCB128_CONTEXT; + +typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, + size_t blocks, const void *key, + size_t start_block_num, + unsigned char offset_i[16], + const unsigned char L_[][16], + unsigned char checksum[16]); + +OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, + block128_f encrypt, block128_f decrypt, + ocb128_f stream); +int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, + block128_f encrypt, block128_f decrypt, + ocb128_f stream); +int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, + void *keyenc, void *keydec); +int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, + size_t len, size_t taglen); +int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, + size_t len); +int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, + unsigned char *out, size_t len); +int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, + unsigned char *out, size_t len); +int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, + size_t len); +int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); +void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); +# endif /* OPENSSL_NO_OCB */ + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/thrid-party/openssl/openssl/obj_mac.h b/thrid-party/openssl/openssl/obj_mac.h new file mode 100644 index 000000000..47dafe48d --- /dev/null +++ b/thrid-party/openssl/openssl/obj_mac.h @@ -0,0 +1,5198 @@ +/* + * WARNING: do not edit! + * Generated by crypto/objects/objects.pl + * + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define SN_undef "UNDEF" +#define LN_undef "undefined" +#define NID_undef 0 +#define OBJ_undef 0L + +#define SN_itu_t "ITU-T" +#define LN_itu_t "itu-t" +#define NID_itu_t 645 +#define OBJ_itu_t 0L + +#define NID_ccitt 404 +#define OBJ_ccitt OBJ_itu_t + +#define SN_iso "ISO" +#define LN_iso "iso" +#define NID_iso 181 +#define OBJ_iso 1L + +#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" +#define LN_joint_iso_itu_t "joint-iso-itu-t" +#define NID_joint_iso_itu_t 646 +#define OBJ_joint_iso_itu_t 2L + +#define NID_joint_iso_ccitt 393 +#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t + +#define SN_member_body "member-body" +#define LN_member_body "ISO Member Body" +#define NID_member_body 182 +#define OBJ_member_body OBJ_iso,2L + +#define SN_identified_organization "identified-organization" +#define NID_identified_organization 676 +#define OBJ_identified_organization OBJ_iso,3L + +#define SN_hmac_md5 "HMAC-MD5" +#define LN_hmac_md5 "hmac-md5" +#define NID_hmac_md5 780 +#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L + +#define SN_hmac_sha1 "HMAC-SHA1" +#define LN_hmac_sha1 "hmac-sha1" +#define NID_hmac_sha1 781 +#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L + +#define SN_x509ExtAdmission "x509ExtAdmission" +#define LN_x509ExtAdmission "Professional Information or basis for Admission" +#define NID_x509ExtAdmission 1093 +#define OBJ_x509ExtAdmission OBJ_identified_organization,36L,8L,3L,3L + +#define SN_certicom_arc "certicom-arc" +#define NID_certicom_arc 677 +#define OBJ_certicom_arc OBJ_identified_organization,132L + +#define SN_ieee "ieee" +#define NID_ieee 1170 +#define OBJ_ieee OBJ_identified_organization,111L + +#define SN_ieee_siswg "ieee-siswg" +#define LN_ieee_siswg "IEEE Security in Storage Working Group" +#define NID_ieee_siswg 1171 +#define OBJ_ieee_siswg OBJ_ieee,2L,1619L + +#define SN_international_organizations "international-organizations" +#define LN_international_organizations "International Organizations" +#define NID_international_organizations 647 +#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L + +#define SN_wap "wap" +#define NID_wap 678 +#define OBJ_wap OBJ_international_organizations,43L + +#define SN_wap_wsg "wap-wsg" +#define NID_wap_wsg 679 +#define OBJ_wap_wsg OBJ_wap,1L + +#define SN_selected_attribute_types "selected-attribute-types" +#define LN_selected_attribute_types "Selected Attribute Types" +#define NID_selected_attribute_types 394 +#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L + +#define SN_clearance "clearance" +#define NID_clearance 395 +#define OBJ_clearance OBJ_selected_attribute_types,55L + +#define SN_ISO_US "ISO-US" +#define LN_ISO_US "ISO US Member Body" +#define NID_ISO_US 183 +#define OBJ_ISO_US OBJ_member_body,840L + +#define SN_X9_57 "X9-57" +#define LN_X9_57 "X9.57" +#define NID_X9_57 184 +#define OBJ_X9_57 OBJ_ISO_US,10040L + +#define SN_X9cm "X9cm" +#define LN_X9cm "X9.57 CM ?" +#define NID_X9cm 185 +#define OBJ_X9cm OBJ_X9_57,4L + +#define SN_ISO_CN "ISO-CN" +#define LN_ISO_CN "ISO CN Member Body" +#define NID_ISO_CN 1140 +#define OBJ_ISO_CN OBJ_member_body,156L + +#define SN_oscca "oscca" +#define NID_oscca 1141 +#define OBJ_oscca OBJ_ISO_CN,10197L + +#define SN_sm_scheme "sm-scheme" +#define NID_sm_scheme 1142 +#define OBJ_sm_scheme OBJ_oscca,1L + +#define SN_dsa "DSA" +#define LN_dsa "dsaEncryption" +#define NID_dsa 116 +#define OBJ_dsa OBJ_X9cm,1L + +#define SN_dsaWithSHA1 "DSA-SHA1" +#define LN_dsaWithSHA1 "dsaWithSHA1" +#define NID_dsaWithSHA1 113 +#define OBJ_dsaWithSHA1 OBJ_X9cm,3L + +#define SN_ansi_X9_62 "ansi-X9-62" +#define LN_ansi_X9_62 "ANSI X9.62" +#define NID_ansi_X9_62 405 +#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L + +#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L + +#define SN_X9_62_prime_field "prime-field" +#define NID_X9_62_prime_field 406 +#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L + +#define SN_X9_62_characteristic_two_field "characteristic-two-field" +#define NID_X9_62_characteristic_two_field 407 +#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L + +#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" +#define NID_X9_62_id_characteristic_two_basis 680 +#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L + +#define SN_X9_62_onBasis "onBasis" +#define NID_X9_62_onBasis 681 +#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L + +#define SN_X9_62_tpBasis "tpBasis" +#define NID_X9_62_tpBasis 682 +#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L + +#define SN_X9_62_ppBasis "ppBasis" +#define NID_X9_62_ppBasis 683 +#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L + +#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L + +#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" +#define NID_X9_62_id_ecPublicKey 408 +#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L + +#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L + +#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L + +#define SN_X9_62_c2pnb163v1 "c2pnb163v1" +#define NID_X9_62_c2pnb163v1 684 +#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L + +#define SN_X9_62_c2pnb163v2 "c2pnb163v2" +#define NID_X9_62_c2pnb163v2 685 +#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L + +#define SN_X9_62_c2pnb163v3 "c2pnb163v3" +#define NID_X9_62_c2pnb163v3 686 +#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L + +#define SN_X9_62_c2pnb176v1 "c2pnb176v1" +#define NID_X9_62_c2pnb176v1 687 +#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L + +#define SN_X9_62_c2tnb191v1 "c2tnb191v1" +#define NID_X9_62_c2tnb191v1 688 +#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L + +#define SN_X9_62_c2tnb191v2 "c2tnb191v2" +#define NID_X9_62_c2tnb191v2 689 +#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L + +#define SN_X9_62_c2tnb191v3 "c2tnb191v3" +#define NID_X9_62_c2tnb191v3 690 +#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L + +#define SN_X9_62_c2onb191v4 "c2onb191v4" +#define NID_X9_62_c2onb191v4 691 +#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L + +#define SN_X9_62_c2onb191v5 "c2onb191v5" +#define NID_X9_62_c2onb191v5 692 +#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L + +#define SN_X9_62_c2pnb208w1 "c2pnb208w1" +#define NID_X9_62_c2pnb208w1 693 +#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L + +#define SN_X9_62_c2tnb239v1 "c2tnb239v1" +#define NID_X9_62_c2tnb239v1 694 +#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L + +#define SN_X9_62_c2tnb239v2 "c2tnb239v2" +#define NID_X9_62_c2tnb239v2 695 +#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L + +#define SN_X9_62_c2tnb239v3 "c2tnb239v3" +#define NID_X9_62_c2tnb239v3 696 +#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L + +#define SN_X9_62_c2onb239v4 "c2onb239v4" +#define NID_X9_62_c2onb239v4 697 +#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L + +#define SN_X9_62_c2onb239v5 "c2onb239v5" +#define NID_X9_62_c2onb239v5 698 +#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L + +#define SN_X9_62_c2pnb272w1 "c2pnb272w1" +#define NID_X9_62_c2pnb272w1 699 +#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L + +#define SN_X9_62_c2pnb304w1 "c2pnb304w1" +#define NID_X9_62_c2pnb304w1 700 +#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L + +#define SN_X9_62_c2tnb359v1 "c2tnb359v1" +#define NID_X9_62_c2tnb359v1 701 +#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L + +#define SN_X9_62_c2pnb368w1 "c2pnb368w1" +#define NID_X9_62_c2pnb368w1 702 +#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L + +#define SN_X9_62_c2tnb431r1 "c2tnb431r1" +#define NID_X9_62_c2tnb431r1 703 +#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L + +#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L + +#define SN_X9_62_prime192v1 "prime192v1" +#define NID_X9_62_prime192v1 409 +#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L + +#define SN_X9_62_prime192v2 "prime192v2" +#define NID_X9_62_prime192v2 410 +#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L + +#define SN_X9_62_prime192v3 "prime192v3" +#define NID_X9_62_prime192v3 411 +#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L + +#define SN_X9_62_prime239v1 "prime239v1" +#define NID_X9_62_prime239v1 412 +#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L + +#define SN_X9_62_prime239v2 "prime239v2" +#define NID_X9_62_prime239v2 413 +#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L + +#define SN_X9_62_prime239v3 "prime239v3" +#define NID_X9_62_prime239v3 414 +#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L + +#define SN_X9_62_prime256v1 "prime256v1" +#define NID_X9_62_prime256v1 415 +#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L + +#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L + +#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" +#define NID_ecdsa_with_SHA1 416 +#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L + +#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" +#define NID_ecdsa_with_Recommended 791 +#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L + +#define SN_ecdsa_with_Specified "ecdsa-with-Specified" +#define NID_ecdsa_with_Specified 792 +#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L + +#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" +#define NID_ecdsa_with_SHA224 793 +#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L + +#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" +#define NID_ecdsa_with_SHA256 794 +#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L + +#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" +#define NID_ecdsa_with_SHA384 795 +#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L + +#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" +#define NID_ecdsa_with_SHA512 796 +#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L + +#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L + +#define SN_secp112r1 "secp112r1" +#define NID_secp112r1 704 +#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L + +#define SN_secp112r2 "secp112r2" +#define NID_secp112r2 705 +#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L + +#define SN_secp128r1 "secp128r1" +#define NID_secp128r1 706 +#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L + +#define SN_secp128r2 "secp128r2" +#define NID_secp128r2 707 +#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L + +#define SN_secp160k1 "secp160k1" +#define NID_secp160k1 708 +#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L + +#define SN_secp160r1 "secp160r1" +#define NID_secp160r1 709 +#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L + +#define SN_secp160r2 "secp160r2" +#define NID_secp160r2 710 +#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L + +#define SN_secp192k1 "secp192k1" +#define NID_secp192k1 711 +#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L + +#define SN_secp224k1 "secp224k1" +#define NID_secp224k1 712 +#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L + +#define SN_secp224r1 "secp224r1" +#define NID_secp224r1 713 +#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L + +#define SN_secp256k1 "secp256k1" +#define NID_secp256k1 714 +#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L + +#define SN_secp384r1 "secp384r1" +#define NID_secp384r1 715 +#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L + +#define SN_secp521r1 "secp521r1" +#define NID_secp521r1 716 +#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L + +#define SN_sect113r1 "sect113r1" +#define NID_sect113r1 717 +#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L + +#define SN_sect113r2 "sect113r2" +#define NID_sect113r2 718 +#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L + +#define SN_sect131r1 "sect131r1" +#define NID_sect131r1 719 +#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L + +#define SN_sect131r2 "sect131r2" +#define NID_sect131r2 720 +#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L + +#define SN_sect163k1 "sect163k1" +#define NID_sect163k1 721 +#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L + +#define SN_sect163r1 "sect163r1" +#define NID_sect163r1 722 +#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L + +#define SN_sect163r2 "sect163r2" +#define NID_sect163r2 723 +#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L + +#define SN_sect193r1 "sect193r1" +#define NID_sect193r1 724 +#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L + +#define SN_sect193r2 "sect193r2" +#define NID_sect193r2 725 +#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L + +#define SN_sect233k1 "sect233k1" +#define NID_sect233k1 726 +#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L + +#define SN_sect233r1 "sect233r1" +#define NID_sect233r1 727 +#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L + +#define SN_sect239k1 "sect239k1" +#define NID_sect239k1 728 +#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L + +#define SN_sect283k1 "sect283k1" +#define NID_sect283k1 729 +#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L + +#define SN_sect283r1 "sect283r1" +#define NID_sect283r1 730 +#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L + +#define SN_sect409k1 "sect409k1" +#define NID_sect409k1 731 +#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L + +#define SN_sect409r1 "sect409r1" +#define NID_sect409r1 732 +#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L + +#define SN_sect571k1 "sect571k1" +#define NID_sect571k1 733 +#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L + +#define SN_sect571r1 "sect571r1" +#define NID_sect571r1 734 +#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L + +#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L + +#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" +#define NID_wap_wsg_idm_ecid_wtls1 735 +#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L + +#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" +#define NID_wap_wsg_idm_ecid_wtls3 736 +#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L + +#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" +#define NID_wap_wsg_idm_ecid_wtls4 737 +#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L + +#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" +#define NID_wap_wsg_idm_ecid_wtls5 738 +#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L + +#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" +#define NID_wap_wsg_idm_ecid_wtls6 739 +#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L + +#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" +#define NID_wap_wsg_idm_ecid_wtls7 740 +#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L + +#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" +#define NID_wap_wsg_idm_ecid_wtls8 741 +#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L + +#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" +#define NID_wap_wsg_idm_ecid_wtls9 742 +#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L + +#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" +#define NID_wap_wsg_idm_ecid_wtls10 743 +#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L + +#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" +#define NID_wap_wsg_idm_ecid_wtls11 744 +#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L + +#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" +#define NID_wap_wsg_idm_ecid_wtls12 745 +#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L + +#define SN_cast5_cbc "CAST5-CBC" +#define LN_cast5_cbc "cast5-cbc" +#define NID_cast5_cbc 108 +#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L + +#define SN_cast5_ecb "CAST5-ECB" +#define LN_cast5_ecb "cast5-ecb" +#define NID_cast5_ecb 109 + +#define SN_cast5_cfb64 "CAST5-CFB" +#define LN_cast5_cfb64 "cast5-cfb" +#define NID_cast5_cfb64 110 + +#define SN_cast5_ofb64 "CAST5-OFB" +#define LN_cast5_ofb64 "cast5-ofb" +#define NID_cast5_ofb64 111 + +#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" +#define NID_pbeWithMD5AndCast5_CBC 112 +#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L + +#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" +#define LN_id_PasswordBasedMAC "password based MAC" +#define NID_id_PasswordBasedMAC 782 +#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L + +#define SN_id_DHBasedMac "id-DHBasedMac" +#define LN_id_DHBasedMac "Diffie-Hellman based MAC" +#define NID_id_DHBasedMac 783 +#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L + +#define SN_rsadsi "rsadsi" +#define LN_rsadsi "RSA Data Security, Inc." +#define NID_rsadsi 1 +#define OBJ_rsadsi OBJ_ISO_US,113549L + +#define SN_pkcs "pkcs" +#define LN_pkcs "RSA Data Security, Inc. PKCS" +#define NID_pkcs 2 +#define OBJ_pkcs OBJ_rsadsi,1L + +#define SN_pkcs1 "pkcs1" +#define NID_pkcs1 186 +#define OBJ_pkcs1 OBJ_pkcs,1L + +#define LN_rsaEncryption "rsaEncryption" +#define NID_rsaEncryption 6 +#define OBJ_rsaEncryption OBJ_pkcs1,1L + +#define SN_md2WithRSAEncryption "RSA-MD2" +#define LN_md2WithRSAEncryption "md2WithRSAEncryption" +#define NID_md2WithRSAEncryption 7 +#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L + +#define SN_md4WithRSAEncryption "RSA-MD4" +#define LN_md4WithRSAEncryption "md4WithRSAEncryption" +#define NID_md4WithRSAEncryption 396 +#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L + +#define SN_md5WithRSAEncryption "RSA-MD5" +#define LN_md5WithRSAEncryption "md5WithRSAEncryption" +#define NID_md5WithRSAEncryption 8 +#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L + +#define SN_sha1WithRSAEncryption "RSA-SHA1" +#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" +#define NID_sha1WithRSAEncryption 65 +#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L + +#define SN_rsaesOaep "RSAES-OAEP" +#define LN_rsaesOaep "rsaesOaep" +#define NID_rsaesOaep 919 +#define OBJ_rsaesOaep OBJ_pkcs1,7L + +#define SN_mgf1 "MGF1" +#define LN_mgf1 "mgf1" +#define NID_mgf1 911 +#define OBJ_mgf1 OBJ_pkcs1,8L + +#define SN_pSpecified "PSPECIFIED" +#define LN_pSpecified "pSpecified" +#define NID_pSpecified 935 +#define OBJ_pSpecified OBJ_pkcs1,9L + +#define SN_rsassaPss "RSASSA-PSS" +#define LN_rsassaPss "rsassaPss" +#define NID_rsassaPss 912 +#define OBJ_rsassaPss OBJ_pkcs1,10L + +#define SN_sha256WithRSAEncryption "RSA-SHA256" +#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" +#define NID_sha256WithRSAEncryption 668 +#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L + +#define SN_sha384WithRSAEncryption "RSA-SHA384" +#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" +#define NID_sha384WithRSAEncryption 669 +#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L + +#define SN_sha512WithRSAEncryption "RSA-SHA512" +#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" +#define NID_sha512WithRSAEncryption 670 +#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L + +#define SN_sha224WithRSAEncryption "RSA-SHA224" +#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" +#define NID_sha224WithRSAEncryption 671 +#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L + +#define SN_sha512_224WithRSAEncryption "RSA-SHA512/224" +#define LN_sha512_224WithRSAEncryption "sha512-224WithRSAEncryption" +#define NID_sha512_224WithRSAEncryption 1145 +#define OBJ_sha512_224WithRSAEncryption OBJ_pkcs1,15L + +#define SN_sha512_256WithRSAEncryption "RSA-SHA512/256" +#define LN_sha512_256WithRSAEncryption "sha512-256WithRSAEncryption" +#define NID_sha512_256WithRSAEncryption 1146 +#define OBJ_sha512_256WithRSAEncryption OBJ_pkcs1,16L + +#define SN_pkcs3 "pkcs3" +#define NID_pkcs3 27 +#define OBJ_pkcs3 OBJ_pkcs,3L + +#define LN_dhKeyAgreement "dhKeyAgreement" +#define NID_dhKeyAgreement 28 +#define OBJ_dhKeyAgreement OBJ_pkcs3,1L + +#define SN_pkcs5 "pkcs5" +#define NID_pkcs5 187 +#define OBJ_pkcs5 OBJ_pkcs,5L + +#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" +#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" +#define NID_pbeWithMD2AndDES_CBC 9 +#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L + +#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" +#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" +#define NID_pbeWithMD5AndDES_CBC 10 +#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L + +#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" +#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" +#define NID_pbeWithMD2AndRC2_CBC 168 +#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L + +#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" +#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" +#define NID_pbeWithMD5AndRC2_CBC 169 +#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L + +#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" +#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" +#define NID_pbeWithSHA1AndDES_CBC 170 +#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L + +#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" +#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" +#define NID_pbeWithSHA1AndRC2_CBC 68 +#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L + +#define LN_id_pbkdf2 "PBKDF2" +#define NID_id_pbkdf2 69 +#define OBJ_id_pbkdf2 OBJ_pkcs5,12L + +#define LN_pbes2 "PBES2" +#define NID_pbes2 161 +#define OBJ_pbes2 OBJ_pkcs5,13L + +#define LN_pbmac1 "PBMAC1" +#define NID_pbmac1 162 +#define OBJ_pbmac1 OBJ_pkcs5,14L + +#define SN_pkcs7 "pkcs7" +#define NID_pkcs7 20 +#define OBJ_pkcs7 OBJ_pkcs,7L + +#define LN_pkcs7_data "pkcs7-data" +#define NID_pkcs7_data 21 +#define OBJ_pkcs7_data OBJ_pkcs7,1L + +#define LN_pkcs7_signed "pkcs7-signedData" +#define NID_pkcs7_signed 22 +#define OBJ_pkcs7_signed OBJ_pkcs7,2L + +#define LN_pkcs7_enveloped "pkcs7-envelopedData" +#define NID_pkcs7_enveloped 23 +#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L + +#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" +#define NID_pkcs7_signedAndEnveloped 24 +#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L + +#define LN_pkcs7_digest "pkcs7-digestData" +#define NID_pkcs7_digest 25 +#define OBJ_pkcs7_digest OBJ_pkcs7,5L + +#define LN_pkcs7_encrypted "pkcs7-encryptedData" +#define NID_pkcs7_encrypted 26 +#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L + +#define SN_pkcs9 "pkcs9" +#define NID_pkcs9 47 +#define OBJ_pkcs9 OBJ_pkcs,9L + +#define LN_pkcs9_emailAddress "emailAddress" +#define NID_pkcs9_emailAddress 48 +#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L + +#define LN_pkcs9_unstructuredName "unstructuredName" +#define NID_pkcs9_unstructuredName 49 +#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L + +#define LN_pkcs9_contentType "contentType" +#define NID_pkcs9_contentType 50 +#define OBJ_pkcs9_contentType OBJ_pkcs9,3L + +#define LN_pkcs9_messageDigest "messageDigest" +#define NID_pkcs9_messageDigest 51 +#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L + +#define LN_pkcs9_signingTime "signingTime" +#define NID_pkcs9_signingTime 52 +#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L + +#define LN_pkcs9_countersignature "countersignature" +#define NID_pkcs9_countersignature 53 +#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L + +#define LN_pkcs9_challengePassword "challengePassword" +#define NID_pkcs9_challengePassword 54 +#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L + +#define LN_pkcs9_unstructuredAddress "unstructuredAddress" +#define NID_pkcs9_unstructuredAddress 55 +#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L + +#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" +#define NID_pkcs9_extCertAttributes 56 +#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L + +#define SN_ext_req "extReq" +#define LN_ext_req "Extension Request" +#define NID_ext_req 172 +#define OBJ_ext_req OBJ_pkcs9,14L + +#define SN_SMIMECapabilities "SMIME-CAPS" +#define LN_SMIMECapabilities "S/MIME Capabilities" +#define NID_SMIMECapabilities 167 +#define OBJ_SMIMECapabilities OBJ_pkcs9,15L + +#define SN_SMIME "SMIME" +#define LN_SMIME "S/MIME" +#define NID_SMIME 188 +#define OBJ_SMIME OBJ_pkcs9,16L + +#define SN_id_smime_mod "id-smime-mod" +#define NID_id_smime_mod 189 +#define OBJ_id_smime_mod OBJ_SMIME,0L + +#define SN_id_smime_ct "id-smime-ct" +#define NID_id_smime_ct 190 +#define OBJ_id_smime_ct OBJ_SMIME,1L + +#define SN_id_smime_aa "id-smime-aa" +#define NID_id_smime_aa 191 +#define OBJ_id_smime_aa OBJ_SMIME,2L + +#define SN_id_smime_alg "id-smime-alg" +#define NID_id_smime_alg 192 +#define OBJ_id_smime_alg OBJ_SMIME,3L + +#define SN_id_smime_cd "id-smime-cd" +#define NID_id_smime_cd 193 +#define OBJ_id_smime_cd OBJ_SMIME,4L + +#define SN_id_smime_spq "id-smime-spq" +#define NID_id_smime_spq 194 +#define OBJ_id_smime_spq OBJ_SMIME,5L + +#define SN_id_smime_cti "id-smime-cti" +#define NID_id_smime_cti 195 +#define OBJ_id_smime_cti OBJ_SMIME,6L + +#define SN_id_smime_mod_cms "id-smime-mod-cms" +#define NID_id_smime_mod_cms 196 +#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L + +#define SN_id_smime_mod_ess "id-smime-mod-ess" +#define NID_id_smime_mod_ess 197 +#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L + +#define SN_id_smime_mod_oid "id-smime-mod-oid" +#define NID_id_smime_mod_oid 198 +#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L + +#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" +#define NID_id_smime_mod_msg_v3 199 +#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L + +#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" +#define NID_id_smime_mod_ets_eSignature_88 200 +#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L + +#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" +#define NID_id_smime_mod_ets_eSignature_97 201 +#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L + +#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" +#define NID_id_smime_mod_ets_eSigPolicy_88 202 +#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L + +#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" +#define NID_id_smime_mod_ets_eSigPolicy_97 203 +#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L + +#define SN_id_smime_ct_receipt "id-smime-ct-receipt" +#define NID_id_smime_ct_receipt 204 +#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L + +#define SN_id_smime_ct_authData "id-smime-ct-authData" +#define NID_id_smime_ct_authData 205 +#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L + +#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" +#define NID_id_smime_ct_publishCert 206 +#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L + +#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" +#define NID_id_smime_ct_TSTInfo 207 +#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L + +#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" +#define NID_id_smime_ct_TDTInfo 208 +#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L + +#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" +#define NID_id_smime_ct_contentInfo 209 +#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L + +#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" +#define NID_id_smime_ct_DVCSRequestData 210 +#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L + +#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" +#define NID_id_smime_ct_DVCSResponseData 211 +#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L + +#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" +#define NID_id_smime_ct_compressedData 786 +#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L + +#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" +#define NID_id_smime_ct_contentCollection 1058 +#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L + +#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" +#define NID_id_smime_ct_authEnvelopedData 1059 +#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L + +#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" +#define NID_id_ct_asciiTextWithCRLF 787 +#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L + +#define SN_id_ct_xml "id-ct-xml" +#define NID_id_ct_xml 1060 +#define OBJ_id_ct_xml OBJ_id_smime_ct,28L + +#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" +#define NID_id_smime_aa_receiptRequest 212 +#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L + +#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" +#define NID_id_smime_aa_securityLabel 213 +#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L + +#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" +#define NID_id_smime_aa_mlExpandHistory 214 +#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L + +#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" +#define NID_id_smime_aa_contentHint 215 +#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L + +#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" +#define NID_id_smime_aa_msgSigDigest 216 +#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L + +#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" +#define NID_id_smime_aa_encapContentType 217 +#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L + +#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" +#define NID_id_smime_aa_contentIdentifier 218 +#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L + +#define SN_id_smime_aa_macValue "id-smime-aa-macValue" +#define NID_id_smime_aa_macValue 219 +#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L + +#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" +#define NID_id_smime_aa_equivalentLabels 220 +#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L + +#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" +#define NID_id_smime_aa_contentReference 221 +#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L + +#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" +#define NID_id_smime_aa_encrypKeyPref 222 +#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L + +#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" +#define NID_id_smime_aa_signingCertificate 223 +#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L + +#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" +#define NID_id_smime_aa_smimeEncryptCerts 224 +#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L + +#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" +#define NID_id_smime_aa_timeStampToken 225 +#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L + +#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" +#define NID_id_smime_aa_ets_sigPolicyId 226 +#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L + +#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" +#define NID_id_smime_aa_ets_commitmentType 227 +#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L + +#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" +#define NID_id_smime_aa_ets_signerLocation 228 +#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L + +#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" +#define NID_id_smime_aa_ets_signerAttr 229 +#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L + +#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" +#define NID_id_smime_aa_ets_otherSigCert 230 +#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L + +#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" +#define NID_id_smime_aa_ets_contentTimestamp 231 +#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L + +#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" +#define NID_id_smime_aa_ets_CertificateRefs 232 +#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L + +#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" +#define NID_id_smime_aa_ets_RevocationRefs 233 +#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L + +#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" +#define NID_id_smime_aa_ets_certValues 234 +#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L + +#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" +#define NID_id_smime_aa_ets_revocationValues 235 +#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L + +#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" +#define NID_id_smime_aa_ets_escTimeStamp 236 +#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L + +#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" +#define NID_id_smime_aa_ets_certCRLTimestamp 237 +#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L + +#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" +#define NID_id_smime_aa_ets_archiveTimeStamp 238 +#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L + +#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" +#define NID_id_smime_aa_signatureType 239 +#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L + +#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" +#define NID_id_smime_aa_dvcs_dvc 240 +#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L + +#define SN_id_smime_aa_signingCertificateV2 "id-smime-aa-signingCertificateV2" +#define NID_id_smime_aa_signingCertificateV2 1086 +#define OBJ_id_smime_aa_signingCertificateV2 OBJ_id_smime_aa,47L + +#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" +#define NID_id_smime_alg_ESDHwith3DES 241 +#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L + +#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" +#define NID_id_smime_alg_ESDHwithRC2 242 +#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L + +#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" +#define NID_id_smime_alg_3DESwrap 243 +#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L + +#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" +#define NID_id_smime_alg_RC2wrap 244 +#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L + +#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" +#define NID_id_smime_alg_ESDH 245 +#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L + +#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" +#define NID_id_smime_alg_CMS3DESwrap 246 +#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L + +#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" +#define NID_id_smime_alg_CMSRC2wrap 247 +#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L + +#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" +#define NID_id_alg_PWRI_KEK 893 +#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L + +#define SN_id_smime_cd_ldap "id-smime-cd-ldap" +#define NID_id_smime_cd_ldap 248 +#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L + +#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" +#define NID_id_smime_spq_ets_sqt_uri 249 +#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L + +#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" +#define NID_id_smime_spq_ets_sqt_unotice 250 +#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L + +#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" +#define NID_id_smime_cti_ets_proofOfOrigin 251 +#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L + +#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" +#define NID_id_smime_cti_ets_proofOfReceipt 252 +#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L + +#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" +#define NID_id_smime_cti_ets_proofOfDelivery 253 +#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L + +#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" +#define NID_id_smime_cti_ets_proofOfSender 254 +#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L + +#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" +#define NID_id_smime_cti_ets_proofOfApproval 255 +#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L + +#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" +#define NID_id_smime_cti_ets_proofOfCreation 256 +#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L + +#define LN_friendlyName "friendlyName" +#define NID_friendlyName 156 +#define OBJ_friendlyName OBJ_pkcs9,20L + +#define LN_localKeyID "localKeyID" +#define NID_localKeyID 157 +#define OBJ_localKeyID OBJ_pkcs9,21L + +#define SN_ms_csp_name "CSPName" +#define LN_ms_csp_name "Microsoft CSP Name" +#define NID_ms_csp_name 417 +#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L + +#define SN_LocalKeySet "LocalKeySet" +#define LN_LocalKeySet "Microsoft Local Key set" +#define NID_LocalKeySet 856 +#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L + +#define OBJ_certTypes OBJ_pkcs9,22L + +#define LN_x509Certificate "x509Certificate" +#define NID_x509Certificate 158 +#define OBJ_x509Certificate OBJ_certTypes,1L + +#define LN_sdsiCertificate "sdsiCertificate" +#define NID_sdsiCertificate 159 +#define OBJ_sdsiCertificate OBJ_certTypes,2L + +#define OBJ_crlTypes OBJ_pkcs9,23L + +#define LN_x509Crl "x509Crl" +#define NID_x509Crl 160 +#define OBJ_x509Crl OBJ_crlTypes,1L + +#define OBJ_pkcs12 OBJ_pkcs,12L + +#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L + +#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" +#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" +#define NID_pbe_WithSHA1And128BitRC4 144 +#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L + +#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" +#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" +#define NID_pbe_WithSHA1And40BitRC4 145 +#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L + +#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" +#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 +#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L + +#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" +#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" +#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 +#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L + +#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" +#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" +#define NID_pbe_WithSHA1And128BitRC2_CBC 148 +#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L + +#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" +#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" +#define NID_pbe_WithSHA1And40BitRC2_CBC 149 +#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L + +#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L + +#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L + +#define LN_keyBag "keyBag" +#define NID_keyBag 150 +#define OBJ_keyBag OBJ_pkcs12_BagIds,1L + +#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" +#define NID_pkcs8ShroudedKeyBag 151 +#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L + +#define LN_certBag "certBag" +#define NID_certBag 152 +#define OBJ_certBag OBJ_pkcs12_BagIds,3L + +#define LN_crlBag "crlBag" +#define NID_crlBag 153 +#define OBJ_crlBag OBJ_pkcs12_BagIds,4L + +#define LN_secretBag "secretBag" +#define NID_secretBag 154 +#define OBJ_secretBag OBJ_pkcs12_BagIds,5L + +#define LN_safeContentsBag "safeContentsBag" +#define NID_safeContentsBag 155 +#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L + +#define SN_md2 "MD2" +#define LN_md2 "md2" +#define NID_md2 3 +#define OBJ_md2 OBJ_rsadsi,2L,2L + +#define SN_md4 "MD4" +#define LN_md4 "md4" +#define NID_md4 257 +#define OBJ_md4 OBJ_rsadsi,2L,4L + +#define SN_md5 "MD5" +#define LN_md5 "md5" +#define NID_md5 4 +#define OBJ_md5 OBJ_rsadsi,2L,5L + +#define SN_md5_sha1 "MD5-SHA1" +#define LN_md5_sha1 "md5-sha1" +#define NID_md5_sha1 114 + +#define LN_hmacWithMD5 "hmacWithMD5" +#define NID_hmacWithMD5 797 +#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L + +#define LN_hmacWithSHA1 "hmacWithSHA1" +#define NID_hmacWithSHA1 163 +#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L + +#define SN_sm2 "SM2" +#define LN_sm2 "sm2" +#define NID_sm2 1172 +#define OBJ_sm2 OBJ_sm_scheme,301L + +#define SN_sm3 "SM3" +#define LN_sm3 "sm3" +#define NID_sm3 1143 +#define OBJ_sm3 OBJ_sm_scheme,401L + +#define SN_sm3WithRSAEncryption "RSA-SM3" +#define LN_sm3WithRSAEncryption "sm3WithRSAEncryption" +#define NID_sm3WithRSAEncryption 1144 +#define OBJ_sm3WithRSAEncryption OBJ_sm_scheme,504L + +#define LN_hmacWithSHA224 "hmacWithSHA224" +#define NID_hmacWithSHA224 798 +#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L + +#define LN_hmacWithSHA256 "hmacWithSHA256" +#define NID_hmacWithSHA256 799 +#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L + +#define LN_hmacWithSHA384 "hmacWithSHA384" +#define NID_hmacWithSHA384 800 +#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L + +#define LN_hmacWithSHA512 "hmacWithSHA512" +#define NID_hmacWithSHA512 801 +#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L + +#define LN_hmacWithSHA512_224 "hmacWithSHA512-224" +#define NID_hmacWithSHA512_224 1193 +#define OBJ_hmacWithSHA512_224 OBJ_rsadsi,2L,12L + +#define LN_hmacWithSHA512_256 "hmacWithSHA512-256" +#define NID_hmacWithSHA512_256 1194 +#define OBJ_hmacWithSHA512_256 OBJ_rsadsi,2L,13L + +#define SN_rc2_cbc "RC2-CBC" +#define LN_rc2_cbc "rc2-cbc" +#define NID_rc2_cbc 37 +#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L + +#define SN_rc2_ecb "RC2-ECB" +#define LN_rc2_ecb "rc2-ecb" +#define NID_rc2_ecb 38 + +#define SN_rc2_cfb64 "RC2-CFB" +#define LN_rc2_cfb64 "rc2-cfb" +#define NID_rc2_cfb64 39 + +#define SN_rc2_ofb64 "RC2-OFB" +#define LN_rc2_ofb64 "rc2-ofb" +#define NID_rc2_ofb64 40 + +#define SN_rc2_40_cbc "RC2-40-CBC" +#define LN_rc2_40_cbc "rc2-40-cbc" +#define NID_rc2_40_cbc 98 + +#define SN_rc2_64_cbc "RC2-64-CBC" +#define LN_rc2_64_cbc "rc2-64-cbc" +#define NID_rc2_64_cbc 166 + +#define SN_rc4 "RC4" +#define LN_rc4 "rc4" +#define NID_rc4 5 +#define OBJ_rc4 OBJ_rsadsi,3L,4L + +#define SN_rc4_40 "RC4-40" +#define LN_rc4_40 "rc4-40" +#define NID_rc4_40 97 + +#define SN_des_ede3_cbc "DES-EDE3-CBC" +#define LN_des_ede3_cbc "des-ede3-cbc" +#define NID_des_ede3_cbc 44 +#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L + +#define SN_rc5_cbc "RC5-CBC" +#define LN_rc5_cbc "rc5-cbc" +#define NID_rc5_cbc 120 +#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L + +#define SN_rc5_ecb "RC5-ECB" +#define LN_rc5_ecb "rc5-ecb" +#define NID_rc5_ecb 121 + +#define SN_rc5_cfb64 "RC5-CFB" +#define LN_rc5_cfb64 "rc5-cfb" +#define NID_rc5_cfb64 122 + +#define SN_rc5_ofb64 "RC5-OFB" +#define LN_rc5_ofb64 "rc5-ofb" +#define NID_rc5_ofb64 123 + +#define SN_ms_ext_req "msExtReq" +#define LN_ms_ext_req "Microsoft Extension Request" +#define NID_ms_ext_req 171 +#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L + +#define SN_ms_code_ind "msCodeInd" +#define LN_ms_code_ind "Microsoft Individual Code Signing" +#define NID_ms_code_ind 134 +#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L + +#define SN_ms_code_com "msCodeCom" +#define LN_ms_code_com "Microsoft Commercial Code Signing" +#define NID_ms_code_com 135 +#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L + +#define SN_ms_ctl_sign "msCTLSign" +#define LN_ms_ctl_sign "Microsoft Trust List Signing" +#define NID_ms_ctl_sign 136 +#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L + +#define SN_ms_sgc "msSGC" +#define LN_ms_sgc "Microsoft Server Gated Crypto" +#define NID_ms_sgc 137 +#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L + +#define SN_ms_efs "msEFS" +#define LN_ms_efs "Microsoft Encrypted File System" +#define NID_ms_efs 138 +#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L + +#define SN_ms_smartcard_login "msSmartcardLogin" +#define LN_ms_smartcard_login "Microsoft Smartcardlogin" +#define NID_ms_smartcard_login 648 +#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L + +#define SN_ms_upn "msUPN" +#define LN_ms_upn "Microsoft Universal Principal Name" +#define NID_ms_upn 649 +#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L + +#define SN_idea_cbc "IDEA-CBC" +#define LN_idea_cbc "idea-cbc" +#define NID_idea_cbc 34 +#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L + +#define SN_idea_ecb "IDEA-ECB" +#define LN_idea_ecb "idea-ecb" +#define NID_idea_ecb 36 + +#define SN_idea_cfb64 "IDEA-CFB" +#define LN_idea_cfb64 "idea-cfb" +#define NID_idea_cfb64 35 + +#define SN_idea_ofb64 "IDEA-OFB" +#define LN_idea_ofb64 "idea-ofb" +#define NID_idea_ofb64 46 + +#define SN_bf_cbc "BF-CBC" +#define LN_bf_cbc "bf-cbc" +#define NID_bf_cbc 91 +#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L + +#define SN_bf_ecb "BF-ECB" +#define LN_bf_ecb "bf-ecb" +#define NID_bf_ecb 92 + +#define SN_bf_cfb64 "BF-CFB" +#define LN_bf_cfb64 "bf-cfb" +#define NID_bf_cfb64 93 + +#define SN_bf_ofb64 "BF-OFB" +#define LN_bf_ofb64 "bf-ofb" +#define NID_bf_ofb64 94 + +#define SN_id_pkix "PKIX" +#define NID_id_pkix 127 +#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L + +#define SN_id_pkix_mod "id-pkix-mod" +#define NID_id_pkix_mod 258 +#define OBJ_id_pkix_mod OBJ_id_pkix,0L + +#define SN_id_pe "id-pe" +#define NID_id_pe 175 +#define OBJ_id_pe OBJ_id_pkix,1L + +#define SN_id_qt "id-qt" +#define NID_id_qt 259 +#define OBJ_id_qt OBJ_id_pkix,2L + +#define SN_id_kp "id-kp" +#define NID_id_kp 128 +#define OBJ_id_kp OBJ_id_pkix,3L + +#define SN_id_it "id-it" +#define NID_id_it 260 +#define OBJ_id_it OBJ_id_pkix,4L + +#define SN_id_pkip "id-pkip" +#define NID_id_pkip 261 +#define OBJ_id_pkip OBJ_id_pkix,5L + +#define SN_id_alg "id-alg" +#define NID_id_alg 262 +#define OBJ_id_alg OBJ_id_pkix,6L + +#define SN_id_cmc "id-cmc" +#define NID_id_cmc 263 +#define OBJ_id_cmc OBJ_id_pkix,7L + +#define SN_id_on "id-on" +#define NID_id_on 264 +#define OBJ_id_on OBJ_id_pkix,8L + +#define SN_id_pda "id-pda" +#define NID_id_pda 265 +#define OBJ_id_pda OBJ_id_pkix,9L + +#define SN_id_aca "id-aca" +#define NID_id_aca 266 +#define OBJ_id_aca OBJ_id_pkix,10L + +#define SN_id_qcs "id-qcs" +#define NID_id_qcs 267 +#define OBJ_id_qcs OBJ_id_pkix,11L + +#define SN_id_cct "id-cct" +#define NID_id_cct 268 +#define OBJ_id_cct OBJ_id_pkix,12L + +#define SN_id_ppl "id-ppl" +#define NID_id_ppl 662 +#define OBJ_id_ppl OBJ_id_pkix,21L + +#define SN_id_ad "id-ad" +#define NID_id_ad 176 +#define OBJ_id_ad OBJ_id_pkix,48L + +#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" +#define NID_id_pkix1_explicit_88 269 +#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L + +#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" +#define NID_id_pkix1_implicit_88 270 +#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L + +#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" +#define NID_id_pkix1_explicit_93 271 +#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L + +#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" +#define NID_id_pkix1_implicit_93 272 +#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L + +#define SN_id_mod_crmf "id-mod-crmf" +#define NID_id_mod_crmf 273 +#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L + +#define SN_id_mod_cmc "id-mod-cmc" +#define NID_id_mod_cmc 274 +#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L + +#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" +#define NID_id_mod_kea_profile_88 275 +#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L + +#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" +#define NID_id_mod_kea_profile_93 276 +#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L + +#define SN_id_mod_cmp "id-mod-cmp" +#define NID_id_mod_cmp 277 +#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L + +#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" +#define NID_id_mod_qualified_cert_88 278 +#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L + +#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" +#define NID_id_mod_qualified_cert_93 279 +#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L + +#define SN_id_mod_attribute_cert "id-mod-attribute-cert" +#define NID_id_mod_attribute_cert 280 +#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L + +#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" +#define NID_id_mod_timestamp_protocol 281 +#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L + +#define SN_id_mod_ocsp "id-mod-ocsp" +#define NID_id_mod_ocsp 282 +#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L + +#define SN_id_mod_dvcs "id-mod-dvcs" +#define NID_id_mod_dvcs 283 +#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L + +#define SN_id_mod_cmp2000 "id-mod-cmp2000" +#define NID_id_mod_cmp2000 284 +#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L + +#define SN_info_access "authorityInfoAccess" +#define LN_info_access "Authority Information Access" +#define NID_info_access 177 +#define OBJ_info_access OBJ_id_pe,1L + +#define SN_biometricInfo "biometricInfo" +#define LN_biometricInfo "Biometric Info" +#define NID_biometricInfo 285 +#define OBJ_biometricInfo OBJ_id_pe,2L + +#define SN_qcStatements "qcStatements" +#define NID_qcStatements 286 +#define OBJ_qcStatements OBJ_id_pe,3L + +#define SN_ac_auditEntity "ac-auditEntity" +#define NID_ac_auditEntity 287 +#define OBJ_ac_auditEntity OBJ_id_pe,4L + +#define SN_ac_targeting "ac-targeting" +#define NID_ac_targeting 288 +#define OBJ_ac_targeting OBJ_id_pe,5L + +#define SN_aaControls "aaControls" +#define NID_aaControls 289 +#define OBJ_aaControls OBJ_id_pe,6L + +#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" +#define NID_sbgp_ipAddrBlock 290 +#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L + +#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" +#define NID_sbgp_autonomousSysNum 291 +#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L + +#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" +#define NID_sbgp_routerIdentifier 292 +#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L + +#define SN_ac_proxying "ac-proxying" +#define NID_ac_proxying 397 +#define OBJ_ac_proxying OBJ_id_pe,10L + +#define SN_sinfo_access "subjectInfoAccess" +#define LN_sinfo_access "Subject Information Access" +#define NID_sinfo_access 398 +#define OBJ_sinfo_access OBJ_id_pe,11L + +#define SN_proxyCertInfo "proxyCertInfo" +#define LN_proxyCertInfo "Proxy Certificate Information" +#define NID_proxyCertInfo 663 +#define OBJ_proxyCertInfo OBJ_id_pe,14L + +#define SN_tlsfeature "tlsfeature" +#define LN_tlsfeature "TLS Feature" +#define NID_tlsfeature 1020 +#define OBJ_tlsfeature OBJ_id_pe,24L + +#define SN_id_qt_cps "id-qt-cps" +#define LN_id_qt_cps "Policy Qualifier CPS" +#define NID_id_qt_cps 164 +#define OBJ_id_qt_cps OBJ_id_qt,1L + +#define SN_id_qt_unotice "id-qt-unotice" +#define LN_id_qt_unotice "Policy Qualifier User Notice" +#define NID_id_qt_unotice 165 +#define OBJ_id_qt_unotice OBJ_id_qt,2L + +#define SN_textNotice "textNotice" +#define NID_textNotice 293 +#define OBJ_textNotice OBJ_id_qt,3L + +#define SN_server_auth "serverAuth" +#define LN_server_auth "TLS Web Server Authentication" +#define NID_server_auth 129 +#define OBJ_server_auth OBJ_id_kp,1L + +#define SN_client_auth "clientAuth" +#define LN_client_auth "TLS Web Client Authentication" +#define NID_client_auth 130 +#define OBJ_client_auth OBJ_id_kp,2L + +#define SN_code_sign "codeSigning" +#define LN_code_sign "Code Signing" +#define NID_code_sign 131 +#define OBJ_code_sign OBJ_id_kp,3L + +#define SN_email_protect "emailProtection" +#define LN_email_protect "E-mail Protection" +#define NID_email_protect 132 +#define OBJ_email_protect OBJ_id_kp,4L + +#define SN_ipsecEndSystem "ipsecEndSystem" +#define LN_ipsecEndSystem "IPSec End System" +#define NID_ipsecEndSystem 294 +#define OBJ_ipsecEndSystem OBJ_id_kp,5L + +#define SN_ipsecTunnel "ipsecTunnel" +#define LN_ipsecTunnel "IPSec Tunnel" +#define NID_ipsecTunnel 295 +#define OBJ_ipsecTunnel OBJ_id_kp,6L + +#define SN_ipsecUser "ipsecUser" +#define LN_ipsecUser "IPSec User" +#define NID_ipsecUser 296 +#define OBJ_ipsecUser OBJ_id_kp,7L + +#define SN_time_stamp "timeStamping" +#define LN_time_stamp "Time Stamping" +#define NID_time_stamp 133 +#define OBJ_time_stamp OBJ_id_kp,8L + +#define SN_OCSP_sign "OCSPSigning" +#define LN_OCSP_sign "OCSP Signing" +#define NID_OCSP_sign 180 +#define OBJ_OCSP_sign OBJ_id_kp,9L + +#define SN_dvcs "DVCS" +#define LN_dvcs "dvcs" +#define NID_dvcs 297 +#define OBJ_dvcs OBJ_id_kp,10L + +#define SN_ipsec_IKE "ipsecIKE" +#define LN_ipsec_IKE "ipsec Internet Key Exchange" +#define NID_ipsec_IKE 1022 +#define OBJ_ipsec_IKE OBJ_id_kp,17L + +#define SN_capwapAC "capwapAC" +#define LN_capwapAC "Ctrl/provision WAP Access" +#define NID_capwapAC 1023 +#define OBJ_capwapAC OBJ_id_kp,18L + +#define SN_capwapWTP "capwapWTP" +#define LN_capwapWTP "Ctrl/Provision WAP Termination" +#define NID_capwapWTP 1024 +#define OBJ_capwapWTP OBJ_id_kp,19L + +#define SN_sshClient "secureShellClient" +#define LN_sshClient "SSH Client" +#define NID_sshClient 1025 +#define OBJ_sshClient OBJ_id_kp,21L + +#define SN_sshServer "secureShellServer" +#define LN_sshServer "SSH Server" +#define NID_sshServer 1026 +#define OBJ_sshServer OBJ_id_kp,22L + +#define SN_sendRouter "sendRouter" +#define LN_sendRouter "Send Router" +#define NID_sendRouter 1027 +#define OBJ_sendRouter OBJ_id_kp,23L + +#define SN_sendProxiedRouter "sendProxiedRouter" +#define LN_sendProxiedRouter "Send Proxied Router" +#define NID_sendProxiedRouter 1028 +#define OBJ_sendProxiedRouter OBJ_id_kp,24L + +#define SN_sendOwner "sendOwner" +#define LN_sendOwner "Send Owner" +#define NID_sendOwner 1029 +#define OBJ_sendOwner OBJ_id_kp,25L + +#define SN_sendProxiedOwner "sendProxiedOwner" +#define LN_sendProxiedOwner "Send Proxied Owner" +#define NID_sendProxiedOwner 1030 +#define OBJ_sendProxiedOwner OBJ_id_kp,26L + +#define SN_cmcCA "cmcCA" +#define LN_cmcCA "CMC Certificate Authority" +#define NID_cmcCA 1131 +#define OBJ_cmcCA OBJ_id_kp,27L + +#define SN_cmcRA "cmcRA" +#define LN_cmcRA "CMC Registration Authority" +#define NID_cmcRA 1132 +#define OBJ_cmcRA OBJ_id_kp,28L + +#define SN_id_it_caProtEncCert "id-it-caProtEncCert" +#define NID_id_it_caProtEncCert 298 +#define OBJ_id_it_caProtEncCert OBJ_id_it,1L + +#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" +#define NID_id_it_signKeyPairTypes 299 +#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L + +#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" +#define NID_id_it_encKeyPairTypes 300 +#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L + +#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" +#define NID_id_it_preferredSymmAlg 301 +#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L + +#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" +#define NID_id_it_caKeyUpdateInfo 302 +#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L + +#define SN_id_it_currentCRL "id-it-currentCRL" +#define NID_id_it_currentCRL 303 +#define OBJ_id_it_currentCRL OBJ_id_it,6L + +#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" +#define NID_id_it_unsupportedOIDs 304 +#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L + +#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" +#define NID_id_it_subscriptionRequest 305 +#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L + +#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" +#define NID_id_it_subscriptionResponse 306 +#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L + +#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" +#define NID_id_it_keyPairParamReq 307 +#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L + +#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" +#define NID_id_it_keyPairParamRep 308 +#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L + +#define SN_id_it_revPassphrase "id-it-revPassphrase" +#define NID_id_it_revPassphrase 309 +#define OBJ_id_it_revPassphrase OBJ_id_it,12L + +#define SN_id_it_implicitConfirm "id-it-implicitConfirm" +#define NID_id_it_implicitConfirm 310 +#define OBJ_id_it_implicitConfirm OBJ_id_it,13L + +#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" +#define NID_id_it_confirmWaitTime 311 +#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L + +#define SN_id_it_origPKIMessage "id-it-origPKIMessage" +#define NID_id_it_origPKIMessage 312 +#define OBJ_id_it_origPKIMessage OBJ_id_it,15L + +#define SN_id_it_suppLangTags "id-it-suppLangTags" +#define NID_id_it_suppLangTags 784 +#define OBJ_id_it_suppLangTags OBJ_id_it,16L + +#define SN_id_regCtrl "id-regCtrl" +#define NID_id_regCtrl 313 +#define OBJ_id_regCtrl OBJ_id_pkip,1L + +#define SN_id_regInfo "id-regInfo" +#define NID_id_regInfo 314 +#define OBJ_id_regInfo OBJ_id_pkip,2L + +#define SN_id_regCtrl_regToken "id-regCtrl-regToken" +#define NID_id_regCtrl_regToken 315 +#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L + +#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" +#define NID_id_regCtrl_authenticator 316 +#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L + +#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" +#define NID_id_regCtrl_pkiPublicationInfo 317 +#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L + +#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" +#define NID_id_regCtrl_pkiArchiveOptions 318 +#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L + +#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" +#define NID_id_regCtrl_oldCertID 319 +#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L + +#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" +#define NID_id_regCtrl_protocolEncrKey 320 +#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L + +#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" +#define NID_id_regInfo_utf8Pairs 321 +#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L + +#define SN_id_regInfo_certReq "id-regInfo-certReq" +#define NID_id_regInfo_certReq 322 +#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L + +#define SN_id_alg_des40 "id-alg-des40" +#define NID_id_alg_des40 323 +#define OBJ_id_alg_des40 OBJ_id_alg,1L + +#define SN_id_alg_noSignature "id-alg-noSignature" +#define NID_id_alg_noSignature 324 +#define OBJ_id_alg_noSignature OBJ_id_alg,2L + +#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" +#define NID_id_alg_dh_sig_hmac_sha1 325 +#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L + +#define SN_id_alg_dh_pop "id-alg-dh-pop" +#define NID_id_alg_dh_pop 326 +#define OBJ_id_alg_dh_pop OBJ_id_alg,4L + +#define SN_id_cmc_statusInfo "id-cmc-statusInfo" +#define NID_id_cmc_statusInfo 327 +#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L + +#define SN_id_cmc_identification "id-cmc-identification" +#define NID_id_cmc_identification 328 +#define OBJ_id_cmc_identification OBJ_id_cmc,2L + +#define SN_id_cmc_identityProof "id-cmc-identityProof" +#define NID_id_cmc_identityProof 329 +#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L + +#define SN_id_cmc_dataReturn "id-cmc-dataReturn" +#define NID_id_cmc_dataReturn 330 +#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L + +#define SN_id_cmc_transactionId "id-cmc-transactionId" +#define NID_id_cmc_transactionId 331 +#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L + +#define SN_id_cmc_senderNonce "id-cmc-senderNonce" +#define NID_id_cmc_senderNonce 332 +#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L + +#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" +#define NID_id_cmc_recipientNonce 333 +#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L + +#define SN_id_cmc_addExtensions "id-cmc-addExtensions" +#define NID_id_cmc_addExtensions 334 +#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L + +#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" +#define NID_id_cmc_encryptedPOP 335 +#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L + +#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" +#define NID_id_cmc_decryptedPOP 336 +#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L + +#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" +#define NID_id_cmc_lraPOPWitness 337 +#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L + +#define SN_id_cmc_getCert "id-cmc-getCert" +#define NID_id_cmc_getCert 338 +#define OBJ_id_cmc_getCert OBJ_id_cmc,15L + +#define SN_id_cmc_getCRL "id-cmc-getCRL" +#define NID_id_cmc_getCRL 339 +#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L + +#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" +#define NID_id_cmc_revokeRequest 340 +#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L + +#define SN_id_cmc_regInfo "id-cmc-regInfo" +#define NID_id_cmc_regInfo 341 +#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L + +#define SN_id_cmc_responseInfo "id-cmc-responseInfo" +#define NID_id_cmc_responseInfo 342 +#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L + +#define SN_id_cmc_queryPending "id-cmc-queryPending" +#define NID_id_cmc_queryPending 343 +#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L + +#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" +#define NID_id_cmc_popLinkRandom 344 +#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L + +#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" +#define NID_id_cmc_popLinkWitness 345 +#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L + +#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" +#define NID_id_cmc_confirmCertAcceptance 346 +#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L + +#define SN_id_on_personalData "id-on-personalData" +#define NID_id_on_personalData 347 +#define OBJ_id_on_personalData OBJ_id_on,1L + +#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" +#define LN_id_on_permanentIdentifier "Permanent Identifier" +#define NID_id_on_permanentIdentifier 858 +#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L + +#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" +#define NID_id_pda_dateOfBirth 348 +#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L + +#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" +#define NID_id_pda_placeOfBirth 349 +#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L + +#define SN_id_pda_gender "id-pda-gender" +#define NID_id_pda_gender 351 +#define OBJ_id_pda_gender OBJ_id_pda,3L + +#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" +#define NID_id_pda_countryOfCitizenship 352 +#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L + +#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" +#define NID_id_pda_countryOfResidence 353 +#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L + +#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" +#define NID_id_aca_authenticationInfo 354 +#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L + +#define SN_id_aca_accessIdentity "id-aca-accessIdentity" +#define NID_id_aca_accessIdentity 355 +#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L + +#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" +#define NID_id_aca_chargingIdentity 356 +#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L + +#define SN_id_aca_group "id-aca-group" +#define NID_id_aca_group 357 +#define OBJ_id_aca_group OBJ_id_aca,4L + +#define SN_id_aca_role "id-aca-role" +#define NID_id_aca_role 358 +#define OBJ_id_aca_role OBJ_id_aca,5L + +#define SN_id_aca_encAttrs "id-aca-encAttrs" +#define NID_id_aca_encAttrs 399 +#define OBJ_id_aca_encAttrs OBJ_id_aca,6L + +#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" +#define NID_id_qcs_pkixQCSyntax_v1 359 +#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L + +#define SN_id_cct_crs "id-cct-crs" +#define NID_id_cct_crs 360 +#define OBJ_id_cct_crs OBJ_id_cct,1L + +#define SN_id_cct_PKIData "id-cct-PKIData" +#define NID_id_cct_PKIData 361 +#define OBJ_id_cct_PKIData OBJ_id_cct,2L + +#define SN_id_cct_PKIResponse "id-cct-PKIResponse" +#define NID_id_cct_PKIResponse 362 +#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L + +#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" +#define LN_id_ppl_anyLanguage "Any language" +#define NID_id_ppl_anyLanguage 664 +#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L + +#define SN_id_ppl_inheritAll "id-ppl-inheritAll" +#define LN_id_ppl_inheritAll "Inherit all" +#define NID_id_ppl_inheritAll 665 +#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L + +#define SN_Independent "id-ppl-independent" +#define LN_Independent "Independent" +#define NID_Independent 667 +#define OBJ_Independent OBJ_id_ppl,2L + +#define SN_ad_OCSP "OCSP" +#define LN_ad_OCSP "OCSP" +#define NID_ad_OCSP 178 +#define OBJ_ad_OCSP OBJ_id_ad,1L + +#define SN_ad_ca_issuers "caIssuers" +#define LN_ad_ca_issuers "CA Issuers" +#define NID_ad_ca_issuers 179 +#define OBJ_ad_ca_issuers OBJ_id_ad,2L + +#define SN_ad_timeStamping "ad_timestamping" +#define LN_ad_timeStamping "AD Time Stamping" +#define NID_ad_timeStamping 363 +#define OBJ_ad_timeStamping OBJ_id_ad,3L + +#define SN_ad_dvcs "AD_DVCS" +#define LN_ad_dvcs "ad dvcs" +#define NID_ad_dvcs 364 +#define OBJ_ad_dvcs OBJ_id_ad,4L + +#define SN_caRepository "caRepository" +#define LN_caRepository "CA Repository" +#define NID_caRepository 785 +#define OBJ_caRepository OBJ_id_ad,5L + +#define OBJ_id_pkix_OCSP OBJ_ad_OCSP + +#define SN_id_pkix_OCSP_basic "basicOCSPResponse" +#define LN_id_pkix_OCSP_basic "Basic OCSP Response" +#define NID_id_pkix_OCSP_basic 365 +#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L + +#define SN_id_pkix_OCSP_Nonce "Nonce" +#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" +#define NID_id_pkix_OCSP_Nonce 366 +#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L + +#define SN_id_pkix_OCSP_CrlID "CrlID" +#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" +#define NID_id_pkix_OCSP_CrlID 367 +#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L + +#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" +#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" +#define NID_id_pkix_OCSP_acceptableResponses 368 +#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L + +#define SN_id_pkix_OCSP_noCheck "noCheck" +#define LN_id_pkix_OCSP_noCheck "OCSP No Check" +#define NID_id_pkix_OCSP_noCheck 369 +#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L + +#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" +#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" +#define NID_id_pkix_OCSP_archiveCutoff 370 +#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L + +#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" +#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" +#define NID_id_pkix_OCSP_serviceLocator 371 +#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L + +#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" +#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" +#define NID_id_pkix_OCSP_extendedStatus 372 +#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L + +#define SN_id_pkix_OCSP_valid "valid" +#define NID_id_pkix_OCSP_valid 373 +#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L + +#define SN_id_pkix_OCSP_path "path" +#define NID_id_pkix_OCSP_path 374 +#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L + +#define SN_id_pkix_OCSP_trustRoot "trustRoot" +#define LN_id_pkix_OCSP_trustRoot "Trust Root" +#define NID_id_pkix_OCSP_trustRoot 375 +#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L + +#define SN_algorithm "algorithm" +#define LN_algorithm "algorithm" +#define NID_algorithm 376 +#define OBJ_algorithm 1L,3L,14L,3L,2L + +#define SN_md5WithRSA "RSA-NP-MD5" +#define LN_md5WithRSA "md5WithRSA" +#define NID_md5WithRSA 104 +#define OBJ_md5WithRSA OBJ_algorithm,3L + +#define SN_des_ecb "DES-ECB" +#define LN_des_ecb "des-ecb" +#define NID_des_ecb 29 +#define OBJ_des_ecb OBJ_algorithm,6L + +#define SN_des_cbc "DES-CBC" +#define LN_des_cbc "des-cbc" +#define NID_des_cbc 31 +#define OBJ_des_cbc OBJ_algorithm,7L + +#define SN_des_ofb64 "DES-OFB" +#define LN_des_ofb64 "des-ofb" +#define NID_des_ofb64 45 +#define OBJ_des_ofb64 OBJ_algorithm,8L + +#define SN_des_cfb64 "DES-CFB" +#define LN_des_cfb64 "des-cfb" +#define NID_des_cfb64 30 +#define OBJ_des_cfb64 OBJ_algorithm,9L + +#define SN_rsaSignature "rsaSignature" +#define NID_rsaSignature 377 +#define OBJ_rsaSignature OBJ_algorithm,11L + +#define SN_dsa_2 "DSA-old" +#define LN_dsa_2 "dsaEncryption-old" +#define NID_dsa_2 67 +#define OBJ_dsa_2 OBJ_algorithm,12L + +#define SN_dsaWithSHA "DSA-SHA" +#define LN_dsaWithSHA "dsaWithSHA" +#define NID_dsaWithSHA 66 +#define OBJ_dsaWithSHA OBJ_algorithm,13L + +#define SN_shaWithRSAEncryption "RSA-SHA" +#define LN_shaWithRSAEncryption "shaWithRSAEncryption" +#define NID_shaWithRSAEncryption 42 +#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L + +#define SN_des_ede_ecb "DES-EDE" +#define LN_des_ede_ecb "des-ede" +#define NID_des_ede_ecb 32 +#define OBJ_des_ede_ecb OBJ_algorithm,17L + +#define SN_des_ede3_ecb "DES-EDE3" +#define LN_des_ede3_ecb "des-ede3" +#define NID_des_ede3_ecb 33 + +#define SN_des_ede_cbc "DES-EDE-CBC" +#define LN_des_ede_cbc "des-ede-cbc" +#define NID_des_ede_cbc 43 + +#define SN_des_ede_cfb64 "DES-EDE-CFB" +#define LN_des_ede_cfb64 "des-ede-cfb" +#define NID_des_ede_cfb64 60 + +#define SN_des_ede3_cfb64 "DES-EDE3-CFB" +#define LN_des_ede3_cfb64 "des-ede3-cfb" +#define NID_des_ede3_cfb64 61 + +#define SN_des_ede_ofb64 "DES-EDE-OFB" +#define LN_des_ede_ofb64 "des-ede-ofb" +#define NID_des_ede_ofb64 62 + +#define SN_des_ede3_ofb64 "DES-EDE3-OFB" +#define LN_des_ede3_ofb64 "des-ede3-ofb" +#define NID_des_ede3_ofb64 63 + +#define SN_desx_cbc "DESX-CBC" +#define LN_desx_cbc "desx-cbc" +#define NID_desx_cbc 80 + +#define SN_sha "SHA" +#define LN_sha "sha" +#define NID_sha 41 +#define OBJ_sha OBJ_algorithm,18L + +#define SN_sha1 "SHA1" +#define LN_sha1 "sha1" +#define NID_sha1 64 +#define OBJ_sha1 OBJ_algorithm,26L + +#define SN_dsaWithSHA1_2 "DSA-SHA1-old" +#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" +#define NID_dsaWithSHA1_2 70 +#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L + +#define SN_sha1WithRSA "RSA-SHA1-2" +#define LN_sha1WithRSA "sha1WithRSA" +#define NID_sha1WithRSA 115 +#define OBJ_sha1WithRSA OBJ_algorithm,29L + +#define SN_ripemd160 "RIPEMD160" +#define LN_ripemd160 "ripemd160" +#define NID_ripemd160 117 +#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L + +#define SN_ripemd160WithRSA "RSA-RIPEMD160" +#define LN_ripemd160WithRSA "ripemd160WithRSA" +#define NID_ripemd160WithRSA 119 +#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L + +#define SN_blake2b512 "BLAKE2b512" +#define LN_blake2b512 "blake2b512" +#define NID_blake2b512 1056 +#define OBJ_blake2b512 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L + +#define SN_blake2s256 "BLAKE2s256" +#define LN_blake2s256 "blake2s256" +#define NID_blake2s256 1057 +#define OBJ_blake2s256 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L + +#define SN_sxnet "SXNetID" +#define LN_sxnet "Strong Extranet ID" +#define NID_sxnet 143 +#define OBJ_sxnet 1L,3L,101L,1L,4L,1L + +#define SN_X500 "X500" +#define LN_X500 "directory services (X.500)" +#define NID_X500 11 +#define OBJ_X500 2L,5L + +#define SN_X509 "X509" +#define NID_X509 12 +#define OBJ_X509 OBJ_X500,4L + +#define SN_commonName "CN" +#define LN_commonName "commonName" +#define NID_commonName 13 +#define OBJ_commonName OBJ_X509,3L + +#define SN_surname "SN" +#define LN_surname "surname" +#define NID_surname 100 +#define OBJ_surname OBJ_X509,4L + +#define LN_serialNumber "serialNumber" +#define NID_serialNumber 105 +#define OBJ_serialNumber OBJ_X509,5L + +#define SN_countryName "C" +#define LN_countryName "countryName" +#define NID_countryName 14 +#define OBJ_countryName OBJ_X509,6L + +#define SN_localityName "L" +#define LN_localityName "localityName" +#define NID_localityName 15 +#define OBJ_localityName OBJ_X509,7L + +#define SN_stateOrProvinceName "ST" +#define LN_stateOrProvinceName "stateOrProvinceName" +#define NID_stateOrProvinceName 16 +#define OBJ_stateOrProvinceName OBJ_X509,8L + +#define SN_streetAddress "street" +#define LN_streetAddress "streetAddress" +#define NID_streetAddress 660 +#define OBJ_streetAddress OBJ_X509,9L + +#define SN_organizationName "O" +#define LN_organizationName "organizationName" +#define NID_organizationName 17 +#define OBJ_organizationName OBJ_X509,10L + +#define SN_organizationalUnitName "OU" +#define LN_organizationalUnitName "organizationalUnitName" +#define NID_organizationalUnitName 18 +#define OBJ_organizationalUnitName OBJ_X509,11L + +#define SN_title "title" +#define LN_title "title" +#define NID_title 106 +#define OBJ_title OBJ_X509,12L + +#define LN_description "description" +#define NID_description 107 +#define OBJ_description OBJ_X509,13L + +#define LN_searchGuide "searchGuide" +#define NID_searchGuide 859 +#define OBJ_searchGuide OBJ_X509,14L + +#define LN_businessCategory "businessCategory" +#define NID_businessCategory 860 +#define OBJ_businessCategory OBJ_X509,15L + +#define LN_postalAddress "postalAddress" +#define NID_postalAddress 861 +#define OBJ_postalAddress OBJ_X509,16L + +#define LN_postalCode "postalCode" +#define NID_postalCode 661 +#define OBJ_postalCode OBJ_X509,17L + +#define LN_postOfficeBox "postOfficeBox" +#define NID_postOfficeBox 862 +#define OBJ_postOfficeBox OBJ_X509,18L + +#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" +#define NID_physicalDeliveryOfficeName 863 +#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L + +#define LN_telephoneNumber "telephoneNumber" +#define NID_telephoneNumber 864 +#define OBJ_telephoneNumber OBJ_X509,20L + +#define LN_telexNumber "telexNumber" +#define NID_telexNumber 865 +#define OBJ_telexNumber OBJ_X509,21L + +#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" +#define NID_teletexTerminalIdentifier 866 +#define OBJ_teletexTerminalIdentifier OBJ_X509,22L + +#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" +#define NID_facsimileTelephoneNumber 867 +#define OBJ_facsimileTelephoneNumber OBJ_X509,23L + +#define LN_x121Address "x121Address" +#define NID_x121Address 868 +#define OBJ_x121Address OBJ_X509,24L + +#define LN_internationaliSDNNumber "internationaliSDNNumber" +#define NID_internationaliSDNNumber 869 +#define OBJ_internationaliSDNNumber OBJ_X509,25L + +#define LN_registeredAddress "registeredAddress" +#define NID_registeredAddress 870 +#define OBJ_registeredAddress OBJ_X509,26L + +#define LN_destinationIndicator "destinationIndicator" +#define NID_destinationIndicator 871 +#define OBJ_destinationIndicator OBJ_X509,27L + +#define LN_preferredDeliveryMethod "preferredDeliveryMethod" +#define NID_preferredDeliveryMethod 872 +#define OBJ_preferredDeliveryMethod OBJ_X509,28L + +#define LN_presentationAddress "presentationAddress" +#define NID_presentationAddress 873 +#define OBJ_presentationAddress OBJ_X509,29L + +#define LN_supportedApplicationContext "supportedApplicationContext" +#define NID_supportedApplicationContext 874 +#define OBJ_supportedApplicationContext OBJ_X509,30L + +#define SN_member "member" +#define NID_member 875 +#define OBJ_member OBJ_X509,31L + +#define SN_owner "owner" +#define NID_owner 876 +#define OBJ_owner OBJ_X509,32L + +#define LN_roleOccupant "roleOccupant" +#define NID_roleOccupant 877 +#define OBJ_roleOccupant OBJ_X509,33L + +#define SN_seeAlso "seeAlso" +#define NID_seeAlso 878 +#define OBJ_seeAlso OBJ_X509,34L + +#define LN_userPassword "userPassword" +#define NID_userPassword 879 +#define OBJ_userPassword OBJ_X509,35L + +#define LN_userCertificate "userCertificate" +#define NID_userCertificate 880 +#define OBJ_userCertificate OBJ_X509,36L + +#define LN_cACertificate "cACertificate" +#define NID_cACertificate 881 +#define OBJ_cACertificate OBJ_X509,37L + +#define LN_authorityRevocationList "authorityRevocationList" +#define NID_authorityRevocationList 882 +#define OBJ_authorityRevocationList OBJ_X509,38L + +#define LN_certificateRevocationList "certificateRevocationList" +#define NID_certificateRevocationList 883 +#define OBJ_certificateRevocationList OBJ_X509,39L + +#define LN_crossCertificatePair "crossCertificatePair" +#define NID_crossCertificatePair 884 +#define OBJ_crossCertificatePair OBJ_X509,40L + +#define SN_name "name" +#define LN_name "name" +#define NID_name 173 +#define OBJ_name OBJ_X509,41L + +#define SN_givenName "GN" +#define LN_givenName "givenName" +#define NID_givenName 99 +#define OBJ_givenName OBJ_X509,42L + +#define SN_initials "initials" +#define LN_initials "initials" +#define NID_initials 101 +#define OBJ_initials OBJ_X509,43L + +#define LN_generationQualifier "generationQualifier" +#define NID_generationQualifier 509 +#define OBJ_generationQualifier OBJ_X509,44L + +#define LN_x500UniqueIdentifier "x500UniqueIdentifier" +#define NID_x500UniqueIdentifier 503 +#define OBJ_x500UniqueIdentifier OBJ_X509,45L + +#define SN_dnQualifier "dnQualifier" +#define LN_dnQualifier "dnQualifier" +#define NID_dnQualifier 174 +#define OBJ_dnQualifier OBJ_X509,46L + +#define LN_enhancedSearchGuide "enhancedSearchGuide" +#define NID_enhancedSearchGuide 885 +#define OBJ_enhancedSearchGuide OBJ_X509,47L + +#define LN_protocolInformation "protocolInformation" +#define NID_protocolInformation 886 +#define OBJ_protocolInformation OBJ_X509,48L + +#define LN_distinguishedName "distinguishedName" +#define NID_distinguishedName 887 +#define OBJ_distinguishedName OBJ_X509,49L + +#define LN_uniqueMember "uniqueMember" +#define NID_uniqueMember 888 +#define OBJ_uniqueMember OBJ_X509,50L + +#define LN_houseIdentifier "houseIdentifier" +#define NID_houseIdentifier 889 +#define OBJ_houseIdentifier OBJ_X509,51L + +#define LN_supportedAlgorithms "supportedAlgorithms" +#define NID_supportedAlgorithms 890 +#define OBJ_supportedAlgorithms OBJ_X509,52L + +#define LN_deltaRevocationList "deltaRevocationList" +#define NID_deltaRevocationList 891 +#define OBJ_deltaRevocationList OBJ_X509,53L + +#define SN_dmdName "dmdName" +#define NID_dmdName 892 +#define OBJ_dmdName OBJ_X509,54L + +#define LN_pseudonym "pseudonym" +#define NID_pseudonym 510 +#define OBJ_pseudonym OBJ_X509,65L + +#define SN_role "role" +#define LN_role "role" +#define NID_role 400 +#define OBJ_role OBJ_X509,72L + +#define LN_organizationIdentifier "organizationIdentifier" +#define NID_organizationIdentifier 1089 +#define OBJ_organizationIdentifier OBJ_X509,97L + +#define SN_countryCode3c "c3" +#define LN_countryCode3c "countryCode3c" +#define NID_countryCode3c 1090 +#define OBJ_countryCode3c OBJ_X509,98L + +#define SN_countryCode3n "n3" +#define LN_countryCode3n "countryCode3n" +#define NID_countryCode3n 1091 +#define OBJ_countryCode3n OBJ_X509,99L + +#define LN_dnsName "dnsName" +#define NID_dnsName 1092 +#define OBJ_dnsName OBJ_X509,100L + +#define SN_X500algorithms "X500algorithms" +#define LN_X500algorithms "directory services - algorithms" +#define NID_X500algorithms 378 +#define OBJ_X500algorithms OBJ_X500,8L + +#define SN_rsa "RSA" +#define LN_rsa "rsa" +#define NID_rsa 19 +#define OBJ_rsa OBJ_X500algorithms,1L,1L + +#define SN_mdc2WithRSA "RSA-MDC2" +#define LN_mdc2WithRSA "mdc2WithRSA" +#define NID_mdc2WithRSA 96 +#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L + +#define SN_mdc2 "MDC2" +#define LN_mdc2 "mdc2" +#define NID_mdc2 95 +#define OBJ_mdc2 OBJ_X500algorithms,3L,101L + +#define SN_id_ce "id-ce" +#define NID_id_ce 81 +#define OBJ_id_ce OBJ_X500,29L + +#define SN_subject_directory_attributes "subjectDirectoryAttributes" +#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" +#define NID_subject_directory_attributes 769 +#define OBJ_subject_directory_attributes OBJ_id_ce,9L + +#define SN_subject_key_identifier "subjectKeyIdentifier" +#define LN_subject_key_identifier "X509v3 Subject Key Identifier" +#define NID_subject_key_identifier 82 +#define OBJ_subject_key_identifier OBJ_id_ce,14L + +#define SN_key_usage "keyUsage" +#define LN_key_usage "X509v3 Key Usage" +#define NID_key_usage 83 +#define OBJ_key_usage OBJ_id_ce,15L + +#define SN_private_key_usage_period "privateKeyUsagePeriod" +#define LN_private_key_usage_period "X509v3 Private Key Usage Period" +#define NID_private_key_usage_period 84 +#define OBJ_private_key_usage_period OBJ_id_ce,16L + +#define SN_subject_alt_name "subjectAltName" +#define LN_subject_alt_name "X509v3 Subject Alternative Name" +#define NID_subject_alt_name 85 +#define OBJ_subject_alt_name OBJ_id_ce,17L + +#define SN_issuer_alt_name "issuerAltName" +#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" +#define NID_issuer_alt_name 86 +#define OBJ_issuer_alt_name OBJ_id_ce,18L + +#define SN_basic_constraints "basicConstraints" +#define LN_basic_constraints "X509v3 Basic Constraints" +#define NID_basic_constraints 87 +#define OBJ_basic_constraints OBJ_id_ce,19L + +#define SN_crl_number "crlNumber" +#define LN_crl_number "X509v3 CRL Number" +#define NID_crl_number 88 +#define OBJ_crl_number OBJ_id_ce,20L + +#define SN_crl_reason "CRLReason" +#define LN_crl_reason "X509v3 CRL Reason Code" +#define NID_crl_reason 141 +#define OBJ_crl_reason OBJ_id_ce,21L + +#define SN_invalidity_date "invalidityDate" +#define LN_invalidity_date "Invalidity Date" +#define NID_invalidity_date 142 +#define OBJ_invalidity_date OBJ_id_ce,24L + +#define SN_delta_crl "deltaCRL" +#define LN_delta_crl "X509v3 Delta CRL Indicator" +#define NID_delta_crl 140 +#define OBJ_delta_crl OBJ_id_ce,27L + +#define SN_issuing_distribution_point "issuingDistributionPoint" +#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" +#define NID_issuing_distribution_point 770 +#define OBJ_issuing_distribution_point OBJ_id_ce,28L + +#define SN_certificate_issuer "certificateIssuer" +#define LN_certificate_issuer "X509v3 Certificate Issuer" +#define NID_certificate_issuer 771 +#define OBJ_certificate_issuer OBJ_id_ce,29L + +#define SN_name_constraints "nameConstraints" +#define LN_name_constraints "X509v3 Name Constraints" +#define NID_name_constraints 666 +#define OBJ_name_constraints OBJ_id_ce,30L + +#define SN_crl_distribution_points "crlDistributionPoints" +#define LN_crl_distribution_points "X509v3 CRL Distribution Points" +#define NID_crl_distribution_points 103 +#define OBJ_crl_distribution_points OBJ_id_ce,31L + +#define SN_certificate_policies "certificatePolicies" +#define LN_certificate_policies "X509v3 Certificate Policies" +#define NID_certificate_policies 89 +#define OBJ_certificate_policies OBJ_id_ce,32L + +#define SN_any_policy "anyPolicy" +#define LN_any_policy "X509v3 Any Policy" +#define NID_any_policy 746 +#define OBJ_any_policy OBJ_certificate_policies,0L + +#define SN_policy_mappings "policyMappings" +#define LN_policy_mappings "X509v3 Policy Mappings" +#define NID_policy_mappings 747 +#define OBJ_policy_mappings OBJ_id_ce,33L + +#define SN_authority_key_identifier "authorityKeyIdentifier" +#define LN_authority_key_identifier "X509v3 Authority Key Identifier" +#define NID_authority_key_identifier 90 +#define OBJ_authority_key_identifier OBJ_id_ce,35L + +#define SN_policy_constraints "policyConstraints" +#define LN_policy_constraints "X509v3 Policy Constraints" +#define NID_policy_constraints 401 +#define OBJ_policy_constraints OBJ_id_ce,36L + +#define SN_ext_key_usage "extendedKeyUsage" +#define LN_ext_key_usage "X509v3 Extended Key Usage" +#define NID_ext_key_usage 126 +#define OBJ_ext_key_usage OBJ_id_ce,37L + +#define SN_freshest_crl "freshestCRL" +#define LN_freshest_crl "X509v3 Freshest CRL" +#define NID_freshest_crl 857 +#define OBJ_freshest_crl OBJ_id_ce,46L + +#define SN_inhibit_any_policy "inhibitAnyPolicy" +#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" +#define NID_inhibit_any_policy 748 +#define OBJ_inhibit_any_policy OBJ_id_ce,54L + +#define SN_target_information "targetInformation" +#define LN_target_information "X509v3 AC Targeting" +#define NID_target_information 402 +#define OBJ_target_information OBJ_id_ce,55L + +#define SN_no_rev_avail "noRevAvail" +#define LN_no_rev_avail "X509v3 No Revocation Available" +#define NID_no_rev_avail 403 +#define OBJ_no_rev_avail OBJ_id_ce,56L + +#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" +#define LN_anyExtendedKeyUsage "Any Extended Key Usage" +#define NID_anyExtendedKeyUsage 910 +#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L + +#define SN_netscape "Netscape" +#define LN_netscape "Netscape Communications Corp." +#define NID_netscape 57 +#define OBJ_netscape 2L,16L,840L,1L,113730L + +#define SN_netscape_cert_extension "nsCertExt" +#define LN_netscape_cert_extension "Netscape Certificate Extension" +#define NID_netscape_cert_extension 58 +#define OBJ_netscape_cert_extension OBJ_netscape,1L + +#define SN_netscape_data_type "nsDataType" +#define LN_netscape_data_type "Netscape Data Type" +#define NID_netscape_data_type 59 +#define OBJ_netscape_data_type OBJ_netscape,2L + +#define SN_netscape_cert_type "nsCertType" +#define LN_netscape_cert_type "Netscape Cert Type" +#define NID_netscape_cert_type 71 +#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L + +#define SN_netscape_base_url "nsBaseUrl" +#define LN_netscape_base_url "Netscape Base Url" +#define NID_netscape_base_url 72 +#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L + +#define SN_netscape_revocation_url "nsRevocationUrl" +#define LN_netscape_revocation_url "Netscape Revocation Url" +#define NID_netscape_revocation_url 73 +#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L + +#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" +#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" +#define NID_netscape_ca_revocation_url 74 +#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L + +#define SN_netscape_renewal_url "nsRenewalUrl" +#define LN_netscape_renewal_url "Netscape Renewal Url" +#define NID_netscape_renewal_url 75 +#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L + +#define SN_netscape_ca_policy_url "nsCaPolicyUrl" +#define LN_netscape_ca_policy_url "Netscape CA Policy Url" +#define NID_netscape_ca_policy_url 76 +#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L + +#define SN_netscape_ssl_server_name "nsSslServerName" +#define LN_netscape_ssl_server_name "Netscape SSL Server Name" +#define NID_netscape_ssl_server_name 77 +#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L + +#define SN_netscape_comment "nsComment" +#define LN_netscape_comment "Netscape Comment" +#define NID_netscape_comment 78 +#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L + +#define SN_netscape_cert_sequence "nsCertSequence" +#define LN_netscape_cert_sequence "Netscape Certificate Sequence" +#define NID_netscape_cert_sequence 79 +#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L + +#define SN_ns_sgc "nsSGC" +#define LN_ns_sgc "Netscape Server Gated Crypto" +#define NID_ns_sgc 139 +#define OBJ_ns_sgc OBJ_netscape,4L,1L + +#define SN_org "ORG" +#define LN_org "org" +#define NID_org 379 +#define OBJ_org OBJ_iso,3L + +#define SN_dod "DOD" +#define LN_dod "dod" +#define NID_dod 380 +#define OBJ_dod OBJ_org,6L + +#define SN_iana "IANA" +#define LN_iana "iana" +#define NID_iana 381 +#define OBJ_iana OBJ_dod,1L + +#define OBJ_internet OBJ_iana + +#define SN_Directory "directory" +#define LN_Directory "Directory" +#define NID_Directory 382 +#define OBJ_Directory OBJ_internet,1L + +#define SN_Management "mgmt" +#define LN_Management "Management" +#define NID_Management 383 +#define OBJ_Management OBJ_internet,2L + +#define SN_Experimental "experimental" +#define LN_Experimental "Experimental" +#define NID_Experimental 384 +#define OBJ_Experimental OBJ_internet,3L + +#define SN_Private "private" +#define LN_Private "Private" +#define NID_Private 385 +#define OBJ_Private OBJ_internet,4L + +#define SN_Security "security" +#define LN_Security "Security" +#define NID_Security 386 +#define OBJ_Security OBJ_internet,5L + +#define SN_SNMPv2 "snmpv2" +#define LN_SNMPv2 "SNMPv2" +#define NID_SNMPv2 387 +#define OBJ_SNMPv2 OBJ_internet,6L + +#define LN_Mail "Mail" +#define NID_Mail 388 +#define OBJ_Mail OBJ_internet,7L + +#define SN_Enterprises "enterprises" +#define LN_Enterprises "Enterprises" +#define NID_Enterprises 389 +#define OBJ_Enterprises OBJ_Private,1L + +#define SN_dcObject "dcobject" +#define LN_dcObject "dcObject" +#define NID_dcObject 390 +#define OBJ_dcObject OBJ_Enterprises,1466L,344L + +#define SN_mime_mhs "mime-mhs" +#define LN_mime_mhs "MIME MHS" +#define NID_mime_mhs 504 +#define OBJ_mime_mhs OBJ_Mail,1L + +#define SN_mime_mhs_headings "mime-mhs-headings" +#define LN_mime_mhs_headings "mime-mhs-headings" +#define NID_mime_mhs_headings 505 +#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L + +#define SN_mime_mhs_bodies "mime-mhs-bodies" +#define LN_mime_mhs_bodies "mime-mhs-bodies" +#define NID_mime_mhs_bodies 506 +#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L + +#define SN_id_hex_partial_message "id-hex-partial-message" +#define LN_id_hex_partial_message "id-hex-partial-message" +#define NID_id_hex_partial_message 507 +#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L + +#define SN_id_hex_multipart_message "id-hex-multipart-message" +#define LN_id_hex_multipart_message "id-hex-multipart-message" +#define NID_id_hex_multipart_message 508 +#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L + +#define SN_zlib_compression "ZLIB" +#define LN_zlib_compression "zlib compression" +#define NID_zlib_compression 125 +#define OBJ_zlib_compression OBJ_id_smime_alg,8L + +#define OBJ_csor 2L,16L,840L,1L,101L,3L + +#define OBJ_nistAlgorithms OBJ_csor,4L + +#define OBJ_aes OBJ_nistAlgorithms,1L + +#define SN_aes_128_ecb "AES-128-ECB" +#define LN_aes_128_ecb "aes-128-ecb" +#define NID_aes_128_ecb 418 +#define OBJ_aes_128_ecb OBJ_aes,1L + +#define SN_aes_128_cbc "AES-128-CBC" +#define LN_aes_128_cbc "aes-128-cbc" +#define NID_aes_128_cbc 419 +#define OBJ_aes_128_cbc OBJ_aes,2L + +#define SN_aes_128_ofb128 "AES-128-OFB" +#define LN_aes_128_ofb128 "aes-128-ofb" +#define NID_aes_128_ofb128 420 +#define OBJ_aes_128_ofb128 OBJ_aes,3L + +#define SN_aes_128_cfb128 "AES-128-CFB" +#define LN_aes_128_cfb128 "aes-128-cfb" +#define NID_aes_128_cfb128 421 +#define OBJ_aes_128_cfb128 OBJ_aes,4L + +#define SN_id_aes128_wrap "id-aes128-wrap" +#define NID_id_aes128_wrap 788 +#define OBJ_id_aes128_wrap OBJ_aes,5L + +#define SN_aes_128_gcm "id-aes128-GCM" +#define LN_aes_128_gcm "aes-128-gcm" +#define NID_aes_128_gcm 895 +#define OBJ_aes_128_gcm OBJ_aes,6L + +#define SN_aes_128_ccm "id-aes128-CCM" +#define LN_aes_128_ccm "aes-128-ccm" +#define NID_aes_128_ccm 896 +#define OBJ_aes_128_ccm OBJ_aes,7L + +#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" +#define NID_id_aes128_wrap_pad 897 +#define OBJ_id_aes128_wrap_pad OBJ_aes,8L + +#define SN_aes_192_ecb "AES-192-ECB" +#define LN_aes_192_ecb "aes-192-ecb" +#define NID_aes_192_ecb 422 +#define OBJ_aes_192_ecb OBJ_aes,21L + +#define SN_aes_192_cbc "AES-192-CBC" +#define LN_aes_192_cbc "aes-192-cbc" +#define NID_aes_192_cbc 423 +#define OBJ_aes_192_cbc OBJ_aes,22L + +#define SN_aes_192_ofb128 "AES-192-OFB" +#define LN_aes_192_ofb128 "aes-192-ofb" +#define NID_aes_192_ofb128 424 +#define OBJ_aes_192_ofb128 OBJ_aes,23L + +#define SN_aes_192_cfb128 "AES-192-CFB" +#define LN_aes_192_cfb128 "aes-192-cfb" +#define NID_aes_192_cfb128 425 +#define OBJ_aes_192_cfb128 OBJ_aes,24L + +#define SN_id_aes192_wrap "id-aes192-wrap" +#define NID_id_aes192_wrap 789 +#define OBJ_id_aes192_wrap OBJ_aes,25L + +#define SN_aes_192_gcm "id-aes192-GCM" +#define LN_aes_192_gcm "aes-192-gcm" +#define NID_aes_192_gcm 898 +#define OBJ_aes_192_gcm OBJ_aes,26L + +#define SN_aes_192_ccm "id-aes192-CCM" +#define LN_aes_192_ccm "aes-192-ccm" +#define NID_aes_192_ccm 899 +#define OBJ_aes_192_ccm OBJ_aes,27L + +#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" +#define NID_id_aes192_wrap_pad 900 +#define OBJ_id_aes192_wrap_pad OBJ_aes,28L + +#define SN_aes_256_ecb "AES-256-ECB" +#define LN_aes_256_ecb "aes-256-ecb" +#define NID_aes_256_ecb 426 +#define OBJ_aes_256_ecb OBJ_aes,41L + +#define SN_aes_256_cbc "AES-256-CBC" +#define LN_aes_256_cbc "aes-256-cbc" +#define NID_aes_256_cbc 427 +#define OBJ_aes_256_cbc OBJ_aes,42L + +#define SN_aes_256_ofb128 "AES-256-OFB" +#define LN_aes_256_ofb128 "aes-256-ofb" +#define NID_aes_256_ofb128 428 +#define OBJ_aes_256_ofb128 OBJ_aes,43L + +#define SN_aes_256_cfb128 "AES-256-CFB" +#define LN_aes_256_cfb128 "aes-256-cfb" +#define NID_aes_256_cfb128 429 +#define OBJ_aes_256_cfb128 OBJ_aes,44L + +#define SN_id_aes256_wrap "id-aes256-wrap" +#define NID_id_aes256_wrap 790 +#define OBJ_id_aes256_wrap OBJ_aes,45L + +#define SN_aes_256_gcm "id-aes256-GCM" +#define LN_aes_256_gcm "aes-256-gcm" +#define NID_aes_256_gcm 901 +#define OBJ_aes_256_gcm OBJ_aes,46L + +#define SN_aes_256_ccm "id-aes256-CCM" +#define LN_aes_256_ccm "aes-256-ccm" +#define NID_aes_256_ccm 902 +#define OBJ_aes_256_ccm OBJ_aes,47L + +#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" +#define NID_id_aes256_wrap_pad 903 +#define OBJ_id_aes256_wrap_pad OBJ_aes,48L + +#define SN_aes_128_xts "AES-128-XTS" +#define LN_aes_128_xts "aes-128-xts" +#define NID_aes_128_xts 913 +#define OBJ_aes_128_xts OBJ_ieee_siswg,0L,1L,1L + +#define SN_aes_256_xts "AES-256-XTS" +#define LN_aes_256_xts "aes-256-xts" +#define NID_aes_256_xts 914 +#define OBJ_aes_256_xts OBJ_ieee_siswg,0L,1L,2L + +#define SN_aes_128_cfb1 "AES-128-CFB1" +#define LN_aes_128_cfb1 "aes-128-cfb1" +#define NID_aes_128_cfb1 650 + +#define SN_aes_192_cfb1 "AES-192-CFB1" +#define LN_aes_192_cfb1 "aes-192-cfb1" +#define NID_aes_192_cfb1 651 + +#define SN_aes_256_cfb1 "AES-256-CFB1" +#define LN_aes_256_cfb1 "aes-256-cfb1" +#define NID_aes_256_cfb1 652 + +#define SN_aes_128_cfb8 "AES-128-CFB8" +#define LN_aes_128_cfb8 "aes-128-cfb8" +#define NID_aes_128_cfb8 653 + +#define SN_aes_192_cfb8 "AES-192-CFB8" +#define LN_aes_192_cfb8 "aes-192-cfb8" +#define NID_aes_192_cfb8 654 + +#define SN_aes_256_cfb8 "AES-256-CFB8" +#define LN_aes_256_cfb8 "aes-256-cfb8" +#define NID_aes_256_cfb8 655 + +#define SN_aes_128_ctr "AES-128-CTR" +#define LN_aes_128_ctr "aes-128-ctr" +#define NID_aes_128_ctr 904 + +#define SN_aes_192_ctr "AES-192-CTR" +#define LN_aes_192_ctr "aes-192-ctr" +#define NID_aes_192_ctr 905 + +#define SN_aes_256_ctr "AES-256-CTR" +#define LN_aes_256_ctr "aes-256-ctr" +#define NID_aes_256_ctr 906 + +#define SN_aes_128_ocb "AES-128-OCB" +#define LN_aes_128_ocb "aes-128-ocb" +#define NID_aes_128_ocb 958 + +#define SN_aes_192_ocb "AES-192-OCB" +#define LN_aes_192_ocb "aes-192-ocb" +#define NID_aes_192_ocb 959 + +#define SN_aes_256_ocb "AES-256-OCB" +#define LN_aes_256_ocb "aes-256-ocb" +#define NID_aes_256_ocb 960 + +#define SN_des_cfb1 "DES-CFB1" +#define LN_des_cfb1 "des-cfb1" +#define NID_des_cfb1 656 + +#define SN_des_cfb8 "DES-CFB8" +#define LN_des_cfb8 "des-cfb8" +#define NID_des_cfb8 657 + +#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" +#define LN_des_ede3_cfb1 "des-ede3-cfb1" +#define NID_des_ede3_cfb1 658 + +#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" +#define LN_des_ede3_cfb8 "des-ede3-cfb8" +#define NID_des_ede3_cfb8 659 + +#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L + +#define SN_sha256 "SHA256" +#define LN_sha256 "sha256" +#define NID_sha256 672 +#define OBJ_sha256 OBJ_nist_hashalgs,1L + +#define SN_sha384 "SHA384" +#define LN_sha384 "sha384" +#define NID_sha384 673 +#define OBJ_sha384 OBJ_nist_hashalgs,2L + +#define SN_sha512 "SHA512" +#define LN_sha512 "sha512" +#define NID_sha512 674 +#define OBJ_sha512 OBJ_nist_hashalgs,3L + +#define SN_sha224 "SHA224" +#define LN_sha224 "sha224" +#define NID_sha224 675 +#define OBJ_sha224 OBJ_nist_hashalgs,4L + +#define SN_sha512_224 "SHA512-224" +#define LN_sha512_224 "sha512-224" +#define NID_sha512_224 1094 +#define OBJ_sha512_224 OBJ_nist_hashalgs,5L + +#define SN_sha512_256 "SHA512-256" +#define LN_sha512_256 "sha512-256" +#define NID_sha512_256 1095 +#define OBJ_sha512_256 OBJ_nist_hashalgs,6L + +#define SN_sha3_224 "SHA3-224" +#define LN_sha3_224 "sha3-224" +#define NID_sha3_224 1096 +#define OBJ_sha3_224 OBJ_nist_hashalgs,7L + +#define SN_sha3_256 "SHA3-256" +#define LN_sha3_256 "sha3-256" +#define NID_sha3_256 1097 +#define OBJ_sha3_256 OBJ_nist_hashalgs,8L + +#define SN_sha3_384 "SHA3-384" +#define LN_sha3_384 "sha3-384" +#define NID_sha3_384 1098 +#define OBJ_sha3_384 OBJ_nist_hashalgs,9L + +#define SN_sha3_512 "SHA3-512" +#define LN_sha3_512 "sha3-512" +#define NID_sha3_512 1099 +#define OBJ_sha3_512 OBJ_nist_hashalgs,10L + +#define SN_shake128 "SHAKE128" +#define LN_shake128 "shake128" +#define NID_shake128 1100 +#define OBJ_shake128 OBJ_nist_hashalgs,11L + +#define SN_shake256 "SHAKE256" +#define LN_shake256 "shake256" +#define NID_shake256 1101 +#define OBJ_shake256 OBJ_nist_hashalgs,12L + +#define SN_hmac_sha3_224 "id-hmacWithSHA3-224" +#define LN_hmac_sha3_224 "hmac-sha3-224" +#define NID_hmac_sha3_224 1102 +#define OBJ_hmac_sha3_224 OBJ_nist_hashalgs,13L + +#define SN_hmac_sha3_256 "id-hmacWithSHA3-256" +#define LN_hmac_sha3_256 "hmac-sha3-256" +#define NID_hmac_sha3_256 1103 +#define OBJ_hmac_sha3_256 OBJ_nist_hashalgs,14L + +#define SN_hmac_sha3_384 "id-hmacWithSHA3-384" +#define LN_hmac_sha3_384 "hmac-sha3-384" +#define NID_hmac_sha3_384 1104 +#define OBJ_hmac_sha3_384 OBJ_nist_hashalgs,15L + +#define SN_hmac_sha3_512 "id-hmacWithSHA3-512" +#define LN_hmac_sha3_512 "hmac-sha3-512" +#define NID_hmac_sha3_512 1105 +#define OBJ_hmac_sha3_512 OBJ_nist_hashalgs,16L + +#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L + +#define SN_dsa_with_SHA224 "dsa_with_SHA224" +#define NID_dsa_with_SHA224 802 +#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L + +#define SN_dsa_with_SHA256 "dsa_with_SHA256" +#define NID_dsa_with_SHA256 803 +#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L + +#define OBJ_sigAlgs OBJ_nistAlgorithms,3L + +#define SN_dsa_with_SHA384 "id-dsa-with-sha384" +#define LN_dsa_with_SHA384 "dsa_with_SHA384" +#define NID_dsa_with_SHA384 1106 +#define OBJ_dsa_with_SHA384 OBJ_sigAlgs,3L + +#define SN_dsa_with_SHA512 "id-dsa-with-sha512" +#define LN_dsa_with_SHA512 "dsa_with_SHA512" +#define NID_dsa_with_SHA512 1107 +#define OBJ_dsa_with_SHA512 OBJ_sigAlgs,4L + +#define SN_dsa_with_SHA3_224 "id-dsa-with-sha3-224" +#define LN_dsa_with_SHA3_224 "dsa_with_SHA3-224" +#define NID_dsa_with_SHA3_224 1108 +#define OBJ_dsa_with_SHA3_224 OBJ_sigAlgs,5L + +#define SN_dsa_with_SHA3_256 "id-dsa-with-sha3-256" +#define LN_dsa_with_SHA3_256 "dsa_with_SHA3-256" +#define NID_dsa_with_SHA3_256 1109 +#define OBJ_dsa_with_SHA3_256 OBJ_sigAlgs,6L + +#define SN_dsa_with_SHA3_384 "id-dsa-with-sha3-384" +#define LN_dsa_with_SHA3_384 "dsa_with_SHA3-384" +#define NID_dsa_with_SHA3_384 1110 +#define OBJ_dsa_with_SHA3_384 OBJ_sigAlgs,7L + +#define SN_dsa_with_SHA3_512 "id-dsa-with-sha3-512" +#define LN_dsa_with_SHA3_512 "dsa_with_SHA3-512" +#define NID_dsa_with_SHA3_512 1111 +#define OBJ_dsa_with_SHA3_512 OBJ_sigAlgs,8L + +#define SN_ecdsa_with_SHA3_224 "id-ecdsa-with-sha3-224" +#define LN_ecdsa_with_SHA3_224 "ecdsa_with_SHA3-224" +#define NID_ecdsa_with_SHA3_224 1112 +#define OBJ_ecdsa_with_SHA3_224 OBJ_sigAlgs,9L + +#define SN_ecdsa_with_SHA3_256 "id-ecdsa-with-sha3-256" +#define LN_ecdsa_with_SHA3_256 "ecdsa_with_SHA3-256" +#define NID_ecdsa_with_SHA3_256 1113 +#define OBJ_ecdsa_with_SHA3_256 OBJ_sigAlgs,10L + +#define SN_ecdsa_with_SHA3_384 "id-ecdsa-with-sha3-384" +#define LN_ecdsa_with_SHA3_384 "ecdsa_with_SHA3-384" +#define NID_ecdsa_with_SHA3_384 1114 +#define OBJ_ecdsa_with_SHA3_384 OBJ_sigAlgs,11L + +#define SN_ecdsa_with_SHA3_512 "id-ecdsa-with-sha3-512" +#define LN_ecdsa_with_SHA3_512 "ecdsa_with_SHA3-512" +#define NID_ecdsa_with_SHA3_512 1115 +#define OBJ_ecdsa_with_SHA3_512 OBJ_sigAlgs,12L + +#define SN_RSA_SHA3_224 "id-rsassa-pkcs1-v1_5-with-sha3-224" +#define LN_RSA_SHA3_224 "RSA-SHA3-224" +#define NID_RSA_SHA3_224 1116 +#define OBJ_RSA_SHA3_224 OBJ_sigAlgs,13L + +#define SN_RSA_SHA3_256 "id-rsassa-pkcs1-v1_5-with-sha3-256" +#define LN_RSA_SHA3_256 "RSA-SHA3-256" +#define NID_RSA_SHA3_256 1117 +#define OBJ_RSA_SHA3_256 OBJ_sigAlgs,14L + +#define SN_RSA_SHA3_384 "id-rsassa-pkcs1-v1_5-with-sha3-384" +#define LN_RSA_SHA3_384 "RSA-SHA3-384" +#define NID_RSA_SHA3_384 1118 +#define OBJ_RSA_SHA3_384 OBJ_sigAlgs,15L + +#define SN_RSA_SHA3_512 "id-rsassa-pkcs1-v1_5-with-sha3-512" +#define LN_RSA_SHA3_512 "RSA-SHA3-512" +#define NID_RSA_SHA3_512 1119 +#define OBJ_RSA_SHA3_512 OBJ_sigAlgs,16L + +#define SN_hold_instruction_code "holdInstructionCode" +#define LN_hold_instruction_code "Hold Instruction Code" +#define NID_hold_instruction_code 430 +#define OBJ_hold_instruction_code OBJ_id_ce,23L + +#define OBJ_holdInstruction OBJ_X9_57,2L + +#define SN_hold_instruction_none "holdInstructionNone" +#define LN_hold_instruction_none "Hold Instruction None" +#define NID_hold_instruction_none 431 +#define OBJ_hold_instruction_none OBJ_holdInstruction,1L + +#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" +#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" +#define NID_hold_instruction_call_issuer 432 +#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L + +#define SN_hold_instruction_reject "holdInstructionReject" +#define LN_hold_instruction_reject "Hold Instruction Reject" +#define NID_hold_instruction_reject 433 +#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L + +#define SN_data "data" +#define NID_data 434 +#define OBJ_data OBJ_itu_t,9L + +#define SN_pss "pss" +#define NID_pss 435 +#define OBJ_pss OBJ_data,2342L + +#define SN_ucl "ucl" +#define NID_ucl 436 +#define OBJ_ucl OBJ_pss,19200300L + +#define SN_pilot "pilot" +#define NID_pilot 437 +#define OBJ_pilot OBJ_ucl,100L + +#define LN_pilotAttributeType "pilotAttributeType" +#define NID_pilotAttributeType 438 +#define OBJ_pilotAttributeType OBJ_pilot,1L + +#define LN_pilotAttributeSyntax "pilotAttributeSyntax" +#define NID_pilotAttributeSyntax 439 +#define OBJ_pilotAttributeSyntax OBJ_pilot,3L + +#define LN_pilotObjectClass "pilotObjectClass" +#define NID_pilotObjectClass 440 +#define OBJ_pilotObjectClass OBJ_pilot,4L + +#define LN_pilotGroups "pilotGroups" +#define NID_pilotGroups 441 +#define OBJ_pilotGroups OBJ_pilot,10L + +#define LN_iA5StringSyntax "iA5StringSyntax" +#define NID_iA5StringSyntax 442 +#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L + +#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" +#define NID_caseIgnoreIA5StringSyntax 443 +#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L + +#define LN_pilotObject "pilotObject" +#define NID_pilotObject 444 +#define OBJ_pilotObject OBJ_pilotObjectClass,3L + +#define LN_pilotPerson "pilotPerson" +#define NID_pilotPerson 445 +#define OBJ_pilotPerson OBJ_pilotObjectClass,4L + +#define SN_account "account" +#define NID_account 446 +#define OBJ_account OBJ_pilotObjectClass,5L + +#define SN_document "document" +#define NID_document 447 +#define OBJ_document OBJ_pilotObjectClass,6L + +#define SN_room "room" +#define NID_room 448 +#define OBJ_room OBJ_pilotObjectClass,7L + +#define LN_documentSeries "documentSeries" +#define NID_documentSeries 449 +#define OBJ_documentSeries OBJ_pilotObjectClass,9L + +#define SN_Domain "domain" +#define LN_Domain "Domain" +#define NID_Domain 392 +#define OBJ_Domain OBJ_pilotObjectClass,13L + +#define LN_rFC822localPart "rFC822localPart" +#define NID_rFC822localPart 450 +#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L + +#define LN_dNSDomain "dNSDomain" +#define NID_dNSDomain 451 +#define OBJ_dNSDomain OBJ_pilotObjectClass,15L + +#define LN_domainRelatedObject "domainRelatedObject" +#define NID_domainRelatedObject 452 +#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L + +#define LN_friendlyCountry "friendlyCountry" +#define NID_friendlyCountry 453 +#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L + +#define LN_simpleSecurityObject "simpleSecurityObject" +#define NID_simpleSecurityObject 454 +#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L + +#define LN_pilotOrganization "pilotOrganization" +#define NID_pilotOrganization 455 +#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L + +#define LN_pilotDSA "pilotDSA" +#define NID_pilotDSA 456 +#define OBJ_pilotDSA OBJ_pilotObjectClass,21L + +#define LN_qualityLabelledData "qualityLabelledData" +#define NID_qualityLabelledData 457 +#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L + +#define SN_userId "UID" +#define LN_userId "userId" +#define NID_userId 458 +#define OBJ_userId OBJ_pilotAttributeType,1L + +#define LN_textEncodedORAddress "textEncodedORAddress" +#define NID_textEncodedORAddress 459 +#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L + +#define SN_rfc822Mailbox "mail" +#define LN_rfc822Mailbox "rfc822Mailbox" +#define NID_rfc822Mailbox 460 +#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L + +#define SN_info "info" +#define NID_info 461 +#define OBJ_info OBJ_pilotAttributeType,4L + +#define LN_favouriteDrink "favouriteDrink" +#define NID_favouriteDrink 462 +#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L + +#define LN_roomNumber "roomNumber" +#define NID_roomNumber 463 +#define OBJ_roomNumber OBJ_pilotAttributeType,6L + +#define SN_photo "photo" +#define NID_photo 464 +#define OBJ_photo OBJ_pilotAttributeType,7L + +#define LN_userClass "userClass" +#define NID_userClass 465 +#define OBJ_userClass OBJ_pilotAttributeType,8L + +#define SN_host "host" +#define NID_host 466 +#define OBJ_host OBJ_pilotAttributeType,9L + +#define SN_manager "manager" +#define NID_manager 467 +#define OBJ_manager OBJ_pilotAttributeType,10L + +#define LN_documentIdentifier "documentIdentifier" +#define NID_documentIdentifier 468 +#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L + +#define LN_documentTitle "documentTitle" +#define NID_documentTitle 469 +#define OBJ_documentTitle OBJ_pilotAttributeType,12L + +#define LN_documentVersion "documentVersion" +#define NID_documentVersion 470 +#define OBJ_documentVersion OBJ_pilotAttributeType,13L + +#define LN_documentAuthor "documentAuthor" +#define NID_documentAuthor 471 +#define OBJ_documentAuthor OBJ_pilotAttributeType,14L + +#define LN_documentLocation "documentLocation" +#define NID_documentLocation 472 +#define OBJ_documentLocation OBJ_pilotAttributeType,15L + +#define LN_homeTelephoneNumber "homeTelephoneNumber" +#define NID_homeTelephoneNumber 473 +#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L + +#define SN_secretary "secretary" +#define NID_secretary 474 +#define OBJ_secretary OBJ_pilotAttributeType,21L + +#define LN_otherMailbox "otherMailbox" +#define NID_otherMailbox 475 +#define OBJ_otherMailbox OBJ_pilotAttributeType,22L + +#define LN_lastModifiedTime "lastModifiedTime" +#define NID_lastModifiedTime 476 +#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L + +#define LN_lastModifiedBy "lastModifiedBy" +#define NID_lastModifiedBy 477 +#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L + +#define SN_domainComponent "DC" +#define LN_domainComponent "domainComponent" +#define NID_domainComponent 391 +#define OBJ_domainComponent OBJ_pilotAttributeType,25L + +#define LN_aRecord "aRecord" +#define NID_aRecord 478 +#define OBJ_aRecord OBJ_pilotAttributeType,26L + +#define LN_pilotAttributeType27 "pilotAttributeType27" +#define NID_pilotAttributeType27 479 +#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L + +#define LN_mXRecord "mXRecord" +#define NID_mXRecord 480 +#define OBJ_mXRecord OBJ_pilotAttributeType,28L + +#define LN_nSRecord "nSRecord" +#define NID_nSRecord 481 +#define OBJ_nSRecord OBJ_pilotAttributeType,29L + +#define LN_sOARecord "sOARecord" +#define NID_sOARecord 482 +#define OBJ_sOARecord OBJ_pilotAttributeType,30L + +#define LN_cNAMERecord "cNAMERecord" +#define NID_cNAMERecord 483 +#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L + +#define LN_associatedDomain "associatedDomain" +#define NID_associatedDomain 484 +#define OBJ_associatedDomain OBJ_pilotAttributeType,37L + +#define LN_associatedName "associatedName" +#define NID_associatedName 485 +#define OBJ_associatedName OBJ_pilotAttributeType,38L + +#define LN_homePostalAddress "homePostalAddress" +#define NID_homePostalAddress 486 +#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L + +#define LN_personalTitle "personalTitle" +#define NID_personalTitle 487 +#define OBJ_personalTitle OBJ_pilotAttributeType,40L + +#define LN_mobileTelephoneNumber "mobileTelephoneNumber" +#define NID_mobileTelephoneNumber 488 +#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L + +#define LN_pagerTelephoneNumber "pagerTelephoneNumber" +#define NID_pagerTelephoneNumber 489 +#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L + +#define LN_friendlyCountryName "friendlyCountryName" +#define NID_friendlyCountryName 490 +#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L + +#define SN_uniqueIdentifier "uid" +#define LN_uniqueIdentifier "uniqueIdentifier" +#define NID_uniqueIdentifier 102 +#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L + +#define LN_organizationalStatus "organizationalStatus" +#define NID_organizationalStatus 491 +#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L + +#define LN_janetMailbox "janetMailbox" +#define NID_janetMailbox 492 +#define OBJ_janetMailbox OBJ_pilotAttributeType,46L + +#define LN_mailPreferenceOption "mailPreferenceOption" +#define NID_mailPreferenceOption 493 +#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L + +#define LN_buildingName "buildingName" +#define NID_buildingName 494 +#define OBJ_buildingName OBJ_pilotAttributeType,48L + +#define LN_dSAQuality "dSAQuality" +#define NID_dSAQuality 495 +#define OBJ_dSAQuality OBJ_pilotAttributeType,49L + +#define LN_singleLevelQuality "singleLevelQuality" +#define NID_singleLevelQuality 496 +#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L + +#define LN_subtreeMinimumQuality "subtreeMinimumQuality" +#define NID_subtreeMinimumQuality 497 +#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L + +#define LN_subtreeMaximumQuality "subtreeMaximumQuality" +#define NID_subtreeMaximumQuality 498 +#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L + +#define LN_personalSignature "personalSignature" +#define NID_personalSignature 499 +#define OBJ_personalSignature OBJ_pilotAttributeType,53L + +#define LN_dITRedirect "dITRedirect" +#define NID_dITRedirect 500 +#define OBJ_dITRedirect OBJ_pilotAttributeType,54L + +#define SN_audio "audio" +#define NID_audio 501 +#define OBJ_audio OBJ_pilotAttributeType,55L + +#define LN_documentPublisher "documentPublisher" +#define NID_documentPublisher 502 +#define OBJ_documentPublisher OBJ_pilotAttributeType,56L + +#define SN_id_set "id-set" +#define LN_id_set "Secure Electronic Transactions" +#define NID_id_set 512 +#define OBJ_id_set OBJ_international_organizations,42L + +#define SN_set_ctype "set-ctype" +#define LN_set_ctype "content types" +#define NID_set_ctype 513 +#define OBJ_set_ctype OBJ_id_set,0L + +#define SN_set_msgExt "set-msgExt" +#define LN_set_msgExt "message extensions" +#define NID_set_msgExt 514 +#define OBJ_set_msgExt OBJ_id_set,1L + +#define SN_set_attr "set-attr" +#define NID_set_attr 515 +#define OBJ_set_attr OBJ_id_set,3L + +#define SN_set_policy "set-policy" +#define NID_set_policy 516 +#define OBJ_set_policy OBJ_id_set,5L + +#define SN_set_certExt "set-certExt" +#define LN_set_certExt "certificate extensions" +#define NID_set_certExt 517 +#define OBJ_set_certExt OBJ_id_set,7L + +#define SN_set_brand "set-brand" +#define NID_set_brand 518 +#define OBJ_set_brand OBJ_id_set,8L + +#define SN_setct_PANData "setct-PANData" +#define NID_setct_PANData 519 +#define OBJ_setct_PANData OBJ_set_ctype,0L + +#define SN_setct_PANToken "setct-PANToken" +#define NID_setct_PANToken 520 +#define OBJ_setct_PANToken OBJ_set_ctype,1L + +#define SN_setct_PANOnly "setct-PANOnly" +#define NID_setct_PANOnly 521 +#define OBJ_setct_PANOnly OBJ_set_ctype,2L + +#define SN_setct_OIData "setct-OIData" +#define NID_setct_OIData 522 +#define OBJ_setct_OIData OBJ_set_ctype,3L + +#define SN_setct_PI "setct-PI" +#define NID_setct_PI 523 +#define OBJ_setct_PI OBJ_set_ctype,4L + +#define SN_setct_PIData "setct-PIData" +#define NID_setct_PIData 524 +#define OBJ_setct_PIData OBJ_set_ctype,5L + +#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" +#define NID_setct_PIDataUnsigned 525 +#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L + +#define SN_setct_HODInput "setct-HODInput" +#define NID_setct_HODInput 526 +#define OBJ_setct_HODInput OBJ_set_ctype,7L + +#define SN_setct_AuthResBaggage "setct-AuthResBaggage" +#define NID_setct_AuthResBaggage 527 +#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L + +#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" +#define NID_setct_AuthRevReqBaggage 528 +#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L + +#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" +#define NID_setct_AuthRevResBaggage 529 +#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L + +#define SN_setct_CapTokenSeq "setct-CapTokenSeq" +#define NID_setct_CapTokenSeq 530 +#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L + +#define SN_setct_PInitResData "setct-PInitResData" +#define NID_setct_PInitResData 531 +#define OBJ_setct_PInitResData OBJ_set_ctype,12L + +#define SN_setct_PI_TBS "setct-PI-TBS" +#define NID_setct_PI_TBS 532 +#define OBJ_setct_PI_TBS OBJ_set_ctype,13L + +#define SN_setct_PResData "setct-PResData" +#define NID_setct_PResData 533 +#define OBJ_setct_PResData OBJ_set_ctype,14L + +#define SN_setct_AuthReqTBS "setct-AuthReqTBS" +#define NID_setct_AuthReqTBS 534 +#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L + +#define SN_setct_AuthResTBS "setct-AuthResTBS" +#define NID_setct_AuthResTBS 535 +#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L + +#define SN_setct_AuthResTBSX "setct-AuthResTBSX" +#define NID_setct_AuthResTBSX 536 +#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L + +#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" +#define NID_setct_AuthTokenTBS 537 +#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L + +#define SN_setct_CapTokenData "setct-CapTokenData" +#define NID_setct_CapTokenData 538 +#define OBJ_setct_CapTokenData OBJ_set_ctype,20L + +#define SN_setct_CapTokenTBS "setct-CapTokenTBS" +#define NID_setct_CapTokenTBS 539 +#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L + +#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" +#define NID_setct_AcqCardCodeMsg 540 +#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L + +#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" +#define NID_setct_AuthRevReqTBS 541 +#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L + +#define SN_setct_AuthRevResData "setct-AuthRevResData" +#define NID_setct_AuthRevResData 542 +#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L + +#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" +#define NID_setct_AuthRevResTBS 543 +#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L + +#define SN_setct_CapReqTBS "setct-CapReqTBS" +#define NID_setct_CapReqTBS 544 +#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L + +#define SN_setct_CapReqTBSX "setct-CapReqTBSX" +#define NID_setct_CapReqTBSX 545 +#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L + +#define SN_setct_CapResData "setct-CapResData" +#define NID_setct_CapResData 546 +#define OBJ_setct_CapResData OBJ_set_ctype,28L + +#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" +#define NID_setct_CapRevReqTBS 547 +#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L + +#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" +#define NID_setct_CapRevReqTBSX 548 +#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L + +#define SN_setct_CapRevResData "setct-CapRevResData" +#define NID_setct_CapRevResData 549 +#define OBJ_setct_CapRevResData OBJ_set_ctype,31L + +#define SN_setct_CredReqTBS "setct-CredReqTBS" +#define NID_setct_CredReqTBS 550 +#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L + +#define SN_setct_CredReqTBSX "setct-CredReqTBSX" +#define NID_setct_CredReqTBSX 551 +#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L + +#define SN_setct_CredResData "setct-CredResData" +#define NID_setct_CredResData 552 +#define OBJ_setct_CredResData OBJ_set_ctype,34L + +#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" +#define NID_setct_CredRevReqTBS 553 +#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L + +#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" +#define NID_setct_CredRevReqTBSX 554 +#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L + +#define SN_setct_CredRevResData "setct-CredRevResData" +#define NID_setct_CredRevResData 555 +#define OBJ_setct_CredRevResData OBJ_set_ctype,37L + +#define SN_setct_PCertReqData "setct-PCertReqData" +#define NID_setct_PCertReqData 556 +#define OBJ_setct_PCertReqData OBJ_set_ctype,38L + +#define SN_setct_PCertResTBS "setct-PCertResTBS" +#define NID_setct_PCertResTBS 557 +#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L + +#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" +#define NID_setct_BatchAdminReqData 558 +#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L + +#define SN_setct_BatchAdminResData "setct-BatchAdminResData" +#define NID_setct_BatchAdminResData 559 +#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L + +#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" +#define NID_setct_CardCInitResTBS 560 +#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L + +#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" +#define NID_setct_MeAqCInitResTBS 561 +#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L + +#define SN_setct_RegFormResTBS "setct-RegFormResTBS" +#define NID_setct_RegFormResTBS 562 +#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L + +#define SN_setct_CertReqData "setct-CertReqData" +#define NID_setct_CertReqData 563 +#define OBJ_setct_CertReqData OBJ_set_ctype,45L + +#define SN_setct_CertReqTBS "setct-CertReqTBS" +#define NID_setct_CertReqTBS 564 +#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L + +#define SN_setct_CertResData "setct-CertResData" +#define NID_setct_CertResData 565 +#define OBJ_setct_CertResData OBJ_set_ctype,47L + +#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" +#define NID_setct_CertInqReqTBS 566 +#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L + +#define SN_setct_ErrorTBS "setct-ErrorTBS" +#define NID_setct_ErrorTBS 567 +#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L + +#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" +#define NID_setct_PIDualSignedTBE 568 +#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L + +#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" +#define NID_setct_PIUnsignedTBE 569 +#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L + +#define SN_setct_AuthReqTBE "setct-AuthReqTBE" +#define NID_setct_AuthReqTBE 570 +#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L + +#define SN_setct_AuthResTBE "setct-AuthResTBE" +#define NID_setct_AuthResTBE 571 +#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L + +#define SN_setct_AuthResTBEX "setct-AuthResTBEX" +#define NID_setct_AuthResTBEX 572 +#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L + +#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" +#define NID_setct_AuthTokenTBE 573 +#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L + +#define SN_setct_CapTokenTBE "setct-CapTokenTBE" +#define NID_setct_CapTokenTBE 574 +#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L + +#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" +#define NID_setct_CapTokenTBEX 575 +#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L + +#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" +#define NID_setct_AcqCardCodeMsgTBE 576 +#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L + +#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" +#define NID_setct_AuthRevReqTBE 577 +#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L + +#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" +#define NID_setct_AuthRevResTBE 578 +#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L + +#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" +#define NID_setct_AuthRevResTBEB 579 +#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L + +#define SN_setct_CapReqTBE "setct-CapReqTBE" +#define NID_setct_CapReqTBE 580 +#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L + +#define SN_setct_CapReqTBEX "setct-CapReqTBEX" +#define NID_setct_CapReqTBEX 581 +#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L + +#define SN_setct_CapResTBE "setct-CapResTBE" +#define NID_setct_CapResTBE 582 +#define OBJ_setct_CapResTBE OBJ_set_ctype,64L + +#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" +#define NID_setct_CapRevReqTBE 583 +#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L + +#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" +#define NID_setct_CapRevReqTBEX 584 +#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L + +#define SN_setct_CapRevResTBE "setct-CapRevResTBE" +#define NID_setct_CapRevResTBE 585 +#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L + +#define SN_setct_CredReqTBE "setct-CredReqTBE" +#define NID_setct_CredReqTBE 586 +#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L + +#define SN_setct_CredReqTBEX "setct-CredReqTBEX" +#define NID_setct_CredReqTBEX 587 +#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L + +#define SN_setct_CredResTBE "setct-CredResTBE" +#define NID_setct_CredResTBE 588 +#define OBJ_setct_CredResTBE OBJ_set_ctype,70L + +#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" +#define NID_setct_CredRevReqTBE 589 +#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L + +#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" +#define NID_setct_CredRevReqTBEX 590 +#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L + +#define SN_setct_CredRevResTBE "setct-CredRevResTBE" +#define NID_setct_CredRevResTBE 591 +#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L + +#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" +#define NID_setct_BatchAdminReqTBE 592 +#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L + +#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" +#define NID_setct_BatchAdminResTBE 593 +#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L + +#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" +#define NID_setct_RegFormReqTBE 594 +#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L + +#define SN_setct_CertReqTBE "setct-CertReqTBE" +#define NID_setct_CertReqTBE 595 +#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L + +#define SN_setct_CertReqTBEX "setct-CertReqTBEX" +#define NID_setct_CertReqTBEX 596 +#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L + +#define SN_setct_CertResTBE "setct-CertResTBE" +#define NID_setct_CertResTBE 597 +#define OBJ_setct_CertResTBE OBJ_set_ctype,79L + +#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" +#define NID_setct_CRLNotificationTBS 598 +#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L + +#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" +#define NID_setct_CRLNotificationResTBS 599 +#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L + +#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" +#define NID_setct_BCIDistributionTBS 600 +#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L + +#define SN_setext_genCrypt "setext-genCrypt" +#define LN_setext_genCrypt "generic cryptogram" +#define NID_setext_genCrypt 601 +#define OBJ_setext_genCrypt OBJ_set_msgExt,1L + +#define SN_setext_miAuth "setext-miAuth" +#define LN_setext_miAuth "merchant initiated auth" +#define NID_setext_miAuth 602 +#define OBJ_setext_miAuth OBJ_set_msgExt,3L + +#define SN_setext_pinSecure "setext-pinSecure" +#define NID_setext_pinSecure 603 +#define OBJ_setext_pinSecure OBJ_set_msgExt,4L + +#define SN_setext_pinAny "setext-pinAny" +#define NID_setext_pinAny 604 +#define OBJ_setext_pinAny OBJ_set_msgExt,5L + +#define SN_setext_track2 "setext-track2" +#define NID_setext_track2 605 +#define OBJ_setext_track2 OBJ_set_msgExt,7L + +#define SN_setext_cv "setext-cv" +#define LN_setext_cv "additional verification" +#define NID_setext_cv 606 +#define OBJ_setext_cv OBJ_set_msgExt,8L + +#define SN_set_policy_root "set-policy-root" +#define NID_set_policy_root 607 +#define OBJ_set_policy_root OBJ_set_policy,0L + +#define SN_setCext_hashedRoot "setCext-hashedRoot" +#define NID_setCext_hashedRoot 608 +#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L + +#define SN_setCext_certType "setCext-certType" +#define NID_setCext_certType 609 +#define OBJ_setCext_certType OBJ_set_certExt,1L + +#define SN_setCext_merchData "setCext-merchData" +#define NID_setCext_merchData 610 +#define OBJ_setCext_merchData OBJ_set_certExt,2L + +#define SN_setCext_cCertRequired "setCext-cCertRequired" +#define NID_setCext_cCertRequired 611 +#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L + +#define SN_setCext_tunneling "setCext-tunneling" +#define NID_setCext_tunneling 612 +#define OBJ_setCext_tunneling OBJ_set_certExt,4L + +#define SN_setCext_setExt "setCext-setExt" +#define NID_setCext_setExt 613 +#define OBJ_setCext_setExt OBJ_set_certExt,5L + +#define SN_setCext_setQualf "setCext-setQualf" +#define NID_setCext_setQualf 614 +#define OBJ_setCext_setQualf OBJ_set_certExt,6L + +#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" +#define NID_setCext_PGWYcapabilities 615 +#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L + +#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" +#define NID_setCext_TokenIdentifier 616 +#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L + +#define SN_setCext_Track2Data "setCext-Track2Data" +#define NID_setCext_Track2Data 617 +#define OBJ_setCext_Track2Data OBJ_set_certExt,9L + +#define SN_setCext_TokenType "setCext-TokenType" +#define NID_setCext_TokenType 618 +#define OBJ_setCext_TokenType OBJ_set_certExt,10L + +#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" +#define NID_setCext_IssuerCapabilities 619 +#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L + +#define SN_setAttr_Cert "setAttr-Cert" +#define NID_setAttr_Cert 620 +#define OBJ_setAttr_Cert OBJ_set_attr,0L + +#define SN_setAttr_PGWYcap "setAttr-PGWYcap" +#define LN_setAttr_PGWYcap "payment gateway capabilities" +#define NID_setAttr_PGWYcap 621 +#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L + +#define SN_setAttr_TokenType "setAttr-TokenType" +#define NID_setAttr_TokenType 622 +#define OBJ_setAttr_TokenType OBJ_set_attr,2L + +#define SN_setAttr_IssCap "setAttr-IssCap" +#define LN_setAttr_IssCap "issuer capabilities" +#define NID_setAttr_IssCap 623 +#define OBJ_setAttr_IssCap OBJ_set_attr,3L + +#define SN_set_rootKeyThumb "set-rootKeyThumb" +#define NID_set_rootKeyThumb 624 +#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L + +#define SN_set_addPolicy "set-addPolicy" +#define NID_set_addPolicy 625 +#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L + +#define SN_setAttr_Token_EMV "setAttr-Token-EMV" +#define NID_setAttr_Token_EMV 626 +#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L + +#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" +#define NID_setAttr_Token_B0Prime 627 +#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L + +#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" +#define NID_setAttr_IssCap_CVM 628 +#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L + +#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" +#define NID_setAttr_IssCap_T2 629 +#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L + +#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" +#define NID_setAttr_IssCap_Sig 630 +#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L + +#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" +#define LN_setAttr_GenCryptgrm "generate cryptogram" +#define NID_setAttr_GenCryptgrm 631 +#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L + +#define SN_setAttr_T2Enc "setAttr-T2Enc" +#define LN_setAttr_T2Enc "encrypted track 2" +#define NID_setAttr_T2Enc 632 +#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L + +#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" +#define LN_setAttr_T2cleartxt "cleartext track 2" +#define NID_setAttr_T2cleartxt 633 +#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L + +#define SN_setAttr_TokICCsig "setAttr-TokICCsig" +#define LN_setAttr_TokICCsig "ICC or token signature" +#define NID_setAttr_TokICCsig 634 +#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L + +#define SN_setAttr_SecDevSig "setAttr-SecDevSig" +#define LN_setAttr_SecDevSig "secure device signature" +#define NID_setAttr_SecDevSig 635 +#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L + +#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" +#define NID_set_brand_IATA_ATA 636 +#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L + +#define SN_set_brand_Diners "set-brand-Diners" +#define NID_set_brand_Diners 637 +#define OBJ_set_brand_Diners OBJ_set_brand,30L + +#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" +#define NID_set_brand_AmericanExpress 638 +#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L + +#define SN_set_brand_JCB "set-brand-JCB" +#define NID_set_brand_JCB 639 +#define OBJ_set_brand_JCB OBJ_set_brand,35L + +#define SN_set_brand_Visa "set-brand-Visa" +#define NID_set_brand_Visa 640 +#define OBJ_set_brand_Visa OBJ_set_brand,4L + +#define SN_set_brand_MasterCard "set-brand-MasterCard" +#define NID_set_brand_MasterCard 641 +#define OBJ_set_brand_MasterCard OBJ_set_brand,5L + +#define SN_set_brand_Novus "set-brand-Novus" +#define NID_set_brand_Novus 642 +#define OBJ_set_brand_Novus OBJ_set_brand,6011L + +#define SN_des_cdmf "DES-CDMF" +#define LN_des_cdmf "des-cdmf" +#define NID_des_cdmf 643 +#define OBJ_des_cdmf OBJ_rsadsi,3L,10L + +#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" +#define NID_rsaOAEPEncryptionSET 644 +#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L + +#define SN_ipsec3 "Oakley-EC2N-3" +#define LN_ipsec3 "ipsec3" +#define NID_ipsec3 749 + +#define SN_ipsec4 "Oakley-EC2N-4" +#define LN_ipsec4 "ipsec4" +#define NID_ipsec4 750 + +#define SN_whirlpool "whirlpool" +#define NID_whirlpool 804 +#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L + +#define SN_cryptopro "cryptopro" +#define NID_cryptopro 805 +#define OBJ_cryptopro OBJ_member_body,643L,2L,2L + +#define SN_cryptocom "cryptocom" +#define NID_cryptocom 806 +#define OBJ_cryptocom OBJ_member_body,643L,2L,9L + +#define SN_id_tc26 "id-tc26" +#define NID_id_tc26 974 +#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L + +#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" +#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" +#define NID_id_GostR3411_94_with_GostR3410_2001 807 +#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L + +#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" +#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" +#define NID_id_GostR3411_94_with_GostR3410_94 808 +#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L + +#define SN_id_GostR3411_94 "md_gost94" +#define LN_id_GostR3411_94 "GOST R 34.11-94" +#define NID_id_GostR3411_94 809 +#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L + +#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" +#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" +#define NID_id_HMACGostR3411_94 810 +#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L + +#define SN_id_GostR3410_2001 "gost2001" +#define LN_id_GostR3410_2001 "GOST R 34.10-2001" +#define NID_id_GostR3410_2001 811 +#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L + +#define SN_id_GostR3410_94 "gost94" +#define LN_id_GostR3410_94 "GOST R 34.10-94" +#define NID_id_GostR3410_94 812 +#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L + +#define SN_id_Gost28147_89 "gost89" +#define LN_id_Gost28147_89 "GOST 28147-89" +#define NID_id_Gost28147_89 813 +#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L + +#define SN_gost89_cnt "gost89-cnt" +#define NID_gost89_cnt 814 + +#define SN_gost89_cnt_12 "gost89-cnt-12" +#define NID_gost89_cnt_12 975 + +#define SN_gost89_cbc "gost89-cbc" +#define NID_gost89_cbc 1009 + +#define SN_gost89_ecb "gost89-ecb" +#define NID_gost89_ecb 1010 + +#define SN_gost89_ctr "gost89-ctr" +#define NID_gost89_ctr 1011 + +#define SN_id_Gost28147_89_MAC "gost-mac" +#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" +#define NID_id_Gost28147_89_MAC 815 +#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L + +#define SN_gost_mac_12 "gost-mac-12" +#define NID_gost_mac_12 976 + +#define SN_id_GostR3411_94_prf "prf-gostr3411-94" +#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" +#define NID_id_GostR3411_94_prf 816 +#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L + +#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" +#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" +#define NID_id_GostR3410_2001DH 817 +#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L + +#define SN_id_GostR3410_94DH "id-GostR3410-94DH" +#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" +#define NID_id_GostR3410_94DH 818 +#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L + +#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" +#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 +#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L + +#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" +#define NID_id_Gost28147_89_None_KeyMeshing 820 +#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L + +#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" +#define NID_id_GostR3411_94_TestParamSet 821 +#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L + +#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" +#define NID_id_GostR3411_94_CryptoProParamSet 822 +#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L + +#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" +#define NID_id_Gost28147_89_TestParamSet 823 +#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L + +#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 +#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L + +#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 +#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L + +#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 +#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L + +#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 +#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L + +#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 +#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L + +#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" +#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 +#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L + +#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" +#define NID_id_GostR3410_94_TestParamSet 831 +#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L + +#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 +#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L + +#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 +#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L + +#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 +#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L + +#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 +#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L + +#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 +#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L + +#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 +#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L + +#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" +#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 +#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L + +#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" +#define NID_id_GostR3410_2001_TestParamSet 839 +#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L + +#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 +#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L + +#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 +#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L + +#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 +#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L + +#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 +#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L + +#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" +#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 +#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L + +#define SN_id_GostR3410_94_a "id-GostR3410-94-a" +#define NID_id_GostR3410_94_a 845 +#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L + +#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" +#define NID_id_GostR3410_94_aBis 846 +#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L + +#define SN_id_GostR3410_94_b "id-GostR3410-94-b" +#define NID_id_GostR3410_94_b 847 +#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L + +#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" +#define NID_id_GostR3410_94_bBis 848 +#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L + +#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" +#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" +#define NID_id_Gost28147_89_cc 849 +#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L + +#define SN_id_GostR3410_94_cc "gost94cc" +#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" +#define NID_id_GostR3410_94_cc 850 +#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L + +#define SN_id_GostR3410_2001_cc "gost2001cc" +#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" +#define NID_id_GostR3410_2001_cc 851 +#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L + +#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" +#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 +#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L + +#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" +#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" +#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 +#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L + +#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" +#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" +#define NID_id_GostR3410_2001_ParamSet_cc 854 +#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L + +#define SN_id_tc26_algorithms "id-tc26-algorithms" +#define NID_id_tc26_algorithms 977 +#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L + +#define SN_id_tc26_sign "id-tc26-sign" +#define NID_id_tc26_sign 978 +#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L + +#define SN_id_GostR3410_2012_256 "gost2012_256" +#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" +#define NID_id_GostR3410_2012_256 979 +#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L + +#define SN_id_GostR3410_2012_512 "gost2012_512" +#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" +#define NID_id_GostR3410_2012_512 980 +#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L + +#define SN_id_tc26_digest "id-tc26-digest" +#define NID_id_tc26_digest 981 +#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L + +#define SN_id_GostR3411_2012_256 "md_gost12_256" +#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" +#define NID_id_GostR3411_2012_256 982 +#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L + +#define SN_id_GostR3411_2012_512 "md_gost12_512" +#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" +#define NID_id_GostR3411_2012_512 983 +#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L + +#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" +#define NID_id_tc26_signwithdigest 984 +#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L + +#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" +#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L + +#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" +#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" +#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 +#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L + +#define SN_id_tc26_mac "id-tc26-mac" +#define NID_id_tc26_mac 987 +#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L + +#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" +#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" +#define NID_id_tc26_hmac_gost_3411_2012_256 988 +#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L + +#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" +#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" +#define NID_id_tc26_hmac_gost_3411_2012_512 989 +#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L + +#define SN_id_tc26_cipher "id-tc26-cipher" +#define NID_id_tc26_cipher 990 +#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L + +#define SN_id_tc26_cipher_gostr3412_2015_magma "id-tc26-cipher-gostr3412-2015-magma" +#define NID_id_tc26_cipher_gostr3412_2015_magma 1173 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L + +#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm "id-tc26-cipher-gostr3412-2015-magma-ctracpkm" +#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm 1174 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L + +#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac" +#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac 1175 +#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik 1176 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm 1177 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L + +#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac" +#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac 1178 +#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L + +#define SN_id_tc26_agreement "id-tc26-agreement" +#define NID_id_tc26_agreement 991 +#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L + +#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" +#define NID_id_tc26_agreement_gost_3410_2012_256 992 +#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L + +#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" +#define NID_id_tc26_agreement_gost_3410_2012_512 993 +#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L + +#define SN_id_tc26_wrap "id-tc26-wrap" +#define NID_id_tc26_wrap 1179 +#define OBJ_id_tc26_wrap OBJ_id_tc26_algorithms,7L + +#define SN_id_tc26_wrap_gostr3412_2015_magma "id-tc26-wrap-gostr3412-2015-magma" +#define NID_id_tc26_wrap_gostr3412_2015_magma 1180 +#define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L + +#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 "id-tc26-wrap-gostr3412-2015-magma-kexp15" +#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 1181 +#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L + +#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik" +#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik 1182 +#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L + +#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" +#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1183 +#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L + +#define SN_id_tc26_constants "id-tc26-constants" +#define NID_id_tc26_constants 994 +#define OBJ_id_tc26_constants OBJ_id_tc26,2L + +#define SN_id_tc26_sign_constants "id-tc26-sign-constants" +#define NID_id_tc26_sign_constants 995 +#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L + +#define SN_id_tc26_gost_3410_2012_256_constants "id-tc26-gost-3410-2012-256-constants" +#define NID_id_tc26_gost_3410_2012_256_constants 1147 +#define OBJ_id_tc26_gost_3410_2012_256_constants OBJ_id_tc26_sign_constants,1L + +#define SN_id_tc26_gost_3410_2012_256_paramSetA "id-tc26-gost-3410-2012-256-paramSetA" +#define LN_id_tc26_gost_3410_2012_256_paramSetA "GOST R 34.10-2012 (256 bit) ParamSet A" +#define NID_id_tc26_gost_3410_2012_256_paramSetA 1148 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetA OBJ_id_tc26_gost_3410_2012_256_constants,1L + +#define SN_id_tc26_gost_3410_2012_256_paramSetB "id-tc26-gost-3410-2012-256-paramSetB" +#define LN_id_tc26_gost_3410_2012_256_paramSetB "GOST R 34.10-2012 (256 bit) ParamSet B" +#define NID_id_tc26_gost_3410_2012_256_paramSetB 1184 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetB OBJ_id_tc26_gost_3410_2012_256_constants,2L + +#define SN_id_tc26_gost_3410_2012_256_paramSetC "id-tc26-gost-3410-2012-256-paramSetC" +#define LN_id_tc26_gost_3410_2012_256_paramSetC "GOST R 34.10-2012 (256 bit) ParamSet C" +#define NID_id_tc26_gost_3410_2012_256_paramSetC 1185 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetC OBJ_id_tc26_gost_3410_2012_256_constants,3L + +#define SN_id_tc26_gost_3410_2012_256_paramSetD "id-tc26-gost-3410-2012-256-paramSetD" +#define LN_id_tc26_gost_3410_2012_256_paramSetD "GOST R 34.10-2012 (256 bit) ParamSet D" +#define NID_id_tc26_gost_3410_2012_256_paramSetD 1186 +#define OBJ_id_tc26_gost_3410_2012_256_paramSetD OBJ_id_tc26_gost_3410_2012_256_constants,4L + +#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" +#define NID_id_tc26_gost_3410_2012_512_constants 996 +#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L + +#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" +#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" +#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L + +#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" +#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" +#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L + +#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" +#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" +#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L + +#define SN_id_tc26_gost_3410_2012_512_paramSetC "id-tc26-gost-3410-2012-512-paramSetC" +#define LN_id_tc26_gost_3410_2012_512_paramSetC "GOST R 34.10-2012 (512 bit) ParamSet C" +#define NID_id_tc26_gost_3410_2012_512_paramSetC 1149 +#define OBJ_id_tc26_gost_3410_2012_512_paramSetC OBJ_id_tc26_gost_3410_2012_512_constants,3L + +#define SN_id_tc26_digest_constants "id-tc26-digest-constants" +#define NID_id_tc26_digest_constants 1000 +#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L + +#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" +#define NID_id_tc26_cipher_constants 1001 +#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L + +#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" +#define NID_id_tc26_gost_28147_constants 1002 +#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L + +#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" +#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" +#define NID_id_tc26_gost_28147_param_Z 1003 +#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L + +#define SN_INN "INN" +#define LN_INN "INN" +#define NID_INN 1004 +#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L + +#define SN_OGRN "OGRN" +#define LN_OGRN "OGRN" +#define NID_OGRN 1005 +#define OBJ_OGRN OBJ_member_body,643L,100L,1L + +#define SN_SNILS "SNILS" +#define LN_SNILS "SNILS" +#define NID_SNILS 1006 +#define OBJ_SNILS OBJ_member_body,643L,100L,3L + +#define SN_subjectSignTool "subjectSignTool" +#define LN_subjectSignTool "Signing Tool of Subject" +#define NID_subjectSignTool 1007 +#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L + +#define SN_issuerSignTool "issuerSignTool" +#define LN_issuerSignTool "Signing Tool of Issuer" +#define NID_issuerSignTool 1008 +#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L + +#define SN_grasshopper_ecb "grasshopper-ecb" +#define NID_grasshopper_ecb 1012 + +#define SN_grasshopper_ctr "grasshopper-ctr" +#define NID_grasshopper_ctr 1013 + +#define SN_grasshopper_ofb "grasshopper-ofb" +#define NID_grasshopper_ofb 1014 + +#define SN_grasshopper_cbc "grasshopper-cbc" +#define NID_grasshopper_cbc 1015 + +#define SN_grasshopper_cfb "grasshopper-cfb" +#define NID_grasshopper_cfb 1016 + +#define SN_grasshopper_mac "grasshopper-mac" +#define NID_grasshopper_mac 1017 + +#define SN_magma_ecb "magma-ecb" +#define NID_magma_ecb 1187 + +#define SN_magma_ctr "magma-ctr" +#define NID_magma_ctr 1188 + +#define SN_magma_ofb "magma-ofb" +#define NID_magma_ofb 1189 + +#define SN_magma_cbc "magma-cbc" +#define NID_magma_cbc 1190 + +#define SN_magma_cfb "magma-cfb" +#define NID_magma_cfb 1191 + +#define SN_magma_mac "magma-mac" +#define NID_magma_mac 1192 + +#define SN_camellia_128_cbc "CAMELLIA-128-CBC" +#define LN_camellia_128_cbc "camellia-128-cbc" +#define NID_camellia_128_cbc 751 +#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L + +#define SN_camellia_192_cbc "CAMELLIA-192-CBC" +#define LN_camellia_192_cbc "camellia-192-cbc" +#define NID_camellia_192_cbc 752 +#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L + +#define SN_camellia_256_cbc "CAMELLIA-256-CBC" +#define LN_camellia_256_cbc "camellia-256-cbc" +#define NID_camellia_256_cbc 753 +#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L + +#define SN_id_camellia128_wrap "id-camellia128-wrap" +#define NID_id_camellia128_wrap 907 +#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L + +#define SN_id_camellia192_wrap "id-camellia192-wrap" +#define NID_id_camellia192_wrap 908 +#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L + +#define SN_id_camellia256_wrap "id-camellia256-wrap" +#define NID_id_camellia256_wrap 909 +#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L + +#define OBJ_ntt_ds 0L,3L,4401L,5L + +#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L + +#define SN_camellia_128_ecb "CAMELLIA-128-ECB" +#define LN_camellia_128_ecb "camellia-128-ecb" +#define NID_camellia_128_ecb 754 +#define OBJ_camellia_128_ecb OBJ_camellia,1L + +#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" +#define LN_camellia_128_ofb128 "camellia-128-ofb" +#define NID_camellia_128_ofb128 766 +#define OBJ_camellia_128_ofb128 OBJ_camellia,3L + +#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" +#define LN_camellia_128_cfb128 "camellia-128-cfb" +#define NID_camellia_128_cfb128 757 +#define OBJ_camellia_128_cfb128 OBJ_camellia,4L + +#define SN_camellia_128_gcm "CAMELLIA-128-GCM" +#define LN_camellia_128_gcm "camellia-128-gcm" +#define NID_camellia_128_gcm 961 +#define OBJ_camellia_128_gcm OBJ_camellia,6L + +#define SN_camellia_128_ccm "CAMELLIA-128-CCM" +#define LN_camellia_128_ccm "camellia-128-ccm" +#define NID_camellia_128_ccm 962 +#define OBJ_camellia_128_ccm OBJ_camellia,7L + +#define SN_camellia_128_ctr "CAMELLIA-128-CTR" +#define LN_camellia_128_ctr "camellia-128-ctr" +#define NID_camellia_128_ctr 963 +#define OBJ_camellia_128_ctr OBJ_camellia,9L + +#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" +#define LN_camellia_128_cmac "camellia-128-cmac" +#define NID_camellia_128_cmac 964 +#define OBJ_camellia_128_cmac OBJ_camellia,10L + +#define SN_camellia_192_ecb "CAMELLIA-192-ECB" +#define LN_camellia_192_ecb "camellia-192-ecb" +#define NID_camellia_192_ecb 755 +#define OBJ_camellia_192_ecb OBJ_camellia,21L + +#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" +#define LN_camellia_192_ofb128 "camellia-192-ofb" +#define NID_camellia_192_ofb128 767 +#define OBJ_camellia_192_ofb128 OBJ_camellia,23L + +#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" +#define LN_camellia_192_cfb128 "camellia-192-cfb" +#define NID_camellia_192_cfb128 758 +#define OBJ_camellia_192_cfb128 OBJ_camellia,24L + +#define SN_camellia_192_gcm "CAMELLIA-192-GCM" +#define LN_camellia_192_gcm "camellia-192-gcm" +#define NID_camellia_192_gcm 965 +#define OBJ_camellia_192_gcm OBJ_camellia,26L + +#define SN_camellia_192_ccm "CAMELLIA-192-CCM" +#define LN_camellia_192_ccm "camellia-192-ccm" +#define NID_camellia_192_ccm 966 +#define OBJ_camellia_192_ccm OBJ_camellia,27L + +#define SN_camellia_192_ctr "CAMELLIA-192-CTR" +#define LN_camellia_192_ctr "camellia-192-ctr" +#define NID_camellia_192_ctr 967 +#define OBJ_camellia_192_ctr OBJ_camellia,29L + +#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" +#define LN_camellia_192_cmac "camellia-192-cmac" +#define NID_camellia_192_cmac 968 +#define OBJ_camellia_192_cmac OBJ_camellia,30L + +#define SN_camellia_256_ecb "CAMELLIA-256-ECB" +#define LN_camellia_256_ecb "camellia-256-ecb" +#define NID_camellia_256_ecb 756 +#define OBJ_camellia_256_ecb OBJ_camellia,41L + +#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" +#define LN_camellia_256_ofb128 "camellia-256-ofb" +#define NID_camellia_256_ofb128 768 +#define OBJ_camellia_256_ofb128 OBJ_camellia,43L + +#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" +#define LN_camellia_256_cfb128 "camellia-256-cfb" +#define NID_camellia_256_cfb128 759 +#define OBJ_camellia_256_cfb128 OBJ_camellia,44L + +#define SN_camellia_256_gcm "CAMELLIA-256-GCM" +#define LN_camellia_256_gcm "camellia-256-gcm" +#define NID_camellia_256_gcm 969 +#define OBJ_camellia_256_gcm OBJ_camellia,46L + +#define SN_camellia_256_ccm "CAMELLIA-256-CCM" +#define LN_camellia_256_ccm "camellia-256-ccm" +#define NID_camellia_256_ccm 970 +#define OBJ_camellia_256_ccm OBJ_camellia,47L + +#define SN_camellia_256_ctr "CAMELLIA-256-CTR" +#define LN_camellia_256_ctr "camellia-256-ctr" +#define NID_camellia_256_ctr 971 +#define OBJ_camellia_256_ctr OBJ_camellia,49L + +#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" +#define LN_camellia_256_cmac "camellia-256-cmac" +#define NID_camellia_256_cmac 972 +#define OBJ_camellia_256_cmac OBJ_camellia,50L + +#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" +#define LN_camellia_128_cfb1 "camellia-128-cfb1" +#define NID_camellia_128_cfb1 760 + +#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" +#define LN_camellia_192_cfb1 "camellia-192-cfb1" +#define NID_camellia_192_cfb1 761 + +#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" +#define LN_camellia_256_cfb1 "camellia-256-cfb1" +#define NID_camellia_256_cfb1 762 + +#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" +#define LN_camellia_128_cfb8 "camellia-128-cfb8" +#define NID_camellia_128_cfb8 763 + +#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" +#define LN_camellia_192_cfb8 "camellia-192-cfb8" +#define NID_camellia_192_cfb8 764 + +#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" +#define LN_camellia_256_cfb8 "camellia-256-cfb8" +#define NID_camellia_256_cfb8 765 + +#define OBJ_aria 1L,2L,410L,200046L,1L,1L + +#define SN_aria_128_ecb "ARIA-128-ECB" +#define LN_aria_128_ecb "aria-128-ecb" +#define NID_aria_128_ecb 1065 +#define OBJ_aria_128_ecb OBJ_aria,1L + +#define SN_aria_128_cbc "ARIA-128-CBC" +#define LN_aria_128_cbc "aria-128-cbc" +#define NID_aria_128_cbc 1066 +#define OBJ_aria_128_cbc OBJ_aria,2L + +#define SN_aria_128_cfb128 "ARIA-128-CFB" +#define LN_aria_128_cfb128 "aria-128-cfb" +#define NID_aria_128_cfb128 1067 +#define OBJ_aria_128_cfb128 OBJ_aria,3L + +#define SN_aria_128_ofb128 "ARIA-128-OFB" +#define LN_aria_128_ofb128 "aria-128-ofb" +#define NID_aria_128_ofb128 1068 +#define OBJ_aria_128_ofb128 OBJ_aria,4L + +#define SN_aria_128_ctr "ARIA-128-CTR" +#define LN_aria_128_ctr "aria-128-ctr" +#define NID_aria_128_ctr 1069 +#define OBJ_aria_128_ctr OBJ_aria,5L + +#define SN_aria_192_ecb "ARIA-192-ECB" +#define LN_aria_192_ecb "aria-192-ecb" +#define NID_aria_192_ecb 1070 +#define OBJ_aria_192_ecb OBJ_aria,6L + +#define SN_aria_192_cbc "ARIA-192-CBC" +#define LN_aria_192_cbc "aria-192-cbc" +#define NID_aria_192_cbc 1071 +#define OBJ_aria_192_cbc OBJ_aria,7L + +#define SN_aria_192_cfb128 "ARIA-192-CFB" +#define LN_aria_192_cfb128 "aria-192-cfb" +#define NID_aria_192_cfb128 1072 +#define OBJ_aria_192_cfb128 OBJ_aria,8L + +#define SN_aria_192_ofb128 "ARIA-192-OFB" +#define LN_aria_192_ofb128 "aria-192-ofb" +#define NID_aria_192_ofb128 1073 +#define OBJ_aria_192_ofb128 OBJ_aria,9L + +#define SN_aria_192_ctr "ARIA-192-CTR" +#define LN_aria_192_ctr "aria-192-ctr" +#define NID_aria_192_ctr 1074 +#define OBJ_aria_192_ctr OBJ_aria,10L + +#define SN_aria_256_ecb "ARIA-256-ECB" +#define LN_aria_256_ecb "aria-256-ecb" +#define NID_aria_256_ecb 1075 +#define OBJ_aria_256_ecb OBJ_aria,11L + +#define SN_aria_256_cbc "ARIA-256-CBC" +#define LN_aria_256_cbc "aria-256-cbc" +#define NID_aria_256_cbc 1076 +#define OBJ_aria_256_cbc OBJ_aria,12L + +#define SN_aria_256_cfb128 "ARIA-256-CFB" +#define LN_aria_256_cfb128 "aria-256-cfb" +#define NID_aria_256_cfb128 1077 +#define OBJ_aria_256_cfb128 OBJ_aria,13L + +#define SN_aria_256_ofb128 "ARIA-256-OFB" +#define LN_aria_256_ofb128 "aria-256-ofb" +#define NID_aria_256_ofb128 1078 +#define OBJ_aria_256_ofb128 OBJ_aria,14L + +#define SN_aria_256_ctr "ARIA-256-CTR" +#define LN_aria_256_ctr "aria-256-ctr" +#define NID_aria_256_ctr 1079 +#define OBJ_aria_256_ctr OBJ_aria,15L + +#define SN_aria_128_cfb1 "ARIA-128-CFB1" +#define LN_aria_128_cfb1 "aria-128-cfb1" +#define NID_aria_128_cfb1 1080 + +#define SN_aria_192_cfb1 "ARIA-192-CFB1" +#define LN_aria_192_cfb1 "aria-192-cfb1" +#define NID_aria_192_cfb1 1081 + +#define SN_aria_256_cfb1 "ARIA-256-CFB1" +#define LN_aria_256_cfb1 "aria-256-cfb1" +#define NID_aria_256_cfb1 1082 + +#define SN_aria_128_cfb8 "ARIA-128-CFB8" +#define LN_aria_128_cfb8 "aria-128-cfb8" +#define NID_aria_128_cfb8 1083 + +#define SN_aria_192_cfb8 "ARIA-192-CFB8" +#define LN_aria_192_cfb8 "aria-192-cfb8" +#define NID_aria_192_cfb8 1084 + +#define SN_aria_256_cfb8 "ARIA-256-CFB8" +#define LN_aria_256_cfb8 "aria-256-cfb8" +#define NID_aria_256_cfb8 1085 + +#define SN_aria_128_ccm "ARIA-128-CCM" +#define LN_aria_128_ccm "aria-128-ccm" +#define NID_aria_128_ccm 1120 +#define OBJ_aria_128_ccm OBJ_aria,37L + +#define SN_aria_192_ccm "ARIA-192-CCM" +#define LN_aria_192_ccm "aria-192-ccm" +#define NID_aria_192_ccm 1121 +#define OBJ_aria_192_ccm OBJ_aria,38L + +#define SN_aria_256_ccm "ARIA-256-CCM" +#define LN_aria_256_ccm "aria-256-ccm" +#define NID_aria_256_ccm 1122 +#define OBJ_aria_256_ccm OBJ_aria,39L + +#define SN_aria_128_gcm "ARIA-128-GCM" +#define LN_aria_128_gcm "aria-128-gcm" +#define NID_aria_128_gcm 1123 +#define OBJ_aria_128_gcm OBJ_aria,34L + +#define SN_aria_192_gcm "ARIA-192-GCM" +#define LN_aria_192_gcm "aria-192-gcm" +#define NID_aria_192_gcm 1124 +#define OBJ_aria_192_gcm OBJ_aria,35L + +#define SN_aria_256_gcm "ARIA-256-GCM" +#define LN_aria_256_gcm "aria-256-gcm" +#define NID_aria_256_gcm 1125 +#define OBJ_aria_256_gcm OBJ_aria,36L + +#define SN_kisa "KISA" +#define LN_kisa "kisa" +#define NID_kisa 773 +#define OBJ_kisa OBJ_member_body,410L,200004L + +#define SN_seed_ecb "SEED-ECB" +#define LN_seed_ecb "seed-ecb" +#define NID_seed_ecb 776 +#define OBJ_seed_ecb OBJ_kisa,1L,3L + +#define SN_seed_cbc "SEED-CBC" +#define LN_seed_cbc "seed-cbc" +#define NID_seed_cbc 777 +#define OBJ_seed_cbc OBJ_kisa,1L,4L + +#define SN_seed_cfb128 "SEED-CFB" +#define LN_seed_cfb128 "seed-cfb" +#define NID_seed_cfb128 779 +#define OBJ_seed_cfb128 OBJ_kisa,1L,5L + +#define SN_seed_ofb128 "SEED-OFB" +#define LN_seed_ofb128 "seed-ofb" +#define NID_seed_ofb128 778 +#define OBJ_seed_ofb128 OBJ_kisa,1L,6L + +#define SN_sm4_ecb "SM4-ECB" +#define LN_sm4_ecb "sm4-ecb" +#define NID_sm4_ecb 1133 +#define OBJ_sm4_ecb OBJ_sm_scheme,104L,1L + +#define SN_sm4_cbc "SM4-CBC" +#define LN_sm4_cbc "sm4-cbc" +#define NID_sm4_cbc 1134 +#define OBJ_sm4_cbc OBJ_sm_scheme,104L,2L + +#define SN_sm4_ofb128 "SM4-OFB" +#define LN_sm4_ofb128 "sm4-ofb" +#define NID_sm4_ofb128 1135 +#define OBJ_sm4_ofb128 OBJ_sm_scheme,104L,3L + +#define SN_sm4_cfb128 "SM4-CFB" +#define LN_sm4_cfb128 "sm4-cfb" +#define NID_sm4_cfb128 1137 +#define OBJ_sm4_cfb128 OBJ_sm_scheme,104L,4L + +#define SN_sm4_cfb1 "SM4-CFB1" +#define LN_sm4_cfb1 "sm4-cfb1" +#define NID_sm4_cfb1 1136 +#define OBJ_sm4_cfb1 OBJ_sm_scheme,104L,5L + +#define SN_sm4_cfb8 "SM4-CFB8" +#define LN_sm4_cfb8 "sm4-cfb8" +#define NID_sm4_cfb8 1138 +#define OBJ_sm4_cfb8 OBJ_sm_scheme,104L,6L + +#define SN_sm4_ctr "SM4-CTR" +#define LN_sm4_ctr "sm4-ctr" +#define NID_sm4_ctr 1139 +#define OBJ_sm4_ctr OBJ_sm_scheme,104L,7L + +#define SN_hmac "HMAC" +#define LN_hmac "hmac" +#define NID_hmac 855 + +#define SN_cmac "CMAC" +#define LN_cmac "cmac" +#define NID_cmac 894 + +#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" +#define LN_rc4_hmac_md5 "rc4-hmac-md5" +#define NID_rc4_hmac_md5 915 + +#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" +#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" +#define NID_aes_128_cbc_hmac_sha1 916 + +#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" +#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" +#define NID_aes_192_cbc_hmac_sha1 917 + +#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" +#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" +#define NID_aes_256_cbc_hmac_sha1 918 + +#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" +#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" +#define NID_aes_128_cbc_hmac_sha256 948 + +#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" +#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" +#define NID_aes_192_cbc_hmac_sha256 949 + +#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" +#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" +#define NID_aes_256_cbc_hmac_sha256 950 + +#define SN_chacha20_poly1305 "ChaCha20-Poly1305" +#define LN_chacha20_poly1305 "chacha20-poly1305" +#define NID_chacha20_poly1305 1018 + +#define SN_chacha20 "ChaCha20" +#define LN_chacha20 "chacha20" +#define NID_chacha20 1019 + +#define SN_dhpublicnumber "dhpublicnumber" +#define LN_dhpublicnumber "X9.42 DH" +#define NID_dhpublicnumber 920 +#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L + +#define SN_brainpoolP160r1 "brainpoolP160r1" +#define NID_brainpoolP160r1 921 +#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L + +#define SN_brainpoolP160t1 "brainpoolP160t1" +#define NID_brainpoolP160t1 922 +#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L + +#define SN_brainpoolP192r1 "brainpoolP192r1" +#define NID_brainpoolP192r1 923 +#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L + +#define SN_brainpoolP192t1 "brainpoolP192t1" +#define NID_brainpoolP192t1 924 +#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L + +#define SN_brainpoolP224r1 "brainpoolP224r1" +#define NID_brainpoolP224r1 925 +#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L + +#define SN_brainpoolP224t1 "brainpoolP224t1" +#define NID_brainpoolP224t1 926 +#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L + +#define SN_brainpoolP256r1 "brainpoolP256r1" +#define NID_brainpoolP256r1 927 +#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L + +#define SN_brainpoolP256t1 "brainpoolP256t1" +#define NID_brainpoolP256t1 928 +#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L + +#define SN_brainpoolP320r1 "brainpoolP320r1" +#define NID_brainpoolP320r1 929 +#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L + +#define SN_brainpoolP320t1 "brainpoolP320t1" +#define NID_brainpoolP320t1 930 +#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L + +#define SN_brainpoolP384r1 "brainpoolP384r1" +#define NID_brainpoolP384r1 931 +#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L + +#define SN_brainpoolP384t1 "brainpoolP384t1" +#define NID_brainpoolP384t1 932 +#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L + +#define SN_brainpoolP512r1 "brainpoolP512r1" +#define NID_brainpoolP512r1 933 +#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L + +#define SN_brainpoolP512t1 "brainpoolP512t1" +#define NID_brainpoolP512t1 934 +#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L + +#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L + +#define OBJ_secg_scheme OBJ_certicom_arc,1L + +#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" +#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 +#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L + +#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" +#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 +#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L + +#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" +#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 +#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L + +#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" +#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 +#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L + +#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" +#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 +#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L + +#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 +#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L + +#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 +#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L + +#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 +#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L + +#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 +#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L + +#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 +#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L + +#define SN_dh_std_kdf "dh-std-kdf" +#define NID_dh_std_kdf 946 + +#define SN_dh_cofactor_kdf "dh-cofactor-kdf" +#define NID_dh_cofactor_kdf 947 + +#define SN_ct_precert_scts "ct_precert_scts" +#define LN_ct_precert_scts "CT Precertificate SCTs" +#define NID_ct_precert_scts 951 +#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L + +#define SN_ct_precert_poison "ct_precert_poison" +#define LN_ct_precert_poison "CT Precertificate Poison" +#define NID_ct_precert_poison 952 +#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L + +#define SN_ct_precert_signer "ct_precert_signer" +#define LN_ct_precert_signer "CT Precertificate Signer" +#define NID_ct_precert_signer 953 +#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L + +#define SN_ct_cert_scts "ct_cert_scts" +#define LN_ct_cert_scts "CT Certificate SCTs" +#define NID_ct_cert_scts 954 +#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L + +#define SN_jurisdictionLocalityName "jurisdictionL" +#define LN_jurisdictionLocalityName "jurisdictionLocalityName" +#define NID_jurisdictionLocalityName 955 +#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L + +#define SN_jurisdictionStateOrProvinceName "jurisdictionST" +#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" +#define NID_jurisdictionStateOrProvinceName 956 +#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L + +#define SN_jurisdictionCountryName "jurisdictionC" +#define LN_jurisdictionCountryName "jurisdictionCountryName" +#define NID_jurisdictionCountryName 957 +#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L + +#define SN_id_scrypt "id-scrypt" +#define LN_id_scrypt "scrypt" +#define NID_id_scrypt 973 +#define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L + +#define SN_tls1_prf "TLS1-PRF" +#define LN_tls1_prf "tls1-prf" +#define NID_tls1_prf 1021 + +#define SN_hkdf "HKDF" +#define LN_hkdf "hkdf" +#define NID_hkdf 1036 + +#define SN_id_pkinit "id-pkinit" +#define NID_id_pkinit 1031 +#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L + +#define SN_pkInitClientAuth "pkInitClientAuth" +#define LN_pkInitClientAuth "PKINIT Client Auth" +#define NID_pkInitClientAuth 1032 +#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L + +#define SN_pkInitKDC "pkInitKDC" +#define LN_pkInitKDC "Signing KDC Response" +#define NID_pkInitKDC 1033 +#define OBJ_pkInitKDC OBJ_id_pkinit,5L + +#define SN_X25519 "X25519" +#define NID_X25519 1034 +#define OBJ_X25519 1L,3L,101L,110L + +#define SN_X448 "X448" +#define NID_X448 1035 +#define OBJ_X448 1L,3L,101L,111L + +#define SN_ED25519 "ED25519" +#define NID_ED25519 1087 +#define OBJ_ED25519 1L,3L,101L,112L + +#define SN_ED448 "ED448" +#define NID_ED448 1088 +#define OBJ_ED448 1L,3L,101L,113L + +#define SN_kx_rsa "KxRSA" +#define LN_kx_rsa "kx-rsa" +#define NID_kx_rsa 1037 + +#define SN_kx_ecdhe "KxECDHE" +#define LN_kx_ecdhe "kx-ecdhe" +#define NID_kx_ecdhe 1038 + +#define SN_kx_dhe "KxDHE" +#define LN_kx_dhe "kx-dhe" +#define NID_kx_dhe 1039 + +#define SN_kx_ecdhe_psk "KxECDHE-PSK" +#define LN_kx_ecdhe_psk "kx-ecdhe-psk" +#define NID_kx_ecdhe_psk 1040 + +#define SN_kx_dhe_psk "KxDHE-PSK" +#define LN_kx_dhe_psk "kx-dhe-psk" +#define NID_kx_dhe_psk 1041 + +#define SN_kx_rsa_psk "KxRSA_PSK" +#define LN_kx_rsa_psk "kx-rsa-psk" +#define NID_kx_rsa_psk 1042 + +#define SN_kx_psk "KxPSK" +#define LN_kx_psk "kx-psk" +#define NID_kx_psk 1043 + +#define SN_kx_srp "KxSRP" +#define LN_kx_srp "kx-srp" +#define NID_kx_srp 1044 + +#define SN_kx_gost "KxGOST" +#define LN_kx_gost "kx-gost" +#define NID_kx_gost 1045 + +#define SN_kx_any "KxANY" +#define LN_kx_any "kx-any" +#define NID_kx_any 1063 + +#define SN_auth_rsa "AuthRSA" +#define LN_auth_rsa "auth-rsa" +#define NID_auth_rsa 1046 + +#define SN_auth_ecdsa "AuthECDSA" +#define LN_auth_ecdsa "auth-ecdsa" +#define NID_auth_ecdsa 1047 + +#define SN_auth_psk "AuthPSK" +#define LN_auth_psk "auth-psk" +#define NID_auth_psk 1048 + +#define SN_auth_dss "AuthDSS" +#define LN_auth_dss "auth-dss" +#define NID_auth_dss 1049 + +#define SN_auth_gost01 "AuthGOST01" +#define LN_auth_gost01 "auth-gost01" +#define NID_auth_gost01 1050 + +#define SN_auth_gost12 "AuthGOST12" +#define LN_auth_gost12 "auth-gost12" +#define NID_auth_gost12 1051 + +#define SN_auth_srp "AuthSRP" +#define LN_auth_srp "auth-srp" +#define NID_auth_srp 1052 + +#define SN_auth_null "AuthNULL" +#define LN_auth_null "auth-null" +#define NID_auth_null 1053 + +#define SN_auth_any "AuthANY" +#define LN_auth_any "auth-any" +#define NID_auth_any 1064 + +#define SN_poly1305 "Poly1305" +#define LN_poly1305 "poly1305" +#define NID_poly1305 1061 + +#define SN_siphash "SipHash" +#define LN_siphash "siphash" +#define NID_siphash 1062 + +#define SN_ffdhe2048 "ffdhe2048" +#define NID_ffdhe2048 1126 + +#define SN_ffdhe3072 "ffdhe3072" +#define NID_ffdhe3072 1127 + +#define SN_ffdhe4096 "ffdhe4096" +#define NID_ffdhe4096 1128 + +#define SN_ffdhe6144 "ffdhe6144" +#define NID_ffdhe6144 1129 + +#define SN_ffdhe8192 "ffdhe8192" +#define NID_ffdhe8192 1130 + +#define SN_ISO_UA "ISO-UA" +#define NID_ISO_UA 1150 +#define OBJ_ISO_UA OBJ_member_body,804L + +#define SN_ua_pki "ua-pki" +#define NID_ua_pki 1151 +#define OBJ_ua_pki OBJ_ISO_UA,2L,1L,1L,1L + +#define SN_dstu28147 "dstu28147" +#define LN_dstu28147 "DSTU Gost 28147-2009" +#define NID_dstu28147 1152 +#define OBJ_dstu28147 OBJ_ua_pki,1L,1L,1L + +#define SN_dstu28147_ofb "dstu28147-ofb" +#define LN_dstu28147_ofb "DSTU Gost 28147-2009 OFB mode" +#define NID_dstu28147_ofb 1153 +#define OBJ_dstu28147_ofb OBJ_dstu28147,2L + +#define SN_dstu28147_cfb "dstu28147-cfb" +#define LN_dstu28147_cfb "DSTU Gost 28147-2009 CFB mode" +#define NID_dstu28147_cfb 1154 +#define OBJ_dstu28147_cfb OBJ_dstu28147,3L + +#define SN_dstu28147_wrap "dstu28147-wrap" +#define LN_dstu28147_wrap "DSTU Gost 28147-2009 key wrap" +#define NID_dstu28147_wrap 1155 +#define OBJ_dstu28147_wrap OBJ_dstu28147,5L + +#define SN_hmacWithDstu34311 "hmacWithDstu34311" +#define LN_hmacWithDstu34311 "HMAC DSTU Gost 34311-95" +#define NID_hmacWithDstu34311 1156 +#define OBJ_hmacWithDstu34311 OBJ_ua_pki,1L,1L,2L + +#define SN_dstu34311 "dstu34311" +#define LN_dstu34311 "DSTU Gost 34311-95" +#define NID_dstu34311 1157 +#define OBJ_dstu34311 OBJ_ua_pki,1L,2L,1L + +#define SN_dstu4145le "dstu4145le" +#define LN_dstu4145le "DSTU 4145-2002 little endian" +#define NID_dstu4145le 1158 +#define OBJ_dstu4145le OBJ_ua_pki,1L,3L,1L,1L + +#define SN_dstu4145be "dstu4145be" +#define LN_dstu4145be "DSTU 4145-2002 big endian" +#define NID_dstu4145be 1159 +#define OBJ_dstu4145be OBJ_dstu4145le,1L,1L + +#define SN_uacurve0 "uacurve0" +#define LN_uacurve0 "DSTU curve 0" +#define NID_uacurve0 1160 +#define OBJ_uacurve0 OBJ_dstu4145le,2L,0L + +#define SN_uacurve1 "uacurve1" +#define LN_uacurve1 "DSTU curve 1" +#define NID_uacurve1 1161 +#define OBJ_uacurve1 OBJ_dstu4145le,2L,1L + +#define SN_uacurve2 "uacurve2" +#define LN_uacurve2 "DSTU curve 2" +#define NID_uacurve2 1162 +#define OBJ_uacurve2 OBJ_dstu4145le,2L,2L + +#define SN_uacurve3 "uacurve3" +#define LN_uacurve3 "DSTU curve 3" +#define NID_uacurve3 1163 +#define OBJ_uacurve3 OBJ_dstu4145le,2L,3L + +#define SN_uacurve4 "uacurve4" +#define LN_uacurve4 "DSTU curve 4" +#define NID_uacurve4 1164 +#define OBJ_uacurve4 OBJ_dstu4145le,2L,4L + +#define SN_uacurve5 "uacurve5" +#define LN_uacurve5 "DSTU curve 5" +#define NID_uacurve5 1165 +#define OBJ_uacurve5 OBJ_dstu4145le,2L,5L + +#define SN_uacurve6 "uacurve6" +#define LN_uacurve6 "DSTU curve 6" +#define NID_uacurve6 1166 +#define OBJ_uacurve6 OBJ_dstu4145le,2L,6L + +#define SN_uacurve7 "uacurve7" +#define LN_uacurve7 "DSTU curve 7" +#define NID_uacurve7 1167 +#define OBJ_uacurve7 OBJ_dstu4145le,2L,7L + +#define SN_uacurve8 "uacurve8" +#define LN_uacurve8 "DSTU curve 8" +#define NID_uacurve8 1168 +#define OBJ_uacurve8 OBJ_dstu4145le,2L,8L + +#define SN_uacurve9 "uacurve9" +#define LN_uacurve9 "DSTU curve 9" +#define NID_uacurve9 1169 +#define OBJ_uacurve9 OBJ_dstu4145le,2L,9L diff --git a/thrid-party/openssl/openssl/objects.h b/thrid-party/openssl/openssl/objects.h new file mode 100644 index 000000000..5e8b5762f --- /dev/null +++ b/thrid-party/openssl/openssl/objects.h @@ -0,0 +1,175 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OBJECTS_H +# define HEADER_OBJECTS_H + +# include +# include +# include +# include + +# define OBJ_NAME_TYPE_UNDEF 0x00 +# define OBJ_NAME_TYPE_MD_METH 0x01 +# define OBJ_NAME_TYPE_CIPHER_METH 0x02 +# define OBJ_NAME_TYPE_PKEY_METH 0x03 +# define OBJ_NAME_TYPE_COMP_METH 0x04 +# define OBJ_NAME_TYPE_NUM 0x05 + +# define OBJ_NAME_ALIAS 0x8000 + +# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 +# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct obj_name_st { + int type; + int alias; + const char *name; + const char *data; +} OBJ_NAME; + +# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) + +int OBJ_NAME_init(void); +int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), + int (*cmp_func) (const char *, const char *), + void (*free_func) (const char *, int, const char *)); +const char *OBJ_NAME_get(const char *name, int type); +int OBJ_NAME_add(const char *name, int type, const char *data); +int OBJ_NAME_remove(const char *name, int type); +void OBJ_NAME_cleanup(int type); /* -1 for everything */ +void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), + void *arg); +void OBJ_NAME_do_all_sorted(int type, + void (*fn) (const OBJ_NAME *, void *arg), + void *arg); + +ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_nid2obj(int n); +const char *OBJ_nid2ln(int n); +const char *OBJ_nid2sn(int n); +int OBJ_obj2nid(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); +int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); +int OBJ_txt2nid(const char *s); +int OBJ_ln2nid(const char *s); +int OBJ_sn2nid(const char *s); +int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); +const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, + int (*cmp) (const void *, const void *)); +const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, + int size, + int (*cmp) (const void *, const void *), + int flags); + +# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ + static int nm##_cmp(type1 const *, type2 const *); \ + scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ + _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) +# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) + +/*- + * Unsolved problem: if a type is actually a pointer type, like + * nid_triple is, then its impossible to get a const where you need + * it. Consider: + * + * typedef int nid_triple[3]; + * const void *a_; + * const nid_triple const *a = a_; + * + * The assignment discards a const because what you really want is: + * + * const int const * const *a = a_; + * + * But if you do that, you lose the fact that a is an array of 3 ints, + * which breaks comparison functions. + * + * Thus we end up having to cast, sadly, or unpack the + * declarations. Or, as I finally did in this case, declare nid_triple + * to be a struct, which it should have been in the first place. + * + * Ben, August 2008. + * + * Also, strictly speaking not all types need be const, but handling + * the non-constness means a lot of complication, and in practice + * comparison routines do always not touch their arguments. + */ + +# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ + static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ + { \ + type1 const *a = a_; \ + type2 const *b = b_; \ + return nm##_cmp(a,b); \ + } \ + type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ + { \ + return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ + nm##_cmp_BSEARCH_CMP_FN); \ + } \ + extern void dummy_prototype(void) + +# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ + ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN))) + +# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ + ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ + num,sizeof(type2), \ + ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ + (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ + cmp##_BSEARCH_CMP_FN)),flags) + +int OBJ_new_nid(int num); +int OBJ_add_object(const ASN1_OBJECT *obj); +int OBJ_create(const char *oid, const char *sn, const char *ln); +#if OPENSSL_API_COMPAT < 0x10100000L +# define OBJ_cleanup() while(0) continue +#endif +int OBJ_create_objects(BIO *in); + +size_t OBJ_length(const ASN1_OBJECT *obj); +const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); + +int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); +int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); +int OBJ_add_sigid(int signid, int dig_id, int pkey_id); +void OBJ_sigid_free(void); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/objectserr.h b/thrid-party/openssl/openssl/objectserr.h new file mode 100644 index 000000000..02e166f1a --- /dev/null +++ b/thrid-party/openssl/openssl/objectserr.h @@ -0,0 +1,42 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OBJERR_H +# define HEADER_OBJERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OBJ_strings(void); + +/* + * OBJ function codes. + */ +# define OBJ_F_OBJ_ADD_OBJECT 105 +# define OBJ_F_OBJ_ADD_SIGID 107 +# define OBJ_F_OBJ_CREATE 100 +# define OBJ_F_OBJ_DUP 101 +# define OBJ_F_OBJ_NAME_NEW_INDEX 106 +# define OBJ_F_OBJ_NID2LN 102 +# define OBJ_F_OBJ_NID2OBJ 103 +# define OBJ_F_OBJ_NID2SN 104 +# define OBJ_F_OBJ_TXT2OBJ 108 + +/* + * OBJ reason codes. + */ +# define OBJ_R_OID_EXISTS 102 +# define OBJ_R_UNKNOWN_NID 101 + +#endif diff --git a/thrid-party/openssl/openssl/ocsp.h b/thrid-party/openssl/openssl/ocsp.h new file mode 100644 index 000000000..8582fe1ee --- /dev/null +++ b/thrid-party/openssl/openssl/ocsp.h @@ -0,0 +1,352 @@ +/* + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OCSP_H +# define HEADER_OCSP_H + +#include + +/* + * These definitions are outside the OPENSSL_NO_OCSP guard because although for + * historical reasons they have OCSP_* names, they can actually be used + * independently of OCSP. E.g. see RFC5280 + */ +/*- + * CRLReason ::= ENUMERATED { + * unspecified (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6), + * removeFromCRL (8) } + */ +# define OCSP_REVOKED_STATUS_NOSTATUS -1 +# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 +# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 +# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 +# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 +# define OCSP_REVOKED_STATUS_SUPERSEDED 4 +# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 +# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 +# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 + + +# ifndef OPENSSL_NO_OCSP + +# include +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Various flags and values */ + +# define OCSP_DEFAULT_NONCE_LENGTH 16 + +# define OCSP_NOCERTS 0x1 +# define OCSP_NOINTERN 0x2 +# define OCSP_NOSIGS 0x4 +# define OCSP_NOCHAIN 0x8 +# define OCSP_NOVERIFY 0x10 +# define OCSP_NOEXPLICIT 0x20 +# define OCSP_NOCASIGN 0x40 +# define OCSP_NODELEGATED 0x80 +# define OCSP_NOCHECKS 0x100 +# define OCSP_TRUSTOTHER 0x200 +# define OCSP_RESPID_KEY 0x400 +# define OCSP_NOTIME 0x800 + +typedef struct ocsp_cert_id_st OCSP_CERTID; + +DEFINE_STACK_OF(OCSP_CERTID) + +typedef struct ocsp_one_request_st OCSP_ONEREQ; + +DEFINE_STACK_OF(OCSP_ONEREQ) + +typedef struct ocsp_req_info_st OCSP_REQINFO; +typedef struct ocsp_signature_st OCSP_SIGNATURE; +typedef struct ocsp_request_st OCSP_REQUEST; + +# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 +# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 +# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 +# define OCSP_RESPONSE_STATUS_TRYLATER 3 +# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 +# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 + +typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; + +# define V_OCSP_RESPID_NAME 0 +# define V_OCSP_RESPID_KEY 1 + +DEFINE_STACK_OF(OCSP_RESPID) + +typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; + +# define V_OCSP_CERTSTATUS_GOOD 0 +# define V_OCSP_CERTSTATUS_REVOKED 1 +# define V_OCSP_CERTSTATUS_UNKNOWN 2 + +typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; +typedef struct ocsp_single_response_st OCSP_SINGLERESP; + +DEFINE_STACK_OF(OCSP_SINGLERESP) + +typedef struct ocsp_response_data_st OCSP_RESPDATA; + +typedef struct ocsp_basic_response_st OCSP_BASICRESP; + +typedef struct ocsp_crl_id_st OCSP_CRLID; +typedef struct ocsp_service_locator_st OCSP_SERVICELOC; + +# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" +# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" + +# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) + +# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) + +# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ + (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ + bp,(char **)(x),cb,NULL) + +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ + (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ + bp,(char **)(x),cb,NULL) + +# define PEM_write_bio_OCSP_REQUEST(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ + bp,(char *)(o), NULL,NULL,0,NULL,NULL) + +# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ + bp,(char *)(o), NULL,NULL,0,NULL,NULL) + +# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) + +# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) + +# define ASN1_BIT_STRING_digest(data,type,md,len) \ + ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) + +# define OCSP_CERTSTATUS_dup(cs)\ + (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ + (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) + +OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); + +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); +OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, + int maxline); +int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); +OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); +void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); +void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, + const ASN1_ITEM *it); +BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); +int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); +int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); +int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, + const char *name, const char *value); + +OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, + const X509 *issuer); + +OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, + const X509_NAME *issuerName, + const ASN1_BIT_STRING *issuerKey, + const ASN1_INTEGER *serialNumber); + +OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); + +int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); +int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); +int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); +int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); + +int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); +int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); + +int OCSP_request_sign(OCSP_REQUEST *req, + X509 *signer, + EVP_PKEY *key, + const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +int OCSP_response_status(OCSP_RESPONSE *resp); +OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); + +const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); +const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); +const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, + STACK_OF(X509) *extra_certs); + +int OCSP_resp_count(OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); +const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); +const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, + const ASN1_OCTET_STRING **pid, + const X509_NAME **pname); +int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, + ASN1_OCTET_STRING **pid, + X509_NAME **pname); + +int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); +int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, + int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, + ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); + +int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, + X509_STORE *store, unsigned long flags); + +int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, + int *pssl); + +int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); +int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); + +int OCSP_request_onereq_count(OCSP_REQUEST *req); +OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); +OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); +int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, + ASN1_OCTET_STRING **pikeyHash, + ASN1_INTEGER **pserial, OCSP_CERTID *cid); +int OCSP_request_is_signed(OCSP_REQUEST *req); +OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, + OCSP_CERTID *cid, + int status, int reason, + ASN1_TIME *revtime, + ASN1_TIME *thisupd, + ASN1_TIME *nextupd); +int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); +int OCSP_basic_sign(OCSP_BASICRESP *brsp, + X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); +int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, + X509 *signer, EVP_MD_CTX *ctx, + STACK_OF(X509) *certs, unsigned long flags); +int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); + +X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); + +X509_EXTENSION *OCSP_accept_responses_new(char **oids); + +X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); + +X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls); + +int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); +int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); +int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); +X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); +X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); +void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, + int *idx); +int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); + +int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); +int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); +int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); +int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); +X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); +X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); +void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); +int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); + +int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); +int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); +int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); +X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); +void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, + int *idx); +int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); + +int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); +int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); +int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); +X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); +void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, + int *idx); +int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); +const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); + +DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) +DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) +DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) +DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) +DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) +DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) +DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) + +const char *OCSP_response_status_str(long s); +const char *OCSP_cert_status_str(long s); +const char *OCSP_crl_reason_str(long s); + +int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); +int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); + +int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, + X509_STORE *st, unsigned long flags); + + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/ocsperr.h b/thrid-party/openssl/openssl/ocsperr.h new file mode 100644 index 000000000..8dd9e01a1 --- /dev/null +++ b/thrid-party/openssl/openssl/ocsperr.h @@ -0,0 +1,78 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OCSPERR_H +# define HEADER_OCSPERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_OCSP + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OCSP_strings(void); + +/* + * OCSP function codes. + */ +# define OCSP_F_D2I_OCSP_NONCE 102 +# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 +# define OCSP_F_OCSP_BASIC_SIGN 104 +# define OCSP_F_OCSP_BASIC_SIGN_CTX 119 +# define OCSP_F_OCSP_BASIC_VERIFY 105 +# define OCSP_F_OCSP_CERT_ID_NEW 101 +# define OCSP_F_OCSP_CHECK_DELEGATED 106 +# define OCSP_F_OCSP_CHECK_IDS 107 +# define OCSP_F_OCSP_CHECK_ISSUER 108 +# define OCSP_F_OCSP_CHECK_VALIDITY 115 +# define OCSP_F_OCSP_MATCH_ISSUERID 109 +# define OCSP_F_OCSP_PARSE_URL 114 +# define OCSP_F_OCSP_REQUEST_SIGN 110 +# define OCSP_F_OCSP_REQUEST_VERIFY 116 +# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 +# define OCSP_F_PARSE_HTTP_LINE1 118 + +/* + * OCSP reason codes. + */ +# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 +# define OCSP_R_DIGEST_ERR 102 +# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 +# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 +# define OCSP_R_ERROR_PARSING_URL 121 +# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 +# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 +# define OCSP_R_NOT_BASIC_RESPONSE 104 +# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 +# define OCSP_R_NO_RESPONSE_DATA 108 +# define OCSP_R_NO_REVOKED_TIME 109 +# define OCSP_R_NO_SIGNER_KEY 130 +# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 +# define OCSP_R_REQUEST_NOT_SIGNED 128 +# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 +# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 +# define OCSP_R_SERVER_RESPONSE_ERROR 114 +# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 +# define OCSP_R_SIGNATURE_FAILURE 117 +# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 +# define OCSP_R_STATUS_EXPIRED 125 +# define OCSP_R_STATUS_NOT_YET_VALID 126 +# define OCSP_R_STATUS_TOO_OLD 127 +# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 +# define OCSP_R_UNKNOWN_NID 120 +# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/opensslconf.h b/thrid-party/openssl/openssl/opensslconf.h new file mode 100644 index 000000000..55ebf8c60 --- /dev/null +++ b/thrid-party/openssl/openssl/opensslconf.h @@ -0,0 +1,195 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_STATIC_ENGINE +# define OPENSSL_NO_STATIC_ENGINE +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/thrid-party/openssl/openssl/opensslv.h b/thrid-party/openssl/openssl/opensslv.h new file mode 100644 index 000000000..c28e632c4 --- /dev/null +++ b/thrid-party/openssl/openssl/opensslv.h @@ -0,0 +1,101 @@ +/* + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OPENSSLV_H +# define HEADER_OPENSSLV_H + +#ifdef __cplusplus +extern "C" { +#endif + +/*- + * Numeric release version identifier: + * MNNFFPPS: major minor fix patch status + * The status nibble has one of the values 0 for development, 1 to e for betas + * 1 to 14, and f for release. The patch level is exactly that. + * For example: + * 0.9.3-dev 0x00903000 + * 0.9.3-beta1 0x00903001 + * 0.9.3-beta2-dev 0x00903002 + * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) + * 0.9.3 0x0090300f + * 0.9.3a 0x0090301f + * 0.9.4 0x0090400f + * 1.2.3z 0x102031af + * + * For continuity reasons (because 0.9.5 is already out, and is coded + * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level + * part is slightly different, by setting the highest bit. This means + * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start + * with 0x0090600S... + * + * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) + * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for + * major minor fix final patch/beta) + */ +# define OPENSSL_VERSION_NUMBER 0x1010104fL +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1d 10 Sep 2019" + +/*- + * The macros below are to be used for shared library (.so, .dll, ...) + * versioning. That kind of versioning works a bit differently between + * operating systems. The most usual scheme is to set a major and a minor + * number, and have the runtime loader check that the major number is equal + * to what it was at application link time, while the minor number has to + * be greater or equal to what it was at application link time. With this + * scheme, the version number is usually part of the file name, like this: + * + * libcrypto.so.0.9 + * + * Some unixen also make a softlink with the major version number only: + * + * libcrypto.so.0 + * + * On Tru64 and IRIX 6.x it works a little bit differently. There, the + * shared library version is stored in the file, and is actually a series + * of versions, separated by colons. The rightmost version present in the + * library when linking an application is stored in the application to be + * matched at run time. When the application is run, a check is done to + * see if the library version stored in the application matches any of the + * versions in the version string of the library itself. + * This version string can be constructed in any way, depending on what + * kind of matching is desired. However, to implement the same scheme as + * the one used in the other unixen, all compatible versions, from lowest + * to highest, should be part of the string. Consecutive builds would + * give the following versions strings: + * + * 3.0 + * 3.0:3.1 + * 3.0:3.1:3.2 + * 4.0 + * 4.0:4.1 + * + * Notice how version 4 is completely incompatible with version, and + * therefore give the breach you can see. + * + * There may be other schemes as well that I haven't yet discovered. + * + * So, here's the way it works here: first of all, the library version + * number doesn't need at all to match the overall OpenSSL version. + * However, it's nice and more understandable if it actually does. + * The current library version is stored in the macro SHLIB_VERSION_NUMBER, + * which is just a piece of text in the format "M.m.e" (Major, minor, edit). + * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, + * we need to keep a history of version numbers, which is done in the + * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and + * should only keep the versions that are binary compatible with the current. + */ +# define SHLIB_VERSION_HISTORY "" +# define SHLIB_VERSION_NUMBER "1.1" + + +#ifdef __cplusplus +} +#endif +#endif /* HEADER_OPENSSLV_H */ diff --git a/thrid-party/openssl/openssl/ossl_typ.h b/thrid-party/openssl/openssl/ossl_typ.h new file mode 100644 index 000000000..7993ca28f --- /dev/null +++ b/thrid-party/openssl/openssl/ossl_typ.h @@ -0,0 +1,196 @@ +/* + * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OPENSSL_TYPES_H +# define HEADER_OPENSSL_TYPES_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +# ifdef NO_ASN1_TYPEDEFS +# define ASN1_INTEGER ASN1_STRING +# define ASN1_ENUMERATED ASN1_STRING +# define ASN1_BIT_STRING ASN1_STRING +# define ASN1_OCTET_STRING ASN1_STRING +# define ASN1_PRINTABLESTRING ASN1_STRING +# define ASN1_T61STRING ASN1_STRING +# define ASN1_IA5STRING ASN1_STRING +# define ASN1_UTCTIME ASN1_STRING +# define ASN1_GENERALIZEDTIME ASN1_STRING +# define ASN1_TIME ASN1_STRING +# define ASN1_GENERALSTRING ASN1_STRING +# define ASN1_UNIVERSALSTRING ASN1_STRING +# define ASN1_BMPSTRING ASN1_STRING +# define ASN1_VISIBLESTRING ASN1_STRING +# define ASN1_UTF8STRING ASN1_STRING +# define ASN1_BOOLEAN int +# define ASN1_NULL int +# else +typedef struct asn1_string_st ASN1_INTEGER; +typedef struct asn1_string_st ASN1_ENUMERATED; +typedef struct asn1_string_st ASN1_BIT_STRING; +typedef struct asn1_string_st ASN1_OCTET_STRING; +typedef struct asn1_string_st ASN1_PRINTABLESTRING; +typedef struct asn1_string_st ASN1_T61STRING; +typedef struct asn1_string_st ASN1_IA5STRING; +typedef struct asn1_string_st ASN1_GENERALSTRING; +typedef struct asn1_string_st ASN1_UNIVERSALSTRING; +typedef struct asn1_string_st ASN1_BMPSTRING; +typedef struct asn1_string_st ASN1_UTCTIME; +typedef struct asn1_string_st ASN1_TIME; +typedef struct asn1_string_st ASN1_GENERALIZEDTIME; +typedef struct asn1_string_st ASN1_VISIBLESTRING; +typedef struct asn1_string_st ASN1_UTF8STRING; +typedef struct asn1_string_st ASN1_STRING; +typedef int ASN1_BOOLEAN; +typedef int ASN1_NULL; +# endif + +typedef struct asn1_object_st ASN1_OBJECT; + +typedef struct ASN1_ITEM_st ASN1_ITEM; +typedef struct asn1_pctx_st ASN1_PCTX; +typedef struct asn1_sctx_st ASN1_SCTX; + +# ifdef _WIN32 +# undef X509_NAME +# undef X509_EXTENSIONS +# undef PKCS7_ISSUER_AND_SERIAL +# undef PKCS7_SIGNER_INFO +# undef OCSP_REQUEST +# undef OCSP_RESPONSE +# endif + +# ifdef BIGNUM +# undef BIGNUM +# endif +struct dane_st; +typedef struct bio_st BIO; +typedef struct bignum_st BIGNUM; +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; + +typedef struct buf_mem_st BUF_MEM; + +typedef struct evp_cipher_st EVP_CIPHER; +typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; +typedef struct evp_md_st EVP_MD; +typedef struct evp_md_ctx_st EVP_MD_CTX; +typedef struct evp_pkey_st EVP_PKEY; + +typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; + +typedef struct evp_pkey_method_st EVP_PKEY_METHOD; +typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; + +typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; + +typedef struct hmac_ctx_st HMAC_CTX; + +typedef struct dh_st DH; +typedef struct dh_method DH_METHOD; + +typedef struct dsa_st DSA; +typedef struct dsa_method DSA_METHOD; + +typedef struct rsa_st RSA; +typedef struct rsa_meth_st RSA_METHOD; + +typedef struct ec_key_st EC_KEY; +typedef struct ec_key_method_st EC_KEY_METHOD; + +typedef struct rand_meth_st RAND_METHOD; +typedef struct rand_drbg_st RAND_DRBG; + +typedef struct ssl_dane_st SSL_DANE; +typedef struct x509_st X509; +typedef struct X509_algor_st X509_ALGOR; +typedef struct X509_crl_st X509_CRL; +typedef struct x509_crl_method_st X509_CRL_METHOD; +typedef struct x509_revoked_st X509_REVOKED; +typedef struct X509_name_st X509_NAME; +typedef struct X509_pubkey_st X509_PUBKEY; +typedef struct x509_store_st X509_STORE; +typedef struct x509_store_ctx_st X509_STORE_CTX; + +typedef struct x509_object_st X509_OBJECT; +typedef struct x509_lookup_st X509_LOOKUP; +typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; +typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; + +typedef struct x509_sig_info_st X509_SIG_INFO; + +typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; + +typedef struct v3_ext_ctx X509V3_CTX; +typedef struct conf_st CONF; +typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; + +typedef struct ui_st UI; +typedef struct ui_method_st UI_METHOD; + +typedef struct engine_st ENGINE; +typedef struct ssl_st SSL; +typedef struct ssl_ctx_st SSL_CTX; + +typedef struct comp_ctx_st COMP_CTX; +typedef struct comp_method_st COMP_METHOD; + +typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; +typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; +typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; +typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; + +typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; +typedef struct DIST_POINT_st DIST_POINT; +typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; +typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; + +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; + +typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; +typedef struct ocsp_response_st OCSP_RESPONSE; +typedef struct ocsp_responder_id_st OCSP_RESPID; + +typedef struct sct_st SCT; +typedef struct sct_ctx_st SCT_CTX; +typedef struct ctlog_st CTLOG; +typedef struct ctlog_store_st CTLOG_STORE; +typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; + +typedef struct ossl_store_info_st OSSL_STORE_INFO; +typedef struct ossl_store_search_st OSSL_STORE_SEARCH; + +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ + defined(INTMAX_MAX) && defined(UINTMAX_MAX) +typedef intmax_t ossl_intmax_t; +typedef uintmax_t ossl_uintmax_t; +#else +/* + * Not long long, because the C-library can only be expected to provide + * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), + * strtoumax(). Since we use these for parsing arguments, we need the + * conversion functions, not just the sizes. + */ +typedef long ossl_intmax_t; +typedef unsigned long ossl_uintmax_t; +#endif + +#ifdef __cplusplus +} +#endif +#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/thrid-party/openssl/openssl/pem.h b/thrid-party/openssl/openssl/pem.h new file mode 100644 index 000000000..2ef5b5d04 --- /dev/null +++ b/thrid-party/openssl/openssl/pem.h @@ -0,0 +1,378 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PEM_H +# define HEADER_PEM_H + +# include +# include +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PEM_BUFSIZE 1024 + +# define PEM_STRING_X509_OLD "X509 CERTIFICATE" +# define PEM_STRING_X509 "CERTIFICATE" +# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" +# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" +# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" +# define PEM_STRING_X509_CRL "X509 CRL" +# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" +# define PEM_STRING_PUBLIC "PUBLIC KEY" +# define PEM_STRING_RSA "RSA PRIVATE KEY" +# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" +# define PEM_STRING_DSA "DSA PRIVATE KEY" +# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" +# define PEM_STRING_PKCS7 "PKCS7" +# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" +# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" +# define PEM_STRING_PKCS8INF "PRIVATE KEY" +# define PEM_STRING_DHPARAMS "DH PARAMETERS" +# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" +# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" +# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" +# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" +# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" +# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" +# define PEM_STRING_PARAMETERS "PARAMETERS" +# define PEM_STRING_CMS "CMS" + +# define PEM_TYPE_ENCRYPTED 10 +# define PEM_TYPE_MIC_ONLY 20 +# define PEM_TYPE_MIC_CLEAR 30 +# define PEM_TYPE_CLEAR 40 + +/* + * These macros make the PEM_read/PEM_write functions easier to maintain and + * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or + * IMPLEMENT_PEM_rw_cb(...) + */ + +# ifdef OPENSSL_NO_STDIO + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ +# else + +# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ +type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, const type *x) \ +{ \ +return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ +int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, \ + void *u) \ + { \ + return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ + } + +# endif + +# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ +type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ +{ \ +return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ +} + +# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, const type *x) \ +{ \ +return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ +} + +# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ +int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ + { \ + return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ + } + +# define IMPLEMENT_PEM_write(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ + IMPLEMENT_PEM_read_fp(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_const(name, type, str, asn1) + +# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ + IMPLEMENT_PEM_read(name, type, str, asn1) \ + IMPLEMENT_PEM_write_cb(name, type, str, asn1) + +/* These are the same except they are for the declarations */ + +# if defined(OPENSSL_NO_STDIO) + +# define DECLARE_PEM_read_fp(name, type) /**/ +# define DECLARE_PEM_write_fp(name, type) /**/ +# define DECLARE_PEM_write_fp_const(name, type) /**/ +# define DECLARE_PEM_write_cb_fp(name, type) /**/ +# else + +# define DECLARE_PEM_read_fp(name, type) \ + type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x); + +# define DECLARE_PEM_write_fp_const(name, type) \ + int PEM_write_##name(FILE *fp, const type *x); + +# define DECLARE_PEM_write_cb_fp(name, type) \ + int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# endif + +# define DECLARE_PEM_read_bio(name, type) \ + type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x); + +# define DECLARE_PEM_write_bio_const(name, type) \ + int PEM_write_bio_##name(BIO *bp, const type *x); + +# define DECLARE_PEM_write_cb_bio(name, type) \ + int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ + unsigned char *kstr, int klen, pem_password_cb *cb, void *u); + +# define DECLARE_PEM_write(name, type) \ + DECLARE_PEM_write_bio(name, type) \ + DECLARE_PEM_write_fp(name, type) +# define DECLARE_PEM_write_const(name, type) \ + DECLARE_PEM_write_bio_const(name, type) \ + DECLARE_PEM_write_fp_const(name, type) +# define DECLARE_PEM_write_cb(name, type) \ + DECLARE_PEM_write_cb_bio(name, type) \ + DECLARE_PEM_write_cb_fp(name, type) +# define DECLARE_PEM_read(name, type) \ + DECLARE_PEM_read_bio(name, type) \ + DECLARE_PEM_read_fp(name, type) +# define DECLARE_PEM_rw(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write(name, type) +# define DECLARE_PEM_rw_const(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_const(name, type) +# define DECLARE_PEM_rw_cb(name, type) \ + DECLARE_PEM_read(name, type) \ + DECLARE_PEM_write_cb(name, type) +typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); + +int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); +int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, + pem_password_cb *callback, void *u); + +int PEM_read_bio(BIO *bp, char **name, char **header, + unsigned char **data, long *len); +# define PEM_FLAG_SECURE 0x1 +# define PEM_FLAG_EAY_COMPATIBLE 0x2 +# define PEM_FLAG_ONLY_B64 0x4 +int PEM_read_bio_ex(BIO *bp, char **name, char **header, + unsigned char **data, long *len, unsigned int flags); +int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +int PEM_write_bio(BIO *bp, const char *name, const char *hdr, + const unsigned char *data, long len); +int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, + const EVP_CIPHER *enc, unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); + +STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); +int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cd, void *u); + +#ifndef OPENSSL_NO_STDIO +int PEM_read(FILE *fp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write(FILE *fp, const char *name, const char *hdr, + const unsigned char *data, long len); +void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, + void *x, const EVP_CIPHER *enc, unsigned char *kstr, + int klen, pem_password_cb *callback, void *u); +STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, + pem_password_cb *cb, void *u); +#endif + +int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); +int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); +int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + unsigned int *siglen, EVP_PKEY *pkey); + +/* The default pem_password_cb that's used internally */ +int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); +void PEM_proc_type(char *buf, int type); +void PEM_dek_info(char *buf, const char *type, int len, char *str); + +# include + +DECLARE_PEM_rw(X509, X509) +DECLARE_PEM_rw(X509_AUX, X509) +DECLARE_PEM_rw(X509_REQ, X509_REQ) +DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) +DECLARE_PEM_rw(X509_CRL, X509_CRL) +DECLARE_PEM_rw(PKCS7, PKCS7) +DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) +DECLARE_PEM_rw(PKCS8, X509_SIG) +DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) +# ifndef OPENSSL_NO_RSA +DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) +DECLARE_PEM_rw_const(RSAPublicKey, RSA) +DECLARE_PEM_rw(RSA_PUBKEY, RSA) +# endif +# ifndef OPENSSL_NO_DSA +DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) +DECLARE_PEM_rw(DSA_PUBKEY, DSA) +DECLARE_PEM_rw_const(DSAparams, DSA) +# endif +# ifndef OPENSSL_NO_EC +DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) +DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) +DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) +# endif +# ifndef OPENSSL_NO_DH +DECLARE_PEM_rw_const(DHparams, DH) +DECLARE_PEM_write_const(DHxparams, DH) +# endif +DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) +DECLARE_PEM_rw(PUBKEY, EVP_PKEY) + +int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, + const EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); + +int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, + char *, int, pem_password_cb *, void *); +int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +# ifndef OPENSSL_NO_STDIO +int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); + +EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, + void *u); + +int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, pem_password_cb *cd, + void *u); +# endif +EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); +int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); + +# ifndef OPENSSL_NO_DSA +EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PrivateKey_bio(BIO *in); +EVP_PKEY *b2i_PublicKey_bio(BIO *in); +int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); +int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); +# ifndef OPENSSL_NO_RC4 +EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); +int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, + pem_password_cb *cb, void *u); +# endif +# endif + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/pem2.h b/thrid-party/openssl/openssl/pem2.h new file mode 100644 index 000000000..038fe790a --- /dev/null +++ b/thrid-party/openssl/openssl/pem2.h @@ -0,0 +1,13 @@ +/* + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PEM2_H +# define HEADER_PEM2_H +# include +#endif diff --git a/thrid-party/openssl/openssl/pemerr.h b/thrid-party/openssl/openssl/pemerr.h new file mode 100644 index 000000000..0c45918f3 --- /dev/null +++ b/thrid-party/openssl/openssl/pemerr.h @@ -0,0 +1,103 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PEMERR_H +# define HEADER_PEMERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PEM_strings(void); + +/* + * PEM function codes. + */ +# define PEM_F_B2I_DSS 127 +# define PEM_F_B2I_PVK_BIO 128 +# define PEM_F_B2I_RSA 129 +# define PEM_F_CHECK_BITLEN_DSA 130 +# define PEM_F_CHECK_BITLEN_RSA 131 +# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 +# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 +# define PEM_F_DO_B2I 132 +# define PEM_F_DO_B2I_BIO 133 +# define PEM_F_DO_BLOB_HEADER 134 +# define PEM_F_DO_I2B 146 +# define PEM_F_DO_PK8PKEY 126 +# define PEM_F_DO_PK8PKEY_FP 125 +# define PEM_F_DO_PVK_BODY 135 +# define PEM_F_DO_PVK_HEADER 136 +# define PEM_F_GET_HEADER_AND_DATA 143 +# define PEM_F_GET_NAME 144 +# define PEM_F_I2B_PVK 137 +# define PEM_F_I2B_PVK_BIO 138 +# define PEM_F_LOAD_IV 101 +# define PEM_F_PEM_ASN1_READ 102 +# define PEM_F_PEM_ASN1_READ_BIO 103 +# define PEM_F_PEM_ASN1_WRITE 104 +# define PEM_F_PEM_ASN1_WRITE_BIO 105 +# define PEM_F_PEM_DEF_CALLBACK 100 +# define PEM_F_PEM_DO_HEADER 106 +# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 +# define PEM_F_PEM_READ 108 +# define PEM_F_PEM_READ_BIO 109 +# define PEM_F_PEM_READ_BIO_DHPARAMS 141 +# define PEM_F_PEM_READ_BIO_EX 145 +# define PEM_F_PEM_READ_BIO_PARAMETERS 140 +# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 +# define PEM_F_PEM_READ_DHPARAMS 142 +# define PEM_F_PEM_READ_PRIVATEKEY 124 +# define PEM_F_PEM_SIGNFINAL 112 +# define PEM_F_PEM_WRITE 113 +# define PEM_F_PEM_WRITE_BIO 114 +# define PEM_F_PEM_WRITE_PRIVATEKEY 139 +# define PEM_F_PEM_X509_INFO_READ 115 +# define PEM_F_PEM_X509_INFO_READ_BIO 116 +# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 + +/* + * PEM reason codes. + */ +# define PEM_R_BAD_BASE64_DECODE 100 +# define PEM_R_BAD_DECRYPT 101 +# define PEM_R_BAD_END_LINE 102 +# define PEM_R_BAD_IV_CHARS 103 +# define PEM_R_BAD_MAGIC_NUMBER 116 +# define PEM_R_BAD_PASSWORD_READ 104 +# define PEM_R_BAD_VERSION_NUMBER 117 +# define PEM_R_BIO_WRITE_FAILURE 118 +# define PEM_R_CIPHER_IS_NULL 127 +# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 +# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 +# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 +# define PEM_R_HEADER_TOO_LONG 128 +# define PEM_R_INCONSISTENT_HEADER 121 +# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 +# define PEM_R_KEYBLOB_TOO_SHORT 123 +# define PEM_R_MISSING_DEK_IV 129 +# define PEM_R_NOT_DEK_INFO 105 +# define PEM_R_NOT_ENCRYPTED 106 +# define PEM_R_NOT_PROC_TYPE 107 +# define PEM_R_NO_START_LINE 108 +# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 +# define PEM_R_PVK_DATA_TOO_SHORT 124 +# define PEM_R_PVK_TOO_SHORT 125 +# define PEM_R_READ_KEY 111 +# define PEM_R_SHORT_HEADER 112 +# define PEM_R_UNEXPECTED_DEK_IV 130 +# define PEM_R_UNSUPPORTED_CIPHER 113 +# define PEM_R_UNSUPPORTED_ENCRYPTION 114 +# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 + +#endif diff --git a/thrid-party/openssl/openssl/pkcs12.h b/thrid-party/openssl/openssl/pkcs12.h new file mode 100644 index 000000000..3f43dad6d --- /dev/null +++ b/thrid-party/openssl/openssl/pkcs12.h @@ -0,0 +1,223 @@ +/* + * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS12_H +# define HEADER_PKCS12_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define PKCS12_KEY_ID 1 +# define PKCS12_IV_ID 2 +# define PKCS12_MAC_ID 3 + +/* Default iteration count */ +# ifndef PKCS12_DEFAULT_ITER +# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER +# endif + +# define PKCS12_MAC_KEY_LENGTH 20 + +# define PKCS12_SALT_LEN 8 + +/* It's not clear if these are actually needed... */ +# define PKCS12_key_gen PKCS12_key_gen_utf8 +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 + +/* MS key usage constants */ + +# define KEY_EX 0x10 +# define KEY_SIG 0x80 + +typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; + +typedef struct PKCS12_st PKCS12; + +typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; + +DEFINE_STACK_OF(PKCS12_SAFEBAG) + +typedef struct pkcs12_bag_st PKCS12_BAGS; + +# define PKCS12_ERROR 0 +# define PKCS12_OK 1 + +/* Compatibility macros */ + +#if OPENSSL_API_COMPAT < 0x10100000L + +# define M_PKCS12_bag_type PKCS12_bag_type +# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type +# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type + +# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert +# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl +# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid +# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid +# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert +# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl +# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf +# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt + +#endif + +DEPRECATEDIN_1_1_0(ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)) + +ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); +int PKCS12_mac_present(const PKCS12 *p12); +void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, + const X509_ALGOR **pmacalg, + const ASN1_OCTET_STRING **psalt, + const ASN1_INTEGER **piter, + const PKCS12 *p12); + +const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, + int attr_nid); +const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); + +X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); +const STACK_OF(PKCS12_SAFEBAG) * +PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); +const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); +const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); + +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, + const char *pass, + int passlen, + unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8inf); + +PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, + int nid1, int nid2); +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, + int passlen); +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, + const char *pass, int passlen); +X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, + const char *pass, int passlen, unsigned char *salt, + int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); +X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, + PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); +PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); +PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + STACK_OF(PKCS12_SAFEBAG) *bags); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, + int passlen); + +int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); +STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); + +int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, + int namelen); +int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, + const unsigned char *name, int namelen); +int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); +ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, + int attr_nid); +char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); +const STACK_OF(X509_ATTRIBUTE) * +PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, + const char *pass, int passlen, + const unsigned char *in, int inlen, + unsigned char **data, int *datalen, + int en_de); +void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, + const char *pass, int passlen, + const ASN1_OCTET_STRING *oct, int zbuf); +ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, + const ASN1_ITEM *it, + const char *pass, int passlen, + void *obj, int zbuf); +PKCS12 *PKCS12_init(int mode); +int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md_type, int en_de); +int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *mac, unsigned int *maclen); +int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); +int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type); +int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, + int saltlen, const EVP_MD *md_type); +unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); +unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); + +DECLARE_ASN1_FUNCTIONS(PKCS12) +DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) +DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) +DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) + +DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) +DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) + +void PKCS12_PBE_add(void); +int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, + STACK_OF(X509) **ca); +PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype); + +PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); +PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, + EVP_PKEY *key, int key_usage, int iter, + int key_nid, const char *pass); +int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, + int safe_nid, int iter, const char *pass); +PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); + +int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); +# ifndef OPENSSL_NO_STDIO +int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); +# endif +PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); +# ifndef OPENSSL_NO_STDIO +PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); +# endif +int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/pkcs12err.h b/thrid-party/openssl/openssl/pkcs12err.h new file mode 100644 index 000000000..eff5eb260 --- /dev/null +++ b/thrid-party/openssl/openssl/pkcs12err.h @@ -0,0 +1,81 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS12ERR_H +# define HEADER_PKCS12ERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PKCS12_strings(void); + +/* + * PKCS12 function codes. + */ +# define PKCS12_F_OPENSSL_ASC2UNI 121 +# define PKCS12_F_OPENSSL_UNI2ASC 124 +# define PKCS12_F_OPENSSL_UNI2UTF8 127 +# define PKCS12_F_OPENSSL_UTF82UNI 129 +# define PKCS12_F_PKCS12_CREATE 105 +# define PKCS12_F_PKCS12_GEN_MAC 107 +# define PKCS12_F_PKCS12_INIT 109 +# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 +# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 +# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 +# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 +# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 +# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 +# define PKCS12_F_PKCS12_NEWPASS 128 +# define PKCS12_F_PKCS12_PACK_P7DATA 114 +# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 +# define PKCS12_F_PKCS12_PARSE 118 +# define PKCS12_F_PKCS12_PBE_CRYPT 119 +# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 +# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 +# define PKCS12_F_PKCS12_SETUP_MAC 122 +# define PKCS12_F_PKCS12_SET_MAC 123 +# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 +# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 +# define PKCS12_F_PKCS12_VERIFY_MAC 126 +# define PKCS12_F_PKCS8_ENCRYPT 125 +# define PKCS12_F_PKCS8_SET0_PBE 132 + +/* + * PKCS12 reason codes. + */ +# define PKCS12_R_CANT_PACK_STRUCTURE 100 +# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 +# define PKCS12_R_DECODE_ERROR 101 +# define PKCS12_R_ENCODE_ERROR 102 +# define PKCS12_R_ENCRYPT_ERROR 103 +# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 +# define PKCS12_R_INVALID_NULL_ARGUMENT 104 +# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 +# define PKCS12_R_IV_GEN_ERROR 106 +# define PKCS12_R_KEY_GEN_ERROR 107 +# define PKCS12_R_MAC_ABSENT 108 +# define PKCS12_R_MAC_GENERATION_ERROR 109 +# define PKCS12_R_MAC_SETUP_ERROR 110 +# define PKCS12_R_MAC_STRING_SET_ERROR 111 +# define PKCS12_R_MAC_VERIFY_FAILURE 113 +# define PKCS12_R_PARSE_ERROR 114 +# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 +# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 +# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 +# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 +# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 + +#endif diff --git a/thrid-party/openssl/openssl/pkcs7.h b/thrid-party/openssl/openssl/pkcs7.h new file mode 100644 index 000000000..9b66e002d --- /dev/null +++ b/thrid-party/openssl/openssl/pkcs7.h @@ -0,0 +1,319 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS7_H +# define HEADER_PKCS7_H + +# include +# include +# include + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/*- +Encryption_ID DES-CBC +Digest_ID MD5 +Digest_Encryption_ID rsaEncryption +Key_Encryption_ID rsaEncryption +*/ + +typedef struct pkcs7_issuer_and_serial_st { + X509_NAME *issuer; + ASN1_INTEGER *serial; +} PKCS7_ISSUER_AND_SERIAL; + +typedef struct pkcs7_signer_info_st { + ASN1_INTEGER *version; /* version 1 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *digest_alg; + STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ + X509_ALGOR *digest_enc_alg; + ASN1_OCTET_STRING *enc_digest; + STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ + /* The private key to sign with */ + EVP_PKEY *pkey; +} PKCS7_SIGNER_INFO; + +DEFINE_STACK_OF(PKCS7_SIGNER_INFO) + +typedef struct pkcs7_recip_info_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *key_enc_algor; + ASN1_OCTET_STRING *enc_key; + X509 *cert; /* get the pub-key from this */ +} PKCS7_RECIP_INFO; + +DEFINE_STACK_OF(PKCS7_RECIP_INFO) + +typedef struct pkcs7_signed_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + struct pkcs7_st *contents; +} PKCS7_SIGNED; +/* + * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about + * merging the two + */ + +typedef struct pkcs7_enc_content_st { + ASN1_OBJECT *content_type; + X509_ALGOR *algorithm; + ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ + const EVP_CIPHER *cipher; +} PKCS7_ENC_CONTENT; + +typedef struct pkcs7_enveloped_st { + ASN1_INTEGER *version; /* version 0 */ + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENVELOPE; + +typedef struct pkcs7_signedandenveloped_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + PKCS7_ENC_CONTENT *enc_data; + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; +} PKCS7_SIGN_ENVELOPE; + +typedef struct pkcs7_digest_st { + ASN1_INTEGER *version; /* version 0 */ + X509_ALGOR *md; /* md used */ + struct pkcs7_st *contents; + ASN1_OCTET_STRING *digest; +} PKCS7_DIGEST; + +typedef struct pkcs7_encrypted_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENCRYPT; + +typedef struct pkcs7_st { + /* + * The following is non NULL if it contains ASN1 encoding of this + * structure + */ + unsigned char *asn1; + long length; +# define PKCS7_S_HEADER 0 +# define PKCS7_S_BODY 1 +# define PKCS7_S_TAIL 2 + int state; /* used during processing */ + int detached; + ASN1_OBJECT *type; + /* content as defined by the type */ + /* + * all encryption/message digests are applied to the 'contents', leaving + * out the 'type' field. + */ + union { + char *ptr; + /* NID_pkcs7_data */ + ASN1_OCTET_STRING *data; + /* NID_pkcs7_signed */ + PKCS7_SIGNED *sign; + /* NID_pkcs7_enveloped */ + PKCS7_ENVELOPE *enveloped; + /* NID_pkcs7_signedAndEnveloped */ + PKCS7_SIGN_ENVELOPE *signed_and_enveloped; + /* NID_pkcs7_digest */ + PKCS7_DIGEST *digest; + /* NID_pkcs7_encrypted */ + PKCS7_ENCRYPT *encrypted; + /* Anything else */ + ASN1_TYPE *other; + } d; +} PKCS7; + +DEFINE_STACK_OF(PKCS7) + +# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 +# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 + +# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) +# define PKCS7_get_attributes(si) ((si)->unauth_attr) + +# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) +# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) +# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) +# define PKCS7_type_is_signedAndEnveloped(a) \ + (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) +# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) +# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) + +# define PKCS7_set_detached(p,v) \ + PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) +# define PKCS7_get_detached(p) \ + PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) + +# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) + +/* S/MIME related flags */ + +# define PKCS7_TEXT 0x1 +# define PKCS7_NOCERTS 0x2 +# define PKCS7_NOSIGS 0x4 +# define PKCS7_NOCHAIN 0x8 +# define PKCS7_NOINTERN 0x10 +# define PKCS7_NOVERIFY 0x20 +# define PKCS7_DETACHED 0x40 +# define PKCS7_BINARY 0x80 +# define PKCS7_NOATTR 0x100 +# define PKCS7_NOSMIMECAP 0x200 +# define PKCS7_NOOLDMIMETYPE 0x400 +# define PKCS7_CRLFEOL 0x800 +# define PKCS7_STREAM 0x1000 +# define PKCS7_NOCRL 0x2000 +# define PKCS7_PARTIAL 0x4000 +# define PKCS7_REUSE_DIGEST 0x8000 +# define PKCS7_NO_DUAL_CONTENT 0x10000 + +/* Flags: for compatibility with older code */ + +# define SMIME_TEXT PKCS7_TEXT +# define SMIME_NOCERTS PKCS7_NOCERTS +# define SMIME_NOSIGS PKCS7_NOSIGS +# define SMIME_NOCHAIN PKCS7_NOCHAIN +# define SMIME_NOINTERN PKCS7_NOINTERN +# define SMIME_NOVERIFY PKCS7_NOVERIFY +# define SMIME_DETACHED PKCS7_DETACHED +# define SMIME_BINARY PKCS7_BINARY +# define SMIME_NOATTR PKCS7_NOATTR + +/* CRLF ASCII canonicalisation */ +# define SMIME_ASCIICRLF 0x80000 + +DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) + +int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, + const EVP_MD *type, unsigned char *md, + unsigned int *len); +# ifndef OPENSSL_NO_STDIO +PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); +int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); +# endif +PKCS7 *PKCS7_dup(PKCS7 *p7); +PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); +int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); + +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) +DECLARE_ASN1_FUNCTIONS(PKCS7) + +DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) +DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) + +DECLARE_ASN1_NDEF_FUNCTION(PKCS7) +DECLARE_ASN1_PRINT_FUNCTION(PKCS7) + +long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); + +int PKCS7_set_type(PKCS7 *p7, int type); +int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); +int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); +int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, + const EVP_MD *dgst); +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); +int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); +int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_content_new(PKCS7 *p7, int nid); +int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, + BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, + X509 *x509); + +BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); +int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); +BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); + +PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, + EVP_PKEY *pkey, const EVP_MD *dgst); +X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); +STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); + +PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, + X509_ALGOR **pdig, X509_ALGOR **psig); +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); +int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); +int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); +int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); + +PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); +ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, + void *data); +int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, + void *value); +ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); +ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); +int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); + +PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, + BIO *data, int flags); + +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, + X509 *signcert, EVP_PKEY *pkey, + const EVP_MD *md, int flags); + +int PKCS7_final(PKCS7 *p7, BIO *data, int flags); +int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, + BIO *indata, BIO *out, int flags); +STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, + int flags); +PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, + int flags); +int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, + int flags); + +int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, + STACK_OF(X509_ALGOR) *cap); +STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); +int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); + +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, + const unsigned char *md, int mdlen); + +int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); +PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); + +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/pkcs7err.h b/thrid-party/openssl/openssl/pkcs7err.h new file mode 100644 index 000000000..02e0299a3 --- /dev/null +++ b/thrid-party/openssl/openssl/pkcs7err.h @@ -0,0 +1,103 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_PKCS7ERR_H +# define HEADER_PKCS7ERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_PKCS7_strings(void); + +/* + * PKCS7 function codes. + */ +# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 +# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 +# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 +# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 +# define PKCS7_F_PKCS7_ADD_CRL 101 +# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 +# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 +# define PKCS7_F_PKCS7_ADD_SIGNER 103 +# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 +# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 +# define PKCS7_F_PKCS7_CTRL 104 +# define PKCS7_F_PKCS7_DATADECODE 112 +# define PKCS7_F_PKCS7_DATAFINAL 128 +# define PKCS7_F_PKCS7_DATAINIT 105 +# define PKCS7_F_PKCS7_DATAVERIFY 107 +# define PKCS7_F_PKCS7_DECRYPT 114 +# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 +# define PKCS7_F_PKCS7_ENCODE_RINFO 132 +# define PKCS7_F_PKCS7_ENCRYPT 115 +# define PKCS7_F_PKCS7_FINAL 134 +# define PKCS7_F_PKCS7_FIND_DIGEST 127 +# define PKCS7_F_PKCS7_GET0_SIGNERS 124 +# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 +# define PKCS7_F_PKCS7_SET_CIPHER 108 +# define PKCS7_F_PKCS7_SET_CONTENT 109 +# define PKCS7_F_PKCS7_SET_DIGEST 126 +# define PKCS7_F_PKCS7_SET_TYPE 110 +# define PKCS7_F_PKCS7_SIGN 116 +# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 +# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 +# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 +# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 +# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 +# define PKCS7_F_PKCS7_VERIFY 117 + +/* + * PKCS7 reason codes. + */ +# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 +# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 +# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 +# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 +# define PKCS7_R_CTRL_ERROR 152 +# define PKCS7_R_DECRYPT_ERROR 119 +# define PKCS7_R_DIGEST_FAILURE 101 +# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 +# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 +# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 +# define PKCS7_R_ERROR_SETTING_CIPHER 121 +# define PKCS7_R_INVALID_NULL_POINTER 143 +# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 +# define PKCS7_R_NO_CONTENT 122 +# define PKCS7_R_NO_DEFAULT_DIGEST 151 +# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 +# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 +# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 +# define PKCS7_R_NO_SIGNERS 142 +# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 +# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 +# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 +# define PKCS7_R_PKCS7_DATASIGN 145 +# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 +# define PKCS7_R_SIGNATURE_FAILURE 105 +# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 +# define PKCS7_R_SIGNING_CTRL_FAILURE 147 +# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 +# define PKCS7_R_SMIME_TEXT_ERROR 129 +# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 +# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 +# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 +# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 +# define PKCS7_R_UNKNOWN_OPERATION 110 +# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 +# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 +# define PKCS7_R_WRONG_CONTENT_TYPE 113 +# define PKCS7_R_WRONG_PKCS7_TYPE 114 + +#endif diff --git a/thrid-party/openssl/openssl/pqueue.h b/thrid-party/openssl/openssl/pqueue.h new file mode 100644 index 000000000..d40d9c7d8 --- /dev/null +++ b/thrid-party/openssl/openssl/pqueue.h @@ -0,0 +1,99 @@ +/* crypto/pqueue/pqueue.h */ +/* + * DTLS implementation written by Nagendra Modadugu + * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. + */ +/* ==================================================================== + * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_PQUEUE_H +# define HEADER_PQUEUE_H + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif +typedef struct _pqueue *pqueue; + +typedef struct _pitem { + unsigned char priority[8]; /* 64-bit value in big-endian encoding */ + void *data; + struct _pitem *next; +} pitem; + +typedef struct _pitem *piterator; + +pitem *pitem_new(unsigned char *prio64be, void *data); +void pitem_free(pitem *item); + +pqueue pqueue_new(void); +void pqueue_free(pqueue pq); + +pitem *pqueue_insert(pqueue pq, pitem *item); +pitem *pqueue_peek(pqueue pq); +pitem *pqueue_pop(pqueue pq); +pitem *pqueue_find(pqueue pq, unsigned char *prio64be); +pitem *pqueue_iterator(pqueue pq); +pitem *pqueue_next(piterator *iter); + +void pqueue_print(pqueue pq); +int pqueue_size(pqueue pq); + +#ifdef __cplusplus +} +#endif +#endif /* ! HEADER_PQUEUE_H */ diff --git a/thrid-party/openssl/openssl/rand.h b/thrid-party/openssl/openssl/rand.h new file mode 100644 index 000000000..38a2a2718 --- /dev/null +++ b/thrid-party/openssl/openssl/rand.h @@ -0,0 +1,77 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RAND_H +# define HEADER_RAND_H + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rand_meth_st { + int (*seed) (const void *buf, int num); + int (*bytes) (unsigned char *buf, int num); + void (*cleanup) (void); + int (*add) (const void *buf, int num, double randomness); + int (*pseudorand) (unsigned char *buf, int num); + int (*status) (void); +}; + +int RAND_set_rand_method(const RAND_METHOD *meth); +const RAND_METHOD *RAND_get_rand_method(void); +# ifndef OPENSSL_NO_ENGINE +int RAND_set_rand_engine(ENGINE *engine); +# endif + +RAND_METHOD *RAND_OpenSSL(void); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define RAND_cleanup() while(0) continue +# endif +int RAND_bytes(unsigned char *buf, int num); +int RAND_priv_bytes(unsigned char *buf, int num); +DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) + +void RAND_seed(const void *buf, int num); +void RAND_keep_random_devices_open(int keep); + +# if defined(__ANDROID__) && defined(__NDK_FPABI__) +__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ +# endif +void RAND_add(const void *buf, int num, double randomness); +int RAND_load_file(const char *file, long max_bytes); +int RAND_write_file(const char *file); +const char *RAND_file_name(char *file, size_t num); +int RAND_status(void); + +# ifndef OPENSSL_NO_EGD +int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); +int RAND_egd(const char *path); +int RAND_egd_bytes(const char *path, int bytes); +# endif + +int RAND_poll(void); + +# if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) +/* application has to include in order to use these */ +DEPRECATEDIN_1_1_0(void RAND_screen(void)) +DEPRECATEDIN_1_1_0(int RAND_event(UINT, WPARAM, LPARAM)) +# endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/rand_drbg.h b/thrid-party/openssl/openssl/rand_drbg.h new file mode 100644 index 000000000..45b731b73 --- /dev/null +++ b/thrid-party/openssl/openssl/rand_drbg.h @@ -0,0 +1,130 @@ +/* + * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_DRBG_RAND_H +# define HEADER_DRBG_RAND_H + +# include +# include +# include + +/* + * RAND_DRBG flags + * + * Note: if new flags are added, the constant `rand_drbg_used_flags` + * in drbg_lib.c needs to be updated accordingly. + */ + +/* In CTR mode, disable derivation function ctr_df */ +# define RAND_DRBG_FLAG_CTR_NO_DF 0x1 + + +# if OPENSSL_API_COMPAT < 0x10200000L +/* This #define was replaced by an internal constant and should not be used. */ +# define RAND_DRBG_USED_FLAGS (RAND_DRBG_FLAG_CTR_NO_DF) +# endif + +/* + * Default security strength (in the sense of [NIST SP 800-90Ar1]) + * + * NIST SP 800-90Ar1 supports the strength of the DRBG being smaller than that + * of the cipher by collecting less entropy. The current DRBG implementation + * does not take RAND_DRBG_STRENGTH into account and sets the strength of the + * DRBG to that of the cipher. + * + * RAND_DRBG_STRENGTH is currently only used for the legacy RAND + * implementation. + * + * Currently supported ciphers are: NID_aes_128_ctr, NID_aes_192_ctr and + * NID_aes_256_ctr + */ +# define RAND_DRBG_STRENGTH 256 +/* Default drbg type */ +# define RAND_DRBG_TYPE NID_aes_256_ctr +/* Default drbg flags */ +# define RAND_DRBG_FLAGS 0 + + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * Object lifetime functions. + */ +RAND_DRBG *RAND_DRBG_new(int type, unsigned int flags, RAND_DRBG *parent); +RAND_DRBG *RAND_DRBG_secure_new(int type, unsigned int flags, RAND_DRBG *parent); +int RAND_DRBG_set(RAND_DRBG *drbg, int type, unsigned int flags); +int RAND_DRBG_set_defaults(int type, unsigned int flags); +int RAND_DRBG_instantiate(RAND_DRBG *drbg, + const unsigned char *pers, size_t perslen); +int RAND_DRBG_uninstantiate(RAND_DRBG *drbg); +void RAND_DRBG_free(RAND_DRBG *drbg); + +/* + * Object "use" functions. + */ +int RAND_DRBG_reseed(RAND_DRBG *drbg, + const unsigned char *adin, size_t adinlen, + int prediction_resistance); +int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen, + int prediction_resistance, + const unsigned char *adin, size_t adinlen); +int RAND_DRBG_bytes(RAND_DRBG *drbg, unsigned char *out, size_t outlen); + +int RAND_DRBG_set_reseed_interval(RAND_DRBG *drbg, unsigned int interval); +int RAND_DRBG_set_reseed_time_interval(RAND_DRBG *drbg, time_t interval); + +int RAND_DRBG_set_reseed_defaults( + unsigned int master_reseed_interval, + unsigned int slave_reseed_interval, + time_t master_reseed_time_interval, + time_t slave_reseed_time_interval + ); + +RAND_DRBG *RAND_DRBG_get0_master(void); +RAND_DRBG *RAND_DRBG_get0_public(void); +RAND_DRBG *RAND_DRBG_get0_private(void); + +/* + * EXDATA + */ +# define RAND_DRBG_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DRBG, l, p, newf, dupf, freef) +int RAND_DRBG_set_ex_data(RAND_DRBG *drbg, int idx, void *arg); +void *RAND_DRBG_get_ex_data(const RAND_DRBG *drbg, int idx); + +/* + * Callback function typedefs + */ +typedef size_t (*RAND_DRBG_get_entropy_fn)(RAND_DRBG *drbg, + unsigned char **pout, + int entropy, size_t min_len, + size_t max_len, + int prediction_resistance); +typedef void (*RAND_DRBG_cleanup_entropy_fn)(RAND_DRBG *ctx, + unsigned char *out, size_t outlen); +typedef size_t (*RAND_DRBG_get_nonce_fn)(RAND_DRBG *drbg, unsigned char **pout, + int entropy, size_t min_len, + size_t max_len); +typedef void (*RAND_DRBG_cleanup_nonce_fn)(RAND_DRBG *drbg, + unsigned char *out, size_t outlen); + +int RAND_DRBG_set_callbacks(RAND_DRBG *drbg, + RAND_DRBG_get_entropy_fn get_entropy, + RAND_DRBG_cleanup_entropy_fn cleanup_entropy, + RAND_DRBG_get_nonce_fn get_nonce, + RAND_DRBG_cleanup_nonce_fn cleanup_nonce); + + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/thrid-party/openssl/openssl/randerr.h b/thrid-party/openssl/openssl/randerr.h new file mode 100644 index 000000000..70d1a17a4 --- /dev/null +++ b/thrid-party/openssl/openssl/randerr.h @@ -0,0 +1,92 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RANDERR_H +# define HEADER_RANDERR_H + +# include + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_RAND_strings(void); + +/* + * RAND function codes. + */ +# define RAND_F_DRBG_BYTES 101 +# define RAND_F_DRBG_GET_ENTROPY 105 +# define RAND_F_DRBG_SETUP 117 +# define RAND_F_GET_ENTROPY 106 +# define RAND_F_RAND_BYTES 100 +# define RAND_F_RAND_DRBG_ENABLE_LOCKING 119 +# define RAND_F_RAND_DRBG_GENERATE 107 +# define RAND_F_RAND_DRBG_GET_ENTROPY 120 +# define RAND_F_RAND_DRBG_GET_NONCE 123 +# define RAND_F_RAND_DRBG_INSTANTIATE 108 +# define RAND_F_RAND_DRBG_NEW 109 +# define RAND_F_RAND_DRBG_RESEED 110 +# define RAND_F_RAND_DRBG_RESTART 102 +# define RAND_F_RAND_DRBG_SET 104 +# define RAND_F_RAND_DRBG_SET_DEFAULTS 121 +# define RAND_F_RAND_DRBG_UNINSTANTIATE 118 +# define RAND_F_RAND_LOAD_FILE 111 +# define RAND_F_RAND_POOL_ACQUIRE_ENTROPY 122 +# define RAND_F_RAND_POOL_ADD 103 +# define RAND_F_RAND_POOL_ADD_BEGIN 113 +# define RAND_F_RAND_POOL_ADD_END 114 +# define RAND_F_RAND_POOL_ATTACH 124 +# define RAND_F_RAND_POOL_BYTES_NEEDED 115 +# define RAND_F_RAND_POOL_GROW 125 +# define RAND_F_RAND_POOL_NEW 116 +# define RAND_F_RAND_WRITE_FILE 112 + +/* + * RAND reason codes. + */ +# define RAND_R_ADDITIONAL_INPUT_TOO_LONG 102 +# define RAND_R_ALREADY_INSTANTIATED 103 +# define RAND_R_ARGUMENT_OUT_OF_RANGE 105 +# define RAND_R_CANNOT_OPEN_FILE 121 +# define RAND_R_DRBG_ALREADY_INITIALIZED 129 +# define RAND_R_DRBG_NOT_INITIALISED 104 +# define RAND_R_ENTROPY_INPUT_TOO_LONG 106 +# define RAND_R_ENTROPY_OUT_OF_RANGE 124 +# define RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED 127 +# define RAND_R_ERROR_INITIALISING_DRBG 107 +# define RAND_R_ERROR_INSTANTIATING_DRBG 108 +# define RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT 109 +# define RAND_R_ERROR_RETRIEVING_ENTROPY 110 +# define RAND_R_ERROR_RETRIEVING_NONCE 111 +# define RAND_R_FAILED_TO_CREATE_LOCK 126 +# define RAND_R_FUNC_NOT_IMPLEMENTED 101 +# define RAND_R_FWRITE_ERROR 123 +# define RAND_R_GENERATE_ERROR 112 +# define RAND_R_INTERNAL_ERROR 113 +# define RAND_R_IN_ERROR_STATE 114 +# define RAND_R_NOT_A_REGULAR_FILE 122 +# define RAND_R_NOT_INSTANTIATED 115 +# define RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED 128 +# define RAND_R_PARENT_LOCKING_NOT_ENABLED 130 +# define RAND_R_PARENT_STRENGTH_TOO_WEAK 131 +# define RAND_R_PERSONALISATION_STRING_TOO_LONG 116 +# define RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED 133 +# define RAND_R_PRNG_NOT_SEEDED 100 +# define RAND_R_RANDOM_POOL_OVERFLOW 125 +# define RAND_R_RANDOM_POOL_UNDERFLOW 134 +# define RAND_R_REQUEST_TOO_LARGE_FOR_DRBG 117 +# define RAND_R_RESEED_ERROR 118 +# define RAND_R_SELFTEST_FAILURE 119 +# define RAND_R_TOO_LITTLE_NONCE_REQUESTED 135 +# define RAND_R_TOO_MUCH_NONCE_REQUESTED 136 +# define RAND_R_UNSUPPORTED_DRBG_FLAGS 132 +# define RAND_R_UNSUPPORTED_DRBG_TYPE 120 + +#endif diff --git a/thrid-party/openssl/openssl/rc2.h b/thrid-party/openssl/openssl/rc2.h new file mode 100644 index 000000000..585f9e4c3 --- /dev/null +++ b/thrid-party/openssl/openssl/rc2.h @@ -0,0 +1,51 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RC2_H +# define HEADER_RC2_H + +# include + +# ifndef OPENSSL_NO_RC2 +# ifdef __cplusplus +extern "C" { +# endif + +typedef unsigned int RC2_INT; + +# define RC2_ENCRYPT 1 +# define RC2_DECRYPT 0 + +# define RC2_BLOCK 8 +# define RC2_KEY_LENGTH 16 + +typedef struct rc2_key_st { + RC2_INT data[64]; +} RC2_KEY; + +void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); +void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, + RC2_KEY *key, int enc); +void RC2_encrypt(unsigned long *data, RC2_KEY *key); +void RC2_decrypt(unsigned long *data, RC2_KEY *key); +void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, + RC2_KEY *ks, unsigned char *iv, int enc); +void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num, int enc); +void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC2_KEY *schedule, unsigned char *ivec, + int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/rc4.h b/thrid-party/openssl/openssl/rc4.h new file mode 100644 index 000000000..86803b37f --- /dev/null +++ b/thrid-party/openssl/openssl/rc4.h @@ -0,0 +1,36 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RC4_H +# define HEADER_RC4_H + +# include + +# ifndef OPENSSL_NO_RC4 +# include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct rc4_key_st { + RC4_INT x, y; + RC4_INT data[256]; +} RC4_KEY; + +const char *RC4_options(void); +void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); +void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, + unsigned char *outdata); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/rc5.h b/thrid-party/openssl/openssl/rc5.h new file mode 100644 index 000000000..793f88e4e --- /dev/null +++ b/thrid-party/openssl/openssl/rc5.h @@ -0,0 +1,63 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RC5_H +# define HEADER_RC5_H + +# include + +# ifndef OPENSSL_NO_RC5 +# ifdef __cplusplus +extern "C" { +# endif + +# define RC5_ENCRYPT 1 +# define RC5_DECRYPT 0 + +# define RC5_32_INT unsigned int + +# define RC5_32_BLOCK 8 +# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ + +/* + * This are the only values supported. Tweak the code if you want more The + * most supported modes will be RC5-32/12/16 RC5-32/16/8 + */ +# define RC5_8_ROUNDS 8 +# define RC5_12_ROUNDS 12 +# define RC5_16_ROUNDS 16 + +typedef struct rc5_key_st { + /* Number of rounds */ + int rounds; + RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; +} RC5_32_KEY; + +void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, + int rounds); +void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out, + RC5_32_KEY *key, int enc); +void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); +void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); +void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *ks, unsigned char *iv, + int enc); +void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *schedule, + unsigned char *ivec, int *num, int enc); +void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out, + long length, RC5_32_KEY *schedule, + unsigned char *ivec, int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/ripemd.h b/thrid-party/openssl/openssl/ripemd.h new file mode 100644 index 000000000..c42026aa4 --- /dev/null +++ b/thrid-party/openssl/openssl/ripemd.h @@ -0,0 +1,47 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RIPEMD_H +# define HEADER_RIPEMD_H + +# include + +#ifndef OPENSSL_NO_RMD160 +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +# define RIPEMD160_LONG unsigned int + +# define RIPEMD160_CBLOCK 64 +# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) +# define RIPEMD160_DIGEST_LENGTH 20 + +typedef struct RIPEMD160state_st { + RIPEMD160_LONG A, B, C, D, E; + RIPEMD160_LONG Nl, Nh; + RIPEMD160_LONG data[RIPEMD160_LBLOCK]; + unsigned int num; +} RIPEMD160_CTX; + +int RIPEMD160_Init(RIPEMD160_CTX *c); +int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); +int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); +unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); +void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); + +# ifdef __cplusplus +} +# endif +# endif + + +#endif diff --git a/thrid-party/openssl/openssl/rsa.h b/thrid-party/openssl/openssl/rsa.h new file mode 100644 index 000000000..cdce1264e --- /dev/null +++ b/thrid-party/openssl/openssl/rsa.h @@ -0,0 +1,512 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RSA_H +# define HEADER_RSA_H + +# include + +# ifndef OPENSSL_NO_RSA +# include +# include +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# ifdef __cplusplus +extern "C" { +# endif + +/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ + +# ifndef OPENSSL_RSA_MAX_MODULUS_BITS +# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 +# endif + +# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024 + +# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS +# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 +# endif +# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS + +/* exponent limit enforced for "large" modulus only */ +# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 +# endif + +# define RSA_3 0x3L +# define RSA_F4 0x10001L + +/* based on RFC 8017 appendix A.1.2 */ +# define RSA_ASN1_VERSION_DEFAULT 0 +# define RSA_ASN1_VERSION_MULTI 1 + +# define RSA_DEFAULT_PRIME_NUM 2 + +# define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private + * match */ + +# define RSA_FLAG_CACHE_PUBLIC 0x0002 +# define RSA_FLAG_CACHE_PRIVATE 0x0004 +# define RSA_FLAG_BLINDING 0x0008 +# define RSA_FLAG_THREAD_SAFE 0x0010 +/* + * This flag means the private key operations will be handled by rsa_mod_exp + * and that they do not depend on the private key components being present: + * for example a key stored in external hardware. Without this flag + * bn_mod_exp gets called when private key components are absent. + */ +# define RSA_FLAG_EXT_PKEY 0x0020 + +/* + * new with 0.9.6j and 0.9.7b; the built-in + * RSA implementation now uses blinding by + * default (ignoring RSA_FLAG_BLINDING), + * but other engines might not need it + */ +# define RSA_FLAG_NO_BLINDING 0x0080 +# if OPENSSL_API_COMPAT < 0x10100000L +/* + * Does nothing. Previously this switched off constant time behaviour. + */ +# define RSA_FLAG_NO_CONSTTIME 0x0000 +# endif +# if OPENSSL_API_COMPAT < 0x00908000L +/* deprecated name for the flag*/ +/* + * new with 0.9.7h; the built-in RSA + * implementation now uses constant time + * modular exponentiation for secret exponents + * by default. This flag causes the + * faster variable sliding window method to + * be used for all exponents. + */ +# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME +# endif + +# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ + RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) + +# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ + RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) + +# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ + RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) +/* Salt length matches digest */ +# define RSA_PSS_SALTLEN_DIGEST -1 +/* Verify only: auto detect salt length */ +# define RSA_PSS_SALTLEN_AUTO -2 +/* Set salt length to maximum possible */ +# define RSA_PSS_SALTLEN_MAX -3 +/* Old compatible max salt length for sign only */ +# define RSA_PSS_SALTLEN_MAX_SIGN -2 + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ + RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ + EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, 0, plen) + +# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) + +# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) + +# define EVP_PKEY_CTX_set_rsa_keygen_primes(ctx, primes) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, primes, NULL) + +# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)(md)) + +# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ + RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)(pmd)) + +# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)(pmd)) + +# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)(l)) + +# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)(l)) + +# define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, \ + EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_MD, \ + 0, (void *)(md)) + +# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) + +# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) + +# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) + +# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) + +# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) + +# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13) + +# define RSA_PKCS1_PADDING 1 +# define RSA_SSLV23_PADDING 2 +# define RSA_NO_PADDING 3 +# define RSA_PKCS1_OAEP_PADDING 4 +# define RSA_X931_PADDING 5 +/* EVP_PKEY_ only */ +# define RSA_PKCS1_PSS_PADDING 6 + +# define RSA_PKCS1_PADDING_SIZE 11 + +# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) +# define RSA_get_app_data(s) RSA_get_ex_data(s,0) + +RSA *RSA_new(void); +RSA *RSA_new_method(ENGINE *engine); +int RSA_bits(const RSA *rsa); +int RSA_size(const RSA *rsa); +int RSA_security_bits(const RSA *rsa); + +int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); +int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); +int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); +int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[], + BIGNUM *coeffs[], int pnum); +void RSA_get0_key(const RSA *r, + const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); +void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); +int RSA_get_multi_prime_extra_count(const RSA *r); +int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[]); +void RSA_get0_crt_params(const RSA *r, + const BIGNUM **dmp1, const BIGNUM **dmq1, + const BIGNUM **iqmp); +int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], + const BIGNUM *coeffs[]); +const BIGNUM *RSA_get0_n(const RSA *d); +const BIGNUM *RSA_get0_e(const RSA *d); +const BIGNUM *RSA_get0_d(const RSA *d); +const BIGNUM *RSA_get0_p(const RSA *d); +const BIGNUM *RSA_get0_q(const RSA *d); +const BIGNUM *RSA_get0_dmp1(const RSA *r); +const BIGNUM *RSA_get0_dmq1(const RSA *r); +const BIGNUM *RSA_get0_iqmp(const RSA *r); +void RSA_clear_flags(RSA *r, int flags); +int RSA_test_flags(const RSA *r, int flags); +void RSA_set_flags(RSA *r, int flags); +int RSA_get_version(RSA *r); +ENGINE *RSA_get0_engine(const RSA *r); + +/* Deprecated version */ +DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void + (*callback) (int, int, void *), + void *cb_arg)) + +/* New version */ +int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +/* Multi-prime version */ +int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes, + BIGNUM *e, BN_GENCB *cb); + +int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, + BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2, + const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, + const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); +int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, + BN_GENCB *cb); + +int RSA_check_key(const RSA *); +int RSA_check_key_ex(const RSA *, BN_GENCB *cb); + /* next 4 return -1 on error */ +int RSA_public_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_public_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +void RSA_free(RSA *r); +/* "up" the RSA object's reference count */ +int RSA_up_ref(RSA *r); + +int RSA_flags(const RSA *r); + +void RSA_set_default_method(const RSA_METHOD *meth); +const RSA_METHOD *RSA_get_default_method(void); +const RSA_METHOD *RSA_null_method(void); +const RSA_METHOD *RSA_get_method(const RSA *rsa); +int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); + +/* these are the actual RSA functions */ +const RSA_METHOD *RSA_PKCS1_OpenSSL(void); + +int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); + +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) +DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) + +typedef struct rsa_pss_params_st { + X509_ALGOR *hashAlgorithm; + X509_ALGOR *maskGenAlgorithm; + ASN1_INTEGER *saltLength; + ASN1_INTEGER *trailerField; + /* Decoded hash algorithm from maskGenAlgorithm */ + X509_ALGOR *maskHash; +} RSA_PSS_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) + +typedef struct rsa_oaep_params_st { + X509_ALGOR *hashFunc; + X509_ALGOR *maskGenFunc; + X509_ALGOR *pSourceFunc; + /* Decoded hash algorithm from maskGenFunc */ + X509_ALGOR *maskHash; +} RSA_OAEP_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) + +# ifndef OPENSSL_NO_STDIO +int RSA_print_fp(FILE *fp, const RSA *r, int offset); +# endif + +int RSA_print(BIO *bp, const RSA *r, int offset); + +/* + * The following 2 functions sign and verify a X509_SIG ASN1 object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign(int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, RSA *rsa); +int RSA_verify(int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); + +/* + * The following 2 function sign and verify a ASN1_OCTET_STRING object inside + * PKCS#1 padded RSA encryption + */ +int RSA_sign_ASN1_OCTET_STRING(int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + RSA *rsa); +int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigbuf, + unsigned int siglen, RSA *rsa); + +int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); +void RSA_blinding_off(RSA *rsa); +BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); + +int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, + long seedlen, const EVP_MD *dgst); +int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, + const unsigned char *p, int pl); +int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl); +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md); +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md); +int RSA_padding_add_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_none(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_X931(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_X931_hash_id(int nid); + +int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const unsigned char *EM, + int sLen); +int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, const EVP_MD *Hash, + int sLen); + +int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + const unsigned char *EM, int sLen); + +int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + int sLen); + +#define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) +int RSA_set_ex_data(RSA *r, int idx, void *arg); +void *RSA_get_ex_data(const RSA *r, int idx); + +RSA *RSAPublicKey_dup(RSA *rsa); +RSA *RSAPrivateKey_dup(RSA *rsa); + +/* + * If this flag is set the RSA method is FIPS compliant and can be used in + * FIPS mode. This is set in the validated module method. If an application + * sets this flag in its own methods it is its responsibility to ensure the + * result is compliant. + */ + +# define RSA_FLAG_FIPS_METHOD 0x0400 + +/* + * If this flag is set the operations normally disabled in FIPS mode are + * permitted it is then the applications responsibility to ensure that the + * usage is compliant. + */ + +# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 +/* + * Application has decided PRNG is good enough to generate a key: don't + * check. + */ +# define RSA_FLAG_CHECKED 0x0800 + +RSA_METHOD *RSA_meth_new(const char *name, int flags); +void RSA_meth_free(RSA_METHOD *meth); +RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); +const char *RSA_meth_get0_name(const RSA_METHOD *meth); +int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); +int RSA_meth_get_flags(const RSA_METHOD *meth); +int RSA_meth_set_flags(RSA_METHOD *meth, int flags); +void *RSA_meth_get0_app_data(const RSA_METHOD *meth); +int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); +int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_enc(RSA_METHOD *rsa, + int (*pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_dec(RSA_METHOD *rsa, + int (*pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_enc(RSA_METHOD *rsa, + int (*priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_dec(RSA_METHOD *rsa, + int (*priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r0, const BIGNUM *i, RSA *rsa, BN_CTX *ctx); +int RSA_meth_set_mod_exp(RSA_METHOD *rsa, + int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, + BN_CTX *ctx)); +int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx)); +int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); +int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); +int (*RSA_meth_get_sign(const RSA_METHOD *meth)) + (int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa); +int RSA_meth_set_sign(RSA_METHOD *rsa, + int (*sign) (int type, const unsigned char *m, + unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa)); +int (*RSA_meth_get_verify(const RSA_METHOD *meth)) + (int dtype, const unsigned char *m, + unsigned int m_length, const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa); +int RSA_meth_set_verify(RSA_METHOD *rsa, + int (*verify) (int dtype, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa)); +int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_keygen(RSA_METHOD *rsa, + int (*keygen) (RSA *rsa, int bits, BIGNUM *e, + BN_GENCB *cb)); +int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, + int (*keygen) (RSA *rsa, int bits, + int primes, BIGNUM *e, + BN_GENCB *cb)); + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/rsaerr.h b/thrid-party/openssl/openssl/rsaerr.h new file mode 100644 index 000000000..59b15e13e --- /dev/null +++ b/thrid-party/openssl/openssl/rsaerr.h @@ -0,0 +1,167 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_RSAERR_H +# define HEADER_RSAERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_RSA_strings(void); + +/* + * RSA function codes. + */ +# define RSA_F_CHECK_PADDING_MD 140 +# define RSA_F_ENCODE_PKCS1 146 +# define RSA_F_INT_RSA_VERIFY 145 +# define RSA_F_OLD_RSA_PRIV_DECODE 147 +# define RSA_F_PKEY_PSS_INIT 165 +# define RSA_F_PKEY_RSA_CTRL 143 +# define RSA_F_PKEY_RSA_CTRL_STR 144 +# define RSA_F_PKEY_RSA_SIGN 142 +# define RSA_F_PKEY_RSA_VERIFY 149 +# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 +# define RSA_F_RSA_ALGOR_TO_MD 156 +# define RSA_F_RSA_BUILTIN_KEYGEN 129 +# define RSA_F_RSA_CHECK_KEY 123 +# define RSA_F_RSA_CHECK_KEY_EX 160 +# define RSA_F_RSA_CMS_DECRYPT 159 +# define RSA_F_RSA_CMS_VERIFY 158 +# define RSA_F_RSA_ITEM_VERIFY 148 +# define RSA_F_RSA_METH_DUP 161 +# define RSA_F_RSA_METH_NEW 162 +# define RSA_F_RSA_METH_SET1_NAME 163 +# define RSA_F_RSA_MGF1_TO_MD 157 +# define RSA_F_RSA_MULTIP_INFO_NEW 166 +# define RSA_F_RSA_NEW_METHOD 106 +# define RSA_F_RSA_NULL 124 +# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 +# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 +# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 +# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 +# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 +# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 +# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 +# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 +# define RSA_F_RSA_PADDING_ADD_NONE 107 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 +# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 +# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 +# define RSA_F_RSA_PADDING_ADD_SSLV23 110 +# define RSA_F_RSA_PADDING_ADD_X931 127 +# define RSA_F_RSA_PADDING_CHECK_NONE 111 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 +# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 +# define RSA_F_RSA_PADDING_CHECK_X931 128 +# define RSA_F_RSA_PARAM_DECODE 164 +# define RSA_F_RSA_PRINT 115 +# define RSA_F_RSA_PRINT_FP 116 +# define RSA_F_RSA_PRIV_DECODE 150 +# define RSA_F_RSA_PRIV_ENCODE 138 +# define RSA_F_RSA_PSS_GET_PARAM 151 +# define RSA_F_RSA_PSS_TO_CTX 155 +# define RSA_F_RSA_PUB_DECODE 139 +# define RSA_F_RSA_SETUP_BLINDING 136 +# define RSA_F_RSA_SIGN 117 +# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 +# define RSA_F_RSA_VERIFY 119 +# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 +# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 +# define RSA_F_SETUP_TBUF 167 + +/* + * RSA reason codes. + */ +# define RSA_R_ALGORITHM_MISMATCH 100 +# define RSA_R_BAD_E_VALUE 101 +# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 +# define RSA_R_BAD_PAD_BYTE_COUNT 103 +# define RSA_R_BAD_SIGNATURE 104 +# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 +# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 +# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 +# define RSA_R_DATA_TOO_LARGE 109 +# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 +# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 +# define RSA_R_DATA_TOO_SMALL 111 +# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 +# define RSA_R_DIGEST_DOES_NOT_MATCH 158 +# define RSA_R_DIGEST_NOT_ALLOWED 145 +# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 +# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 +# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 +# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 +# define RSA_R_FIRST_OCTET_INVALID 133 +# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 +# define RSA_R_INVALID_DIGEST 157 +# define RSA_R_INVALID_DIGEST_LENGTH 143 +# define RSA_R_INVALID_HEADER 137 +# define RSA_R_INVALID_LABEL 160 +# define RSA_R_INVALID_MESSAGE_LENGTH 131 +# define RSA_R_INVALID_MGF1_MD 156 +# define RSA_R_INVALID_MULTI_PRIME_KEY 167 +# define RSA_R_INVALID_OAEP_PARAMETERS 161 +# define RSA_R_INVALID_PADDING 138 +# define RSA_R_INVALID_PADDING_MODE 141 +# define RSA_R_INVALID_PSS_PARAMETERS 149 +# define RSA_R_INVALID_PSS_SALTLEN 146 +# define RSA_R_INVALID_SALT_LENGTH 150 +# define RSA_R_INVALID_TRAILER 139 +# define RSA_R_INVALID_X931_DIGEST 142 +# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 +# define RSA_R_KEY_PRIME_NUM_INVALID 165 +# define RSA_R_KEY_SIZE_TOO_SMALL 120 +# define RSA_R_LAST_OCTET_INVALID 134 +# define RSA_R_MISSING_PRIVATE_KEY 179 +# define RSA_R_MGF1_DIGEST_NOT_ALLOWED 152 +# define RSA_R_MODULUS_TOO_LARGE 105 +# define RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R 168 +# define RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D 169 +# define RSA_R_MP_R_NOT_PRIME 170 +# define RSA_R_NO_PUBLIC_EXPONENT 140 +# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 +# define RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES 172 +# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 +# define RSA_R_OAEP_DECODING_ERROR 121 +# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 +# define RSA_R_PADDING_CHECK_FAILED 114 +# define RSA_R_PKCS_DECODING_ERROR 159 +# define RSA_R_PSS_SALTLEN_TOO_SMALL 164 +# define RSA_R_P_NOT_PRIME 128 +# define RSA_R_Q_NOT_PRIME 129 +# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 +# define RSA_R_SLEN_CHECK_FAILED 136 +# define RSA_R_SLEN_RECOVERY_FAILED 135 +# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 +# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 +# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 +# define RSA_R_UNKNOWN_DIGEST 166 +# define RSA_R_UNKNOWN_MASK_DIGEST 151 +# define RSA_R_UNKNOWN_PADDING_TYPE 118 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 +# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 +# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 +# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 +# define RSA_R_VALUE_MISSING 147 +# define RSA_R_WRONG_SIGNATURE_LENGTH 119 + +#endif diff --git a/thrid-party/openssl/openssl/safestack.h b/thrid-party/openssl/openssl/safestack.h new file mode 100644 index 000000000..38b557897 --- /dev/null +++ b/thrid-party/openssl/openssl/safestack.h @@ -0,0 +1,207 @@ +/* + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SAFESTACK_H +# define HEADER_SAFESTACK_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define STACK_OF(type) struct stack_st_##type + +# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ + STACK_OF(t1); \ + typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ + typedef void (*sk_##t1##_freefunc)(t3 *a); \ + typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ + static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ + { \ + return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ + { \ + return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ + { \ + return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_free((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ + { \ + return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ + (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ + { \ + OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ + { \ + return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ + { \ + return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ + sk_##t1##_copyfunc copyfunc, \ + sk_##t1##_freefunc freefunc) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ + (OPENSSL_sk_copyfunc)copyfunc, \ + (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ + { \ + return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ + } + +# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) +# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) +# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ + SKM_DEFINE_STACK_OF(t1, const t2, t2) +# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) + +/*- + * Strings are special: normally an lhash entry will point to a single + * (somewhat) mutable object. In the case of strings: + * + * a) Instead of a single char, there is an array of chars, NUL-terminated. + * b) The string may have be immutable. + * + * So, they need their own declarations. Especially important for + * type-checking tools, such as Deputy. + * + * In practice, however, it appears to be hard to have a const + * string. For now, I'm settling for dealing with the fact it is a + * string at all. + */ +typedef char *OPENSSL_STRING; +typedef const char *OPENSSL_CSTRING; + +/*- + * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but + * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned + * above, instead of a single char each entry is a NUL-terminated array of + * chars. So, we have to implement STRING specially for STACK_OF. This is + * dealt with in the autogenerated macros below. + */ +DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char) +DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) + +/* + * Similarly, we sometimes use a block of characters, NOT nul-terminated. + * These should also be distinguished from "normal" stacks. + */ +typedef void *OPENSSL_BLOCK; +DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) + +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_sk_num +# pragma weak OPENSSL_sk_value +# pragma weak OPENSSL_sk_new +# pragma weak OPENSSL_sk_new_null +# pragma weak OPENSSL_sk_new_reserve +# pragma weak OPENSSL_sk_reserve +# pragma weak OPENSSL_sk_free +# pragma weak OPENSSL_sk_zero +# pragma weak OPENSSL_sk_delete +# pragma weak OPENSSL_sk_delete_ptr +# pragma weak OPENSSL_sk_push +# pragma weak OPENSSL_sk_unshift +# pragma weak OPENSSL_sk_pop +# pragma weak OPENSSL_sk_shift +# pragma weak OPENSSL_sk_pop_free +# pragma weak OPENSSL_sk_insert +# pragma weak OPENSSL_sk_set +# pragma weak OPENSSL_sk_find +# pragma weak OPENSSL_sk_find_ex +# pragma weak OPENSSL_sk_sort +# pragma weak OPENSSL_sk_is_sorted +# pragma weak OPENSSL_sk_dup +# pragma weak OPENSSL_sk_deep_copy +# pragma weak OPENSSL_sk_set_cmp_func +# endif /* __SUNPRO_C */ + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/seed.h b/thrid-party/openssl/openssl/seed.h new file mode 100644 index 000000000..de10b0857 --- /dev/null +++ b/thrid-party/openssl/openssl/seed.h @@ -0,0 +1,96 @@ +/* + * Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Neither the name of author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef HEADER_SEED_H +# define HEADER_SEED_H + +# include + +# ifndef OPENSSL_NO_SEED +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* look whether we need 'long' to get 32 bits */ +# ifdef AES_LONG +# ifndef SEED_LONG +# define SEED_LONG 1 +# endif +# endif + +# include + +# define SEED_BLOCK_SIZE 16 +# define SEED_KEY_LENGTH 16 + +typedef struct seed_key_st { +# ifdef SEED_LONG + unsigned long data[32]; +# else + unsigned int data[32]; +# endif +} SEED_KEY_SCHEDULE; + +void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], + SEED_KEY_SCHEDULE *ks); + +void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); +void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], + unsigned char d[SEED_BLOCK_SIZE], + const SEED_KEY_SCHEDULE *ks); + +void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, + const SEED_KEY_SCHEDULE *ks, int enc); +void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, + const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int enc); +void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num, + int enc); +void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const SEED_KEY_SCHEDULE *ks, + unsigned char ivec[SEED_BLOCK_SIZE], int *num); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/sha.h b/thrid-party/openssl/openssl/sha.h new file mode 100644 index 000000000..6a1eb0de8 --- /dev/null +++ b/thrid-party/openssl/openssl/sha.h @@ -0,0 +1,119 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SHA_H +# define HEADER_SHA_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/*- + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * ! SHA_LONG has to be at least 32 bits wide. ! + * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + */ +# define SHA_LONG unsigned int + +# define SHA_LBLOCK 16 +# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ +# define SHA_LAST_BLOCK (SHA_CBLOCK-8) +# define SHA_DIGEST_LENGTH 20 + +typedef struct SHAstate_st { + SHA_LONG h0, h1, h2, h3, h4; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num; +} SHA_CTX; + +int SHA1_Init(SHA_CTX *c); +int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +int SHA1_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); +void SHA1_Transform(SHA_CTX *c, const unsigned char *data); + +# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a + * contiguous array of 32 bit wide + * big-endian values. */ + +typedef struct SHA256state_st { + SHA_LONG h[8]; + SHA_LONG Nl, Nh; + SHA_LONG data[SHA_LBLOCK]; + unsigned int num, md_len; +} SHA256_CTX; + +int SHA224_Init(SHA256_CTX *c); +int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA224_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); +int SHA256_Init(SHA256_CTX *c); +int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA256_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); +void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); + +# define SHA224_DIGEST_LENGTH 28 +# define SHA256_DIGEST_LENGTH 32 +# define SHA384_DIGEST_LENGTH 48 +# define SHA512_DIGEST_LENGTH 64 + +/* + * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 + * being exactly 64-bit wide. See Implementation Notes in sha512.c + * for further details. + */ +/* + * SHA-512 treats input data as a + * contiguous array of 64 bit + * wide big-endian values. + */ +# define SHA512_CBLOCK (SHA_LBLOCK*8) +# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) +# define SHA_LONG64 unsigned __int64 +# define U64(C) C##UI64 +# elif defined(__arch64__) +# define SHA_LONG64 unsigned long +# define U64(C) C##UL +# else +# define SHA_LONG64 unsigned long long +# define U64(C) C##ULL +# endif + +typedef struct SHA512state_st { + SHA_LONG64 h[8]; + SHA_LONG64 Nl, Nh; + union { + SHA_LONG64 d[SHA_LBLOCK]; + unsigned char p[SHA512_CBLOCK]; + } u; + unsigned int num, md_len; +} SHA512_CTX; + +int SHA384_Init(SHA512_CTX *c); +int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA384_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); +int SHA512_Init(SHA512_CTX *c); +int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA512_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); +void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/srp.h b/thrid-party/openssl/openssl/srp.h new file mode 100644 index 000000000..aaf13558e --- /dev/null +++ b/thrid-party/openssl/openssl/srp.h @@ -0,0 +1,135 @@ +/* + * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2004, EdelKey Project. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + * + * Originally written by Christophe Renou and Peter Sylvester, + * for the EdelKey project. + */ + +#ifndef HEADER_SRP_H +# define HEADER_SRP_H + +#include + +#ifndef OPENSSL_NO_SRP +# include +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +typedef struct SRP_gN_cache_st { + char *b64_bn; + BIGNUM *bn; +} SRP_gN_cache; + + +DEFINE_STACK_OF(SRP_gN_cache) + +typedef struct SRP_user_pwd_st { + /* Owned by us. */ + char *id; + BIGNUM *s; + BIGNUM *v; + /* Not owned by us. */ + const BIGNUM *g; + const BIGNUM *N; + /* Owned by us. */ + char *info; +} SRP_user_pwd; + +void SRP_user_pwd_free(SRP_user_pwd *user_pwd); + +DEFINE_STACK_OF(SRP_user_pwd) + +typedef struct SRP_VBASE_st { + STACK_OF(SRP_user_pwd) *users_pwd; + STACK_OF(SRP_gN_cache) *gN_cache; +/* to simulate a user */ + char *seed_key; + const BIGNUM *default_g; + const BIGNUM *default_N; +} SRP_VBASE; + +/* + * Internal structure storing N and g pair + */ +typedef struct SRP_gN_st { + char *id; + const BIGNUM *g; + const BIGNUM *N; +} SRP_gN; + +DEFINE_STACK_OF(SRP_gN) + +SRP_VBASE *SRP_VBASE_new(char *seed_key); +void SRP_VBASE_free(SRP_VBASE *vb); +int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); + +/* This method ignores the configured seed and fails for an unknown user. */ +DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) +/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ +SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); + +char *SRP_create_verifier(const char *user, const char *pass, char **salt, + char **verifier, const char *N, const char *g); +int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, + BIGNUM **verifier, const BIGNUM *N, + const BIGNUM *g); + +# define SRP_NO_ERROR 0 +# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 +# define SRP_ERR_VBASE_BN_LIB 2 +# define SRP_ERR_OPEN_FILE 3 +# define SRP_ERR_MEMORY 4 + +# define DB_srptype 0 +# define DB_srpverifier 1 +# define DB_srpsalt 2 +# define DB_srpid 3 +# define DB_srpgN 4 +# define DB_srpinfo 5 +# undef DB_NUMBER +# define DB_NUMBER 6 + +# define DB_SRP_INDEX 'I' +# define DB_SRP_VALID 'V' +# define DB_SRP_REVOKED 'R' +# define DB_SRP_MODIF 'v' + +/* see srp.c */ +char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); +SRP_gN *SRP_get_default_gN(const char *id); + +/* server side .... */ +BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, + const BIGNUM *b, const BIGNUM *N); +BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, + const BIGNUM *v); +int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); +BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); + +/* client side .... */ +BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); +BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); +BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, + const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); +int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); + +# define SRP_MINIMAL_N 1024 + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/srtp.h b/thrid-party/openssl/openssl/srtp.h new file mode 100644 index 000000000..0b57c2356 --- /dev/null +++ b/thrid-party/openssl/openssl/srtp.h @@ -0,0 +1,50 @@ +/* + * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * DTLS code by Eric Rescorla + * + * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. + */ + +#ifndef HEADER_D1_SRTP_H +# define HEADER_D1_SRTP_H + +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define SRTP_AES128_CM_SHA1_80 0x0001 +# define SRTP_AES128_CM_SHA1_32 0x0002 +# define SRTP_AES128_F8_SHA1_80 0x0003 +# define SRTP_AES128_F8_SHA1_32 0x0004 +# define SRTP_NULL_SHA1_80 0x0005 +# define SRTP_NULL_SHA1_32 0x0006 + +/* AEAD SRTP protection profiles from RFC 7714 */ +# define SRTP_AEAD_AES_128_GCM 0x0007 +# define SRTP_AEAD_AES_256_GCM 0x0008 + +# ifndef OPENSSL_NO_SRTP + +__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); +__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); + +__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); +__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); + +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/ssl.h b/thrid-party/openssl/openssl/ssl.h new file mode 100644 index 000000000..6724ccf2d --- /dev/null +++ b/thrid-party/openssl/openssl/ssl.h @@ -0,0 +1,2438 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * Copyright 2005 Nokia. All rights reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSL_H +# define HEADER_SSL_H + +# include +# include +# include +# include +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# include +# include +# endif +# include +# include +# include +# include + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpenSSL version number for ASN.1 encoding of the session information */ +/*- + * Version 0 - initial version + * Version 1 - added the optional peer certificate + */ +# define SSL_SESSION_ASN1_VERSION 0x0001 + +# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 +# define SSL_MAX_SID_CTX_LENGTH 32 + +# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) +# define SSL_MAX_KEY_ARG_LENGTH 8 +# define SSL_MAX_MASTER_KEY_LENGTH 48 + +/* The maximum number of encrypt/decrypt pipelines we can support */ +# define SSL_MAX_PIPELINES 32 + +/* text strings for the ciphers */ + +/* These are used to specify which ciphers to use and not to use */ + +# define SSL_TXT_LOW "LOW" +# define SSL_TXT_MEDIUM "MEDIUM" +# define SSL_TXT_HIGH "HIGH" +# define SSL_TXT_FIPS "FIPS" + +# define SSL_TXT_aNULL "aNULL" +# define SSL_TXT_eNULL "eNULL" +# define SSL_TXT_NULL "NULL" + +# define SSL_TXT_kRSA "kRSA" +# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ +# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ +# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ +# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ +# define SSL_TXT_kDHE "kDHE" +# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ +# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ +# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ +# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ +# define SSL_TXT_kECDHE "kECDHE" +# define SSL_TXT_kPSK "kPSK" +# define SSL_TXT_kRSAPSK "kRSAPSK" +# define SSL_TXT_kECDHEPSK "kECDHEPSK" +# define SSL_TXT_kDHEPSK "kDHEPSK" +# define SSL_TXT_kGOST "kGOST" +# define SSL_TXT_kSRP "kSRP" + +# define SSL_TXT_aRSA "aRSA" +# define SSL_TXT_aDSS "aDSS" +# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ +# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ +# define SSL_TXT_aECDSA "aECDSA" +# define SSL_TXT_aPSK "aPSK" +# define SSL_TXT_aGOST94 "aGOST94" +# define SSL_TXT_aGOST01 "aGOST01" +# define SSL_TXT_aGOST12 "aGOST12" +# define SSL_TXT_aGOST "aGOST" +# define SSL_TXT_aSRP "aSRP" + +# define SSL_TXT_DSS "DSS" +# define SSL_TXT_DH "DH" +# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ +# define SSL_TXT_EDH "EDH"/* alias for DHE */ +# define SSL_TXT_ADH "ADH" +# define SSL_TXT_RSA "RSA" +# define SSL_TXT_ECDH "ECDH" +# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ +# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ +# define SSL_TXT_AECDH "AECDH" +# define SSL_TXT_ECDSA "ECDSA" +# define SSL_TXT_PSK "PSK" +# define SSL_TXT_SRP "SRP" + +# define SSL_TXT_DES "DES" +# define SSL_TXT_3DES "3DES" +# define SSL_TXT_RC4 "RC4" +# define SSL_TXT_RC2 "RC2" +# define SSL_TXT_IDEA "IDEA" +# define SSL_TXT_SEED "SEED" +# define SSL_TXT_AES128 "AES128" +# define SSL_TXT_AES256 "AES256" +# define SSL_TXT_AES "AES" +# define SSL_TXT_AES_GCM "AESGCM" +# define SSL_TXT_AES_CCM "AESCCM" +# define SSL_TXT_AES_CCM_8 "AESCCM8" +# define SSL_TXT_CAMELLIA128 "CAMELLIA128" +# define SSL_TXT_CAMELLIA256 "CAMELLIA256" +# define SSL_TXT_CAMELLIA "CAMELLIA" +# define SSL_TXT_CHACHA20 "CHACHA20" +# define SSL_TXT_GOST "GOST89" +# define SSL_TXT_ARIA "ARIA" +# define SSL_TXT_ARIA_GCM "ARIAGCM" +# define SSL_TXT_ARIA128 "ARIA128" +# define SSL_TXT_ARIA256 "ARIA256" + +# define SSL_TXT_MD5 "MD5" +# define SSL_TXT_SHA1 "SHA1" +# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ +# define SSL_TXT_GOST94 "GOST94" +# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_GOST12 "GOST12" +# define SSL_TXT_GOST89MAC12 "GOST89MAC12" +# define SSL_TXT_SHA256 "SHA256" +# define SSL_TXT_SHA384 "SHA384" + +# define SSL_TXT_SSLV3 "SSLv3" +# define SSL_TXT_TLSV1 "TLSv1" +# define SSL_TXT_TLSV1_1 "TLSv1.1" +# define SSL_TXT_TLSV1_2 "TLSv1.2" + +# define SSL_TXT_ALL "ALL" + +/*- + * COMPLEMENTOF* definitions. These identifiers are used to (de-select) + * ciphers normally not being used. + * Example: "RC4" will activate all ciphers using RC4 including ciphers + * without authentication, which would normally disabled by DEFAULT (due + * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" + * will make sure that it is also disabled in the specific selection. + * COMPLEMENTOF* identifiers are portable between version, as adjustments + * to the default cipher setup will also be included here. + * + * COMPLEMENTOFDEFAULT does not experience the same special treatment that + * DEFAULT gets, as only selection is being done and no sorting as needed + * for DEFAULT. + */ +# define SSL_TXT_CMPALL "COMPLEMENTOFALL" +# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" + +/* + * The following cipher list is used by default. It also is substituted when + * an application-defined cipher list string starts with 'DEFAULT'. + * This applies to ciphersuites for TLSv1.2 and below. + */ +# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" +/* This is the default set of TLSv1.3 ciphersuites */ +# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) +# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ + "TLS_CHACHA20_POLY1305_SHA256:" \ + "TLS_AES_128_GCM_SHA256" +# else +# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ + "TLS_AES_128_GCM_SHA256" +#endif +/* + * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! (The latter are not + * actually enabled by ALL, but "ALL:RSA" would enable some of them.) + */ + +/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ +# define SSL_SENT_SHUTDOWN 1 +# define SSL_RECEIVED_SHUTDOWN 2 + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 +# define SSL_FILETYPE_PEM X509_FILETYPE_PEM + +/* + * This is needed to stop compilers complaining about the 'struct ssl_st *' + * function parameters used to prototype callbacks in SSL_CTX. + */ +typedef struct ssl_st *ssl_crock_st; +typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; +typedef struct ssl_method_st SSL_METHOD; +typedef struct ssl_cipher_st SSL_CIPHER; +typedef struct ssl_session_st SSL_SESSION; +typedef struct tls_sigalgs_st TLS_SIGALGS; +typedef struct ssl_conf_ctx_st SSL_CONF_CTX; +typedef struct ssl_comp_st SSL_COMP; + +STACK_OF(SSL_CIPHER); +STACK_OF(SSL_COMP); + +/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ +typedef struct srtp_protection_profile_st { + const char *name; + unsigned long id; +} SRTP_PROTECTION_PROFILE; + +DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE) + +typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, + int len, void *arg); +typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + const SSL_CIPHER **cipher, void *arg); + +/* Extension context codes */ +/* This extension is only allowed in TLS */ +#define SSL_EXT_TLS_ONLY 0x0001 +/* This extension is only allowed in DTLS */ +#define SSL_EXT_DTLS_ONLY 0x0002 +/* Some extensions may be allowed in DTLS but we don't implement them for it */ +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 +/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ +#define SSL_EXT_SSL3_ALLOWED 0x0008 +/* Extension is only defined for TLS1.2 and below */ +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 +/* Extension is only defined for TLS1.3 and above */ +#define SSL_EXT_TLS1_3_ONLY 0x0020 +/* Ignore this extension during parsing if we are resuming */ +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 +#define SSL_EXT_CLIENT_HELLO 0x0080 +/* Really means TLS1.2 or below */ +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 + +/* Typedefs for handling custom extensions */ + +typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, + const unsigned char **out, size_t *outlen, + int *al, void *add_arg); + +typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); + +typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, + const unsigned char *in, size_t inlen, + int *al, void *parse_arg); + + +typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char **out, + size_t *outlen, X509 *x, + size_t chainidx, + int *al, void *add_arg); + +typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *out, + void *add_arg); + +typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *in, + size_t inlen, X509 *x, + size_t chainidx, + int *al, void *parse_arg); + +/* Typedef for verification callback */ +typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); + +/* + * Some values are reserved until OpenSSL 1.2.0 because they were previously + * included in SSL_OP_ALL in a 1.1.x release. + * + * Reserved value (until OpenSSL 1.2.0) 0x00000001U + * Reserved value (until OpenSSL 1.2.0) 0x00000002U + */ +/* Allow initial connection to servers that don't support RI */ +# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U + +/* Reserved value (until OpenSSL 1.2.0) 0x00000008U */ +# define SSL_OP_TLSEXT_PADDING 0x00000010U +/* Reserved value (until OpenSSL 1.2.0) 0x00000020U */ +# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U +/* + * Reserved value (until OpenSSL 1.2.0) 0x00000080U + * Reserved value (until OpenSSL 1.2.0) 0x00000100U + * Reserved value (until OpenSSL 1.2.0) 0x00000200U + */ + +/* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ +# define SSL_OP_ALLOW_NO_DHE_KEX 0x00000400U + +/* + * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in + * OpenSSL 0.9.6d. Usually (depending on the application protocol) the + * workaround is not needed. Unfortunately some broken SSL/TLS + * implementations cannot handle it at all, which is why we include it in + * SSL_OP_ALL. Added in 0.9.6e + */ +# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U + +/* DTLS options */ +# define SSL_OP_NO_QUERY_MTU 0x00001000U +/* Turn on Cookie Exchange (on relevant for servers) */ +# define SSL_OP_COOKIE_EXCHANGE 0x00002000U +/* Don't use RFC4507 ticket extension */ +# define SSL_OP_NO_TICKET 0x00004000U +# ifndef OPENSSL_NO_DTLS1_METHOD +/* Use Cisco's "speshul" version of DTLS_BAD_VER + * (only with deprecated DTLSv1_client_method()) */ +# define SSL_OP_CISCO_ANYCONNECT 0x00008000U +# endif + +/* As server, disallow session resumption on renegotiation */ +# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U +/* Don't use compression even if supported */ +# define SSL_OP_NO_COMPRESSION 0x00020000U +/* Permit unsafe legacy renegotiation */ +# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U +/* Disable encrypt-then-mac */ +# define SSL_OP_NO_ENCRYPT_THEN_MAC 0x00080000U + +/* + * Enable TLSv1.3 Compatibility mode. This is on by default. A future version + * of OpenSSL may have this disabled by default. + */ +# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT 0x00100000U + +/* Prioritize Chacha20Poly1305 when client does. + * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE */ +# define SSL_OP_PRIORITIZE_CHACHA 0x00200000U + +/* + * Set on servers to choose the cipher according to the server's preferences + */ +# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U +/* + * If set, a server will allow a client to issue a SSLv3.0 version number as + * latest version supported in the premaster secret, even when TLSv1.0 + * (version 3.1) was announced in the client hello. Normally this is + * forbidden to prevent version rollback attacks. + */ +# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U + +/* + * Switches off automatic TLSv1.3 anti-replay protection for early data. This + * is a server-side option only (no effect on the client). + */ +# define SSL_OP_NO_ANTI_REPLAY 0x01000000U + +# define SSL_OP_NO_SSLv3 0x02000000U +# define SSL_OP_NO_TLSv1 0x04000000U +# define SSL_OP_NO_TLSv1_2 0x08000000U +# define SSL_OP_NO_TLSv1_1 0x10000000U +# define SSL_OP_NO_TLSv1_3 0x20000000U + +# define SSL_OP_NO_DTLSv1 0x04000000U +# define SSL_OP_NO_DTLSv1_2 0x08000000U + +# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\ + SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2|SSL_OP_NO_TLSv1_3) +# define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) + +/* Disallow all renegotiation */ +# define SSL_OP_NO_RENEGOTIATION 0x40000000U + +/* + * Make server add server-hello extension from early version of cryptopro + * draft, when GOST ciphersuite is negotiated. Required for interoperability + * with CryptoPro CSP 3.x + */ +# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U + +/* + * SSL_OP_ALL: various bug workarounds that should be rather harmless. + * This used to be 0x000FFFFFL before 0.9.7. + * This used to be 0x80000BFFU before 1.1.1. + */ +# define SSL_OP_ALL (SSL_OP_CRYPTOPRO_TLSEXT_BUG|\ + SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS|\ + SSL_OP_LEGACY_SERVER_CONNECT|\ + SSL_OP_TLSEXT_PADDING|\ + SSL_OP_SAFARI_ECDHE_ECDSA_BUG) + +/* OBSOLETE OPTIONS: retained for compatibility */ + +/* Removed from OpenSSL 1.1.0. Was 0x00000001L */ +/* Related to removed SSLv2. */ +# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000002L */ +/* Related to removed SSLv2. */ +# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 +/* Removed from OpenSSL 0.9.8q and 1.0.0c. Was 0x00000008L */ +/* Dead forever, see CVE-2010-4180 */ +# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 +/* Removed from OpenSSL 1.0.1h and 1.0.2. Was 0x00000010L */ +/* Refers to ancient SSLREF and SSLv2. */ +# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000020 */ +# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 +/* Removed from OpenSSL 0.9.7h and 0.9.8b. Was 0x00000040L */ +# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000080 */ +/* Ancient SSLeay version. */ +# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000100L */ +# define SSL_OP_TLS_D5_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00000200L */ +# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00080000L */ +# define SSL_OP_SINGLE_ECDH_USE 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x00100000L */ +# define SSL_OP_SINGLE_DH_USE 0x0 +/* Removed from OpenSSL 1.0.1k and 1.0.2. Was 0x00200000L */ +# define SSL_OP_EPHEMERAL_RSA 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x01000000L */ +# define SSL_OP_NO_SSLv2 0x0 +/* Removed from OpenSSL 1.0.1. Was 0x08000000L */ +# define SSL_OP_PKCS1_CHECK_1 0x0 +/* Removed from OpenSSL 1.0.1. Was 0x10000000L */ +# define SSL_OP_PKCS1_CHECK_2 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ +# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 +/* Removed from OpenSSL 1.1.0. Was 0x40000000L */ +# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 + +/* + * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success + * when just a single record has been written): + */ +# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U +/* + * Make it possible to retry SSL_write() with changed buffer location (buffer + * contents must stay the same!); this is not the default to avoid the + * misconception that non-blocking SSL_write() behaves like non-blocking + * write(): + */ +# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U +/* + * Never bother the application with retries if the transport is blocking: + */ +# define SSL_MODE_AUTO_RETRY 0x00000004U +/* Don't attempt to automatically build certificate chain */ +# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U +/* + * Save RAM by releasing read and write buffers when they're empty. (SSL3 and + * TLS only.) Released buffers are freed. + */ +# define SSL_MODE_RELEASE_BUFFERS 0x00000010U +/* + * Send the current time in the Random fields of the ClientHello and + * ServerHello records for compatibility with hypothetical implementations + * that require it. + */ +# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U +# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U +/* + * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications + * that reconnect with a downgraded protocol version; see + * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your + * application attempts a normal handshake. Only use this in explicit + * fallback retries, following the guidance in + * draft-ietf-tls-downgrade-scsv-00. + */ +# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U +/* + * Support Asynchronous operation + */ +# define SSL_MODE_ASYNC 0x00000100U + +/* + * When using DTLS/SCTP, include the terminating zero in the label + * used for computing the endpoint-pair shared secret. Required for + * interoperability with implementations having this bug like these + * older version of OpenSSL: + * - OpenSSL 1.0.0 series + * - OpenSSL 1.0.1 series + * - OpenSSL 1.0.2 series + * - OpenSSL 1.1.0 series + * - OpenSSL 1.1.1 and 1.1.1a + */ +# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U + +/* Cert related flags */ +/* + * Many implementations ignore some aspects of the TLS standards such as + * enforcing certificate chain algorithms. When this is set we enforce them. + */ +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U + +/* Suite B modes, takes same values as certificate verify flags */ +# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 + +/* Perform all sorts of protocol violations for testing purposes */ +# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 + +/* Flags for building certificate chains */ +/* Treat any existing certificates as untrusted CAs */ +# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 +/* Don't include root CA in chain */ +# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 +/* Just check certificates already there */ +# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 +/* Ignore verification errors */ +# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 +/* Clear verification errors from queue */ +# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 + +/* Flags returned by SSL_check_chain */ +/* Certificate can be used with this session */ +# define CERT_PKEY_VALID 0x1 +/* Certificate can also be used for signing */ +# define CERT_PKEY_SIGN 0x2 +/* EE certificate signing algorithm OK */ +# define CERT_PKEY_EE_SIGNATURE 0x10 +/* CA signature algorithms OK */ +# define CERT_PKEY_CA_SIGNATURE 0x20 +/* EE certificate parameters OK */ +# define CERT_PKEY_EE_PARAM 0x40 +/* CA certificate parameters OK */ +# define CERT_PKEY_CA_PARAM 0x80 +/* Signing explicitly allowed as opposed to SHA1 fallback */ +# define CERT_PKEY_EXPLICIT_SIGN 0x100 +/* Client CA issuer names match (always set for server cert) */ +# define CERT_PKEY_ISSUER_NAME 0x200 +/* Cert type matches client types (always set for server cert) */ +# define CERT_PKEY_CERT_TYPE 0x400 +/* Cert chain suitable to Suite B */ +# define CERT_PKEY_SUITEB 0x800 + +# define SSL_CONF_FLAG_CMDLINE 0x1 +# define SSL_CONF_FLAG_FILE 0x2 +# define SSL_CONF_FLAG_CLIENT 0x4 +# define SSL_CONF_FLAG_SERVER 0x8 +# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 +# define SSL_CONF_FLAG_CERTIFICATE 0x20 +# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 +/* Configuration value types */ +# define SSL_CONF_TYPE_UNKNOWN 0x0 +# define SSL_CONF_TYPE_STRING 0x1 +# define SSL_CONF_TYPE_FILE 0x2 +# define SSL_CONF_TYPE_DIR 0x3 +# define SSL_CONF_TYPE_NONE 0x4 + +/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ +# define SSL_COOKIE_LENGTH 4096 + +/* + * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they + * cannot be used to clear bits. + */ + +unsigned long SSL_CTX_get_options(const SSL_CTX *ctx); +unsigned long SSL_get_options(const SSL *s); +unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op); +unsigned long SSL_clear_options(SSL *s, unsigned long op); +unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op); +unsigned long SSL_set_options(SSL *s, unsigned long op); + +# define SSL_CTX_set_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) +# define SSL_CTX_clear_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_CTX_get_mode(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) +# define SSL_clear_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_set_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) +# define SSL_get_mode(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) +# define SSL_set_mtu(ssl, mtu) \ + SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) +# define DTLS_set_link_mtu(ssl, mtu) \ + SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) +# define DTLS_get_link_min_mtu(ssl) \ + SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) + +# define SSL_get_secure_renegotiation_support(ssl) \ + SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_heartbeat(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL) +# endif + +# define SSL_CTX_set_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_set_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_CTX_clear_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) +# define SSL_clear_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) + +void SSL_CTX_set_msg_callback(SSL_CTX *ctx, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +void SSL_set_msg_callback(SSL *ssl, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) +# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) + +# define SSL_get_extms_support(s) \ + SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) + +# ifndef OPENSSL_NO_SRP + +/* see tls_srp.c */ +__owur int SSL_SRP_CTX_init(SSL *s); +__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); +int SSL_SRP_CTX_free(SSL *ctx); +int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); +__owur int SSL_srp_server_param_with_username(SSL *s, int *ad); +__owur int SRP_Calc_A_param(SSL *s); + +# endif + +/* 100k max cert list */ +# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 + +# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) + +/* + * This callback type is used inside SSL_CTX, SSL, and in the functions that + * set them. It is used to override the generation of SSL/TLS session IDs in + * a server. Return value should be zero on an error, non-zero to proceed. + * Also, callbacks should themselves check if the id they generate is unique + * otherwise the SSL handshake will fail with an error - callbacks can do + * this using the 'ssl' value they're passed by; + * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in + * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 + * bytes. The callback can alter this length to be less if desired. It is + * also an error for the callback to set the size to zero. + */ +typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, + unsigned int *id_len); + +# define SSL_SESS_CACHE_OFF 0x0000 +# define SSL_SESS_CACHE_CLIENT 0x0001 +# define SSL_SESS_CACHE_SERVER 0x0002 +# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) +# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 +/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ +# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 +# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 +# define SSL_SESS_CACHE_NO_INTERNAL \ + (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) + +LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); +# define SSL_CTX_sess_number(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) +# define SSL_CTX_sess_connect(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) +# define SSL_CTX_sess_connect_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) +# define SSL_CTX_sess_connect_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) +# define SSL_CTX_sess_accept_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) +# define SSL_CTX_sess_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) +# define SSL_CTX_sess_cb_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) +# define SSL_CTX_sess_misses(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) +# define SSL_CTX_sess_timeouts(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) +# define SSL_CTX_sess_cache_full(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) + +void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, + int (*new_session_cb) (struct ssl_st *ssl, + SSL_SESSION *sess)); +int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + SSL_SESSION *sess); +void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, + void (*remove_session_cb) (struct ssl_ctx_st + *ctx, + SSL_SESSION *sess)); +void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, + SSL_SESSION *sess); +void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, + SSL_SESSION *(*get_session_cb) (struct ssl_st + *ssl, + const unsigned char + *data, int len, + int *copy)); +SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + const unsigned char *data, + int len, int *copy); +void SSL_CTX_set_info_callback(SSL_CTX *ctx, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, + int val); +void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, + int (*client_cert_cb) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey)); +int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey); +# ifndef OPENSSL_NO_ENGINE +__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); +# endif +void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, + int (*app_gen_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + *cookie_len)); +void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, + int (*app_verify_cookie_cb) (SSL *ssl, + const unsigned + char *cookie, + unsigned int + cookie_len)); + +void SSL_CTX_set_stateless_cookie_generate_cb( + SSL_CTX *ctx, + int (*gen_stateless_cookie_cb) (SSL *ssl, + unsigned char *cookie, + size_t *cookie_len)); +void SSL_CTX_set_stateless_cookie_verify_cb( + SSL_CTX *ctx, + int (*verify_stateless_cookie_cb) (SSL *ssl, + const unsigned char *cookie, + size_t cookie_len)); +# ifndef OPENSSL_NO_NEXTPROTONEG + +typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, + const unsigned char **out, + unsigned int *outlen, + void *arg); +void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, + SSL_CTX_npn_advertised_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb + +typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, + unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg); +void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, + SSL_CTX_npn_select_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb + +void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, + unsigned *len); +# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated +# endif + +__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, + const unsigned char *in, unsigned int inlen, + const unsigned char *client, + unsigned int client_len); + +# define OPENSSL_NPN_UNSUPPORTED 0 +# define OPENSSL_NPN_NEGOTIATED 1 +# define OPENSSL_NPN_NO_OVERLAP 2 + +__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned int protos_len); +__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned int protos_len); +typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + SSL_CTX_alpn_select_cb_func cb, + void *arg); +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned int *len); + +# ifndef OPENSSL_NO_PSK +/* + * the maximum length of the buffer given to callbacks containing the + * resulting identity/psk + */ +# define PSK_MAX_IDENTITY_LEN 128 +# define PSK_MAX_PSK_LEN 256 +typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, + const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); +void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); + +typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, + const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); +void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); + +__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); +__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); +const char *SSL_get_psk_identity_hint(const SSL *s); +const char *SSL_get_psk_identity(const SSL *s); +# endif + +typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, + const unsigned char *identity, + size_t identity_len, + SSL_SESSION **sess); +typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, + const unsigned char **id, + size_t *idlen, + SSL_SESSION **sess); + +void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); +void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, + SSL_psk_find_session_cb_func cb); +void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); +void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, + SSL_psk_use_session_cb_func cb); + +/* Register callbacks to handle custom TLS Extensions for client or server. */ + +__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, + unsigned int ext_type); + +__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + unsigned int context, + SSL_custom_ext_add_cb_ex add_cb, + SSL_custom_ext_free_cb_ex free_cb, + void *add_arg, + SSL_custom_ext_parse_cb_ex parse_cb, + void *parse_arg); + +__owur int SSL_extension_supported(unsigned int ext_type); + +# define SSL_NOTHING 1 +# define SSL_WRITING 2 +# define SSL_READING 3 +# define SSL_X509_LOOKUP 4 +# define SSL_ASYNC_PAUSED 5 +# define SSL_ASYNC_NO_JOBS 6 +# define SSL_CLIENT_HELLO_CB 7 + +/* These will only be used when doing non-blocking IO */ +# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) +# define SSL_want_read(s) (SSL_want(s) == SSL_READING) +# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) +# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) +# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) +# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) +# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) + +# define SSL_MAC_FLAG_READ_MAC_STREAM 1 +# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 + +/* + * A callback for logging out TLS key material. This callback should log out + * |line| followed by a newline. + */ +typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); + +/* + * SSL_CTX_set_keylog_callback configures a callback to log key material. This + * is intended for debugging use with tools like Wireshark. The cb function + * should log line followed by a newline. + */ +void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); + +/* + * SSL_CTX_get_keylog_callback returns the callback configured by + * SSL_CTX_set_keylog_callback. + */ +SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); + +int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); +uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); +int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); +uint32_t SSL_get_max_early_data(const SSL *s); +int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); +uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); +int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); +uint32_t SSL_get_recv_max_early_data(const SSL *s); + +#ifdef __cplusplus +} +#endif + +# include +# include +# include /* This is mostly sslv3 with a few tweaks */ +# include /* Datagram TLS */ +# include /* Support for the use_srtp extension */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These need to be after the above set of includes due to a compiler bug + * in VisualStudio 2015 + */ +DEFINE_STACK_OF_CONST(SSL_CIPHER) +DEFINE_STACK_OF(SSL_COMP) + +/* compatibility */ +# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) +# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) +# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ + (char *)(a))) +# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) +# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) +# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ + (char *)(arg))) +DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug)) + +/* TLSv1.3 KeyUpdate message types */ +/* -1 used so that this is an invalid value for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NONE -1 +/* Values as defined for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NOT_REQUESTED 0 +#define SSL_KEY_UPDATE_REQUESTED 1 + +/* + * The valid handshake states (one for each type message sent and one for each + * type of message received). There are also two "special" states: + * TLS = TLS or DTLS state + * DTLS = DTLS specific state + * CR/SR = Client Read/Server Read + * CW/SW = Client Write/Server Write + * + * The "special" states are: + * TLS_ST_BEFORE = No handshake has been initiated yet + * TLS_ST_OK = A handshake has been successfully completed + */ +typedef enum { + TLS_ST_BEFORE, + TLS_ST_OK, + DTLS_ST_CR_HELLO_VERIFY_REQUEST, + TLS_ST_CR_SRVR_HELLO, + TLS_ST_CR_CERT, + TLS_ST_CR_CERT_STATUS, + TLS_ST_CR_KEY_EXCH, + TLS_ST_CR_CERT_REQ, + TLS_ST_CR_SRVR_DONE, + TLS_ST_CR_SESSION_TICKET, + TLS_ST_CR_CHANGE, + TLS_ST_CR_FINISHED, + TLS_ST_CW_CLNT_HELLO, + TLS_ST_CW_CERT, + TLS_ST_CW_KEY_EXCH, + TLS_ST_CW_CERT_VRFY, + TLS_ST_CW_CHANGE, + TLS_ST_CW_NEXT_PROTO, + TLS_ST_CW_FINISHED, + TLS_ST_SW_HELLO_REQ, + TLS_ST_SR_CLNT_HELLO, + DTLS_ST_SW_HELLO_VERIFY_REQUEST, + TLS_ST_SW_SRVR_HELLO, + TLS_ST_SW_CERT, + TLS_ST_SW_KEY_EXCH, + TLS_ST_SW_CERT_REQ, + TLS_ST_SW_SRVR_DONE, + TLS_ST_SR_CERT, + TLS_ST_SR_KEY_EXCH, + TLS_ST_SR_CERT_VRFY, + TLS_ST_SR_NEXT_PROTO, + TLS_ST_SR_CHANGE, + TLS_ST_SR_FINISHED, + TLS_ST_SW_SESSION_TICKET, + TLS_ST_SW_CERT_STATUS, + TLS_ST_SW_CHANGE, + TLS_ST_SW_FINISHED, + TLS_ST_SW_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_CERT_VRFY, + TLS_ST_SW_CERT_VRFY, + TLS_ST_CR_HELLO_REQ, + TLS_ST_SW_KEY_UPDATE, + TLS_ST_CW_KEY_UPDATE, + TLS_ST_SR_KEY_UPDATE, + TLS_ST_CR_KEY_UPDATE, + TLS_ST_EARLY_DATA, + TLS_ST_PENDING_EARLY_DATA_END, + TLS_ST_CW_END_OF_EARLY_DATA, + TLS_ST_SR_END_OF_EARLY_DATA +} OSSL_HANDSHAKE_STATE; + +/* + * Most of the following state values are no longer used and are defined to be + * the closest equivalent value in the current state machine code. Not all + * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT + * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, + * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. + */ + +# define SSL_ST_CONNECT 0x1000 +# define SSL_ST_ACCEPT 0x2000 + +# define SSL_ST_MASK 0x0FFF + +# define SSL_CB_LOOP 0x01 +# define SSL_CB_EXIT 0x02 +# define SSL_CB_READ 0x04 +# define SSL_CB_WRITE 0x08 +# define SSL_CB_ALERT 0x4000/* used in callback */ +# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) +# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) +# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) +# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) +# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) +# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) +# define SSL_CB_HANDSHAKE_START 0x10 +# define SSL_CB_HANDSHAKE_DONE 0x20 + +/* Is the SSL_connection established? */ +# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) +# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) +int SSL_in_init(const SSL *s); +int SSL_in_before(const SSL *s); +int SSL_is_init_finished(const SSL *s); + +/* + * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you + * should not need these + */ +# define SSL_ST_READ_HEADER 0xF0 +# define SSL_ST_READ_BODY 0xF1 +# define SSL_ST_READ_DONE 0xF2 + +/*- + * Obtain latest Finished message + * -- that we sent (SSL_get_finished) + * -- that we expected from peer (SSL_get_peer_finished). + * Returns length (0 == no Finished so far), copies up to 'count' bytes. + */ +size_t SSL_get_finished(const SSL *s, void *buf, size_t count); +size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); + +/* + * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are + * 'ored' with SSL_VERIFY_PEER if they are desired + */ +# define SSL_VERIFY_NONE 0x00 +# define SSL_VERIFY_PEER 0x01 +# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 +# define SSL_VERIFY_CLIENT_ONCE 0x04 +# define SSL_VERIFY_POST_HANDSHAKE 0x08 + +# if OPENSSL_API_COMPAT < 0x10100000L +# define OpenSSL_add_ssl_algorithms() SSL_library_init() +# define SSLeay_add_ssl_algorithms() SSL_library_init() +# endif + +/* More backward compatibility */ +# define SSL_get_cipher(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_cipher_bits(s,np) \ + SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) +# define SSL_get_cipher_version(s) \ + SSL_CIPHER_get_version(SSL_get_current_cipher(s)) +# define SSL_get_cipher_name(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_time(a) SSL_SESSION_get_time(a) +# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) +# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) +# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) + +# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) +# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) + +DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) +# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value + * from SSL_AD_... */ +/* These alert types are for SSLv3 and TLSv1 */ +# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY +/* fatal */ +# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE +/* fatal */ +# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC +# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED +# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW +/* fatal */ +# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE +/* fatal */ +# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE +/* Not for TLS */ +# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE +# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE +# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE +# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED +# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED +# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN +/* fatal */ +# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER +/* fatal */ +# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA +/* fatal */ +# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED +/* fatal */ +# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR +# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR +/* fatal */ +# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION +/* fatal */ +# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION +/* fatal */ +# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY +/* fatal */ +# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR +# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED +# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION +# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION +# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED +# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION +# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE +# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME +# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE +# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE +/* fatal */ +# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY +/* fatal */ +# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK +# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL +# define SSL_ERROR_NONE 0 +# define SSL_ERROR_SSL 1 +# define SSL_ERROR_WANT_READ 2 +# define SSL_ERROR_WANT_WRITE 3 +# define SSL_ERROR_WANT_X509_LOOKUP 4 +# define SSL_ERROR_SYSCALL 5/* look at error stack/return + * value/errno */ +# define SSL_ERROR_ZERO_RETURN 6 +# define SSL_ERROR_WANT_CONNECT 7 +# define SSL_ERROR_WANT_ACCEPT 8 +# define SSL_ERROR_WANT_ASYNC 9 +# define SSL_ERROR_WANT_ASYNC_JOB 10 +# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 +# define SSL_CTRL_SET_TMP_DH 3 +# define SSL_CTRL_SET_TMP_ECDH 4 +# define SSL_CTRL_SET_TMP_DH_CB 6 +# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 +# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 +# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 +# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 +# define SSL_CTRL_GET_FLAGS 13 +# define SSL_CTRL_EXTRA_CHAIN_CERT 14 +# define SSL_CTRL_SET_MSG_CALLBACK 15 +# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 +/* only applies to datagram connections */ +# define SSL_CTRL_SET_MTU 17 +/* Stats */ +# define SSL_CTRL_SESS_NUMBER 20 +# define SSL_CTRL_SESS_CONNECT 21 +# define SSL_CTRL_SESS_CONNECT_GOOD 22 +# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 +# define SSL_CTRL_SESS_ACCEPT 24 +# define SSL_CTRL_SESS_ACCEPT_GOOD 25 +# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 +# define SSL_CTRL_SESS_HIT 27 +# define SSL_CTRL_SESS_CB_HIT 28 +# define SSL_CTRL_SESS_MISSES 29 +# define SSL_CTRL_SESS_TIMEOUTS 30 +# define SSL_CTRL_SESS_CACHE_FULL 31 +# define SSL_CTRL_MODE 33 +# define SSL_CTRL_GET_READ_AHEAD 40 +# define SSL_CTRL_SET_READ_AHEAD 41 +# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 +# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 +# define SSL_CTRL_SET_SESS_CACHE_MODE 44 +# define SSL_CTRL_GET_SESS_CACHE_MODE 45 +# define SSL_CTRL_GET_MAX_CERT_LIST 50 +# define SSL_CTRL_SET_MAX_CERT_LIST 51 +# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 +/* see tls1.h for macros based on these */ +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 +# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 +# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 +# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 +# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 +# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 +# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 +# define SSL_CTRL_SET_SRP_ARG 78 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 +# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 +# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85 +# define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86 +# define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87 +# endif +# define DTLS_CTRL_GET_TIMEOUT 73 +# define DTLS_CTRL_HANDLE_TIMEOUT 74 +# define SSL_CTRL_GET_RI_SUPPORT 76 +# define SSL_CTRL_CLEAR_MODE 78 +# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 +# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 +# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 +# define SSL_CTRL_CHAIN 88 +# define SSL_CTRL_CHAIN_CERT 89 +# define SSL_CTRL_GET_GROUPS 90 +# define SSL_CTRL_SET_GROUPS 91 +# define SSL_CTRL_SET_GROUPS_LIST 92 +# define SSL_CTRL_GET_SHARED_GROUP 93 +# define SSL_CTRL_SET_SIGALGS 97 +# define SSL_CTRL_SET_SIGALGS_LIST 98 +# define SSL_CTRL_CERT_FLAGS 99 +# define SSL_CTRL_CLEAR_CERT_FLAGS 100 +# define SSL_CTRL_SET_CLIENT_SIGALGS 101 +# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 +# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 +# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 +# define SSL_CTRL_BUILD_CERT_CHAIN 105 +# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 +# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 +# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 +# define SSL_CTRL_GET_PEER_TMP_KEY 109 +# define SSL_CTRL_GET_RAW_CIPHERLIST 110 +# define SSL_CTRL_GET_EC_POINT_FORMATS 111 +# define SSL_CTRL_GET_CHAIN_CERTS 115 +# define SSL_CTRL_SELECT_CURRENT_CERT 116 +# define SSL_CTRL_SET_CURRENT_CERT 117 +# define SSL_CTRL_SET_DH_AUTO 118 +# define DTLS_CTRL_SET_LINK_MTU 120 +# define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CTRL_GET_EXTMS_SUPPORT 122 +# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 +# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 +# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 +# define SSL_CTRL_SET_MAX_PIPELINES 126 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 +# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 +# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 +# define SSL_CTRL_GET_SIGNATURE_NID 132 +# define SSL_CTRL_GET_TMP_KEY 133 +# define SSL_CERT_SET_FIRST 1 +# define SSL_CERT_SET_NEXT 2 +# define SSL_CERT_SET_SERVER 3 +# define DTLSv1_get_timeout(ssl, arg) \ + SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) +# define DTLSv1_handle_timeout(ssl) \ + SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) +# define SSL_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_clear_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_total_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) +# define SSL_CTX_set_tmp_dh(ctx,dh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) +# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) +# define SSL_CTX_set_dh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) +# define SSL_set_dh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) +# define SSL_set_tmp_dh(ssl,dh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) +# define SSL_set_tmp_ecdh(ssl,ecdh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) +# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) +# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) +# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) +# define SSL_CTX_clear_extra_chain_certs(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) +# define SSL_CTX_set0_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) +# define SSL_CTX_set1_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) +# define SSL_CTX_add0_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) +# define SSL_CTX_add1_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) +# define SSL_CTX_get0_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_CTX_clear_chain_certs(ctx) \ + SSL_CTX_set0_chain(ctx,NULL) +# define SSL_CTX_build_cert_chain(ctx, flags) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_CTX_select_current_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) +# define SSL_CTX_set_current_cert(ctx, op) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_CTX_set0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_CTX_set1_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) +# define SSL_CTX_set0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) +# define SSL_CTX_set1_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) +# define SSL_set0_chain(s,sk) \ + SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) +# define SSL_set1_chain(s,sk) \ + SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) +# define SSL_add0_chain_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) +# define SSL_add1_chain_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) +# define SSL_get0_chain_certs(s,px509) \ + SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_clear_chain_certs(s) \ + SSL_set0_chain(s,NULL) +# define SSL_build_cert_chain(s, flags) \ + SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_select_current_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) +# define SSL_set_current_cert(s,op) \ + SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_set0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_set1_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) +# define SSL_set0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) +# define SSL_set1_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) +# define SSL_get1_groups(s, glist) \ + SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) +# define SSL_CTX_set1_groups_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_set1_groups(s, glist, glistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) +# define SSL_set1_groups_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) +# define SSL_get_shared_group(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) +# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) +# define SSL_CTX_set1_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) +# define SSL_set1_sigalgs(s, slist, slistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) +# define SSL_set1_sigalgs_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) +# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) +# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) +# define SSL_set1_client_sigalgs(s, slist, slistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) +# define SSL_set1_client_sigalgs_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) +# define SSL_get0_certificate_types(s, clist) \ + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) +# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ + (char *)(clist)) +# define SSL_set1_client_certificate_types(s, clist, clistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get_peer_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) +# define SSL_get_peer_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) +# define SSL_get_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) +# define SSL_get0_raw_cipherlist(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) +# define SSL_get0_ec_point_formats(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) +# define SSL_CTX_set_min_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +# define SSL_CTX_set_max_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +# define SSL_CTX_get_min_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +# define SSL_CTX_get_max_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +# define SSL_set_min_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +# define SSL_set_max_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +# define SSL_get_min_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +# define SSL_get_max_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) + +/* Backwards compatibility, original 1.1.0 names */ +# define SSL_CTRL_GET_SERVER_TMP_KEY \ + SSL_CTRL_GET_PEER_TMP_KEY +# define SSL_get_server_tmp_key(s, pk) \ + SSL_get_peer_tmp_key(s, pk) + +/* + * The following symbol names are old and obsolete. They are kept + * for compatibility reasons only and should not be used anymore. + */ +# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS +# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS +# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST +# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP + +# define SSL_get1_curves SSL_get1_groups +# define SSL_CTX_set1_curves SSL_CTX_set1_groups +# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list +# define SSL_set1_curves SSL_set1_groups +# define SSL_set1_curves_list SSL_set1_groups_list +# define SSL_get_shared_curve SSL_get_shared_group + + +# if OPENSSL_API_COMPAT < 0x10100000L +/* Provide some compatibility macros for removed functionality. */ +# define SSL_CTX_need_tmp_RSA(ctx) 0 +# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 +# define SSL_need_tmp_RSA(ssl) 0 +# define SSL_set_tmp_rsa(ssl,rsa) 1 +# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +/* + * We "pretend" to call the callback to avoid warnings about unused static + * functions. + */ +# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) +# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) +# endif +__owur const BIO_METHOD *BIO_f_ssl(void); +__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); +__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); +__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); +__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); +void BIO_ssl_shutdown(BIO *ssl_bio); + +__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); +__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +int SSL_CTX_up_ref(SSL_CTX *ctx); +void SSL_CTX_free(SSL_CTX *); +__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); +__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); +__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); +void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); +void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); +__owur int SSL_want(const SSL *s); +__owur int SSL_clear(SSL *s); + +void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); + +__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); +__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); +__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +__owur const char *OPENSSL_cipher_name(const char *rfc_name); +__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); +__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); +__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); +__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); + +__owur int SSL_get_fd(const SSL *s); +__owur int SSL_get_rfd(const SSL *s); +__owur int SSL_get_wfd(const SSL *s); +__owur const char *SSL_get_cipher_list(const SSL *s, int n); +__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); +__owur int SSL_get_read_ahead(const SSL *s); +__owur int SSL_pending(const SSL *s); +__owur int SSL_has_pending(const SSL *s); +# ifndef OPENSSL_NO_SOCK +__owur int SSL_set_fd(SSL *s, int fd); +__owur int SSL_set_rfd(SSL *s, int fd); +__owur int SSL_set_wfd(SSL *s, int fd); +# endif +void SSL_set0_rbio(SSL *s, BIO *rbio); +void SSL_set0_wbio(SSL *s, BIO *wbio); +void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); +__owur BIO *SSL_get_rbio(const SSL *s); +__owur BIO *SSL_get_wbio(const SSL *s); +__owur int SSL_set_cipher_list(SSL *s, const char *str); +__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); +__owur int SSL_set_ciphersuites(SSL *s, const char *str); +void SSL_set_read_ahead(SSL *s, int yes); +__owur int SSL_get_verify_mode(const SSL *s); +__owur int SSL_get_verify_depth(const SSL *s); +__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); +void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); +void SSL_set_verify_depth(SSL *s, int depth); +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); +# ifndef OPENSSL_NO_RSA +__owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, + long len); +# endif +__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); +__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, + long len); +__owur int SSL_use_certificate(SSL *ssl, X509 *x); +__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); +__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); + + +/* serverinfo file format versions */ +# define SSL_SERVERINFOV1 1 +# define SSL_SERVERINFOV2 2 + +/* Set serverinfo data for the current active cert. */ +__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length); +__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, + const unsigned char *serverinfo, + size_t serverinfo_length); +__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); + +#ifndef OPENSSL_NO_RSA +__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); +#endif + +__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); +__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); + +#ifndef OPENSSL_NO_RSA +__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, + int type); +#endif +__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, + int type); +__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, + int type); +/* PEM type */ +__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); +__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); +__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); +__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *file); +int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *dir); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_load_error_strings() \ + OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +# endif + +__owur const char *SSL_state_string(const SSL *s); +__owur const char *SSL_rstate_string(const SSL *s); +__owur const char *SSL_state_string_long(const SSL *s); +__owur const char *SSL_rstate_string_long(const SSL *s); +__owur long SSL_SESSION_get_time(const SSL_SESSION *s); +__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); +__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); +__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); +__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); + +__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); +__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); +void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, + const unsigned char **alpn, + size_t *len); +__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, + const unsigned char *alpn, + size_t len); +__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); +__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); +__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); +__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); +void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, + size_t *len); +__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); +__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, + uint32_t max_early_data); +__owur int SSL_copy_session_id(SSL *to, const SSL *from); +__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); +__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); +__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, + unsigned int sid_len); +__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); + +__owur SSL_SESSION *SSL_SESSION_new(void); +__owur SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src); +const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, + unsigned int *len); +const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, + unsigned int *len); +__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +# ifndef OPENSSL_NO_STDIO +int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); +# endif +int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); +int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); +int SSL_SESSION_up_ref(SSL_SESSION *ses); +void SSL_SESSION_free(SSL_SESSION *ses); +__owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); +__owur int SSL_set_session(SSL *to, SSL_SESSION *session); +int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); +int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); +__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); +__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); +__owur int SSL_has_matching_session_id(const SSL *s, + const unsigned char *id, + unsigned int id_len); +SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, + long length); + +# ifdef HEADER_X509_H +__owur X509 *SSL_get_peer_certificate(const SSL *s); +# endif + +__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); + +__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); +__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); +__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); +void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); +void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); +void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, + int (*cb) (X509_STORE_CTX *, void *), + void *arg); +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg); +# ifndef OPENSSL_NO_RSA +__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); +__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, + long len); +# endif +__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); +__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, + const unsigned char *d, long len); +__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); +__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, + const unsigned char *d); +__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); + +void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); +pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); +void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); +void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); +void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); +pem_password_cb *SSL_get_default_passwd_cb(SSL *s); +void *SSL_get_default_passwd_cb_userdata(SSL *s); + +__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); +__owur int SSL_check_private_key(const SSL *ctx); + +__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL *SSL_new(SSL_CTX *ctx); +int SSL_up_ref(SSL *s); +int SSL_is_dtls(const SSL *s); +__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); +__owur int SSL_set_purpose(SSL *ssl, int purpose); +__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); +__owur int SSL_set_trust(SSL *ssl, int trust); + +__owur int SSL_set1_host(SSL *s, const char *hostname); +__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur const char *SSL_get0_peername(SSL *s); +void SSL_set_hostflags(SSL *s, unsigned int flags); + +__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); +__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, + uint8_t mtype, uint8_t ord); +__owur int SSL_dane_enable(SSL *s, const char *basedomain); +__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, + uint8_t mtype, unsigned const char *data, size_t dlen); +__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); +__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, + uint8_t *mtype, unsigned const char **data, + size_t *dlen); +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +SSL_DANE *SSL_get0_dane(SSL *ssl); +/* + * DANE flags + */ +unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); +unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); + +__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); +__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); + +__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); + +# ifndef OPENSSL_NO_SRP +int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); +int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); +int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); +int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, + char *(*cb) (SSL *, void *)); +int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, + int (*cb) (SSL *, void *)); +int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, + int (*cb) (SSL *, int *, void *)); +int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); + +int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, + BIGNUM *sa, BIGNUM *v, char *info); +int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, + const char *grp); + +__owur BIGNUM *SSL_get_srp_g(SSL *s); +__owur BIGNUM *SSL_get_srp_N(SSL *s); + +__owur char *SSL_get_srp_username(SSL *s); +__owur char *SSL_get_srp_userinfo(SSL *s); +# endif + +/* + * ClientHello callback and helpers. + */ + +# define SSL_CLIENT_HELLO_SUCCESS 1 +# define SSL_CLIENT_HELLO_ERROR 0 +# define SSL_CLIENT_HELLO_RETRY (-1) + +typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); +void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, + void *arg); +int SSL_client_hello_isv2(SSL *s); +unsigned int SSL_client_hello_get0_legacy_version(SSL *s); +size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_compression_methods(SSL *s, + const unsigned char **out); +int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get0_ext(SSL *s, unsigned int type, + const unsigned char **out, size_t *outlen); + +void SSL_certs_clear(SSL *s); +void SSL_free(SSL *ssl); +# ifdef OSSL_ASYNC_FD +/* + * Windows application developer has to include windows.h to use these. + */ +__owur int SSL_waiting_for_async(SSL *s); +__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); +__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, + size_t *numaddfds, OSSL_ASYNC_FD *delfd, + size_t *numdelfds); +# endif +__owur int SSL_accept(SSL *ssl); +__owur int SSL_stateless(SSL *s); +__owur int SSL_connect(SSL *ssl); +__owur int SSL_read(SSL *ssl, void *buf, int num); +__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); + +# define SSL_READ_EARLY_DATA_ERROR 0 +# define SSL_READ_EARLY_DATA_SUCCESS 1 +# define SSL_READ_EARLY_DATA_FINISH 2 + +__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, + size_t *readbytes); +__owur int SSL_peek(SSL *ssl, void *buf, int num); +__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); +__owur int SSL_write(SSL *ssl, const void *buf, int num); +__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); +__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, + size_t *written); +long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); +long SSL_callback_ctrl(SSL *, int, void (*)(void)); +long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); +long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); + +# define SSL_EARLY_DATA_NOT_SENT 0 +# define SSL_EARLY_DATA_REJECTED 1 +# define SSL_EARLY_DATA_ACCEPTED 2 + +__owur int SSL_get_early_data_status(const SSL *s); + +__owur int SSL_get_error(const SSL *s, int ret_code); +__owur const char *SSL_get_version(const SSL *s); + +/* This sets the 'default' SSL version that SSL_new() will create */ +__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); + +# ifndef OPENSSL_NO_SSL3_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) +# endif + +#define SSLv23_method TLS_method +#define SSLv23_server_method TLS_server_method +#define SSLv23_client_method TLS_client_method + +/* Negotiate highest available SSL/TLS version */ +__owur const SSL_METHOD *TLS_method(void); +__owur const SSL_METHOD *TLS_server_method(void); +__owur const SSL_METHOD *TLS_client_method(void); + +# ifndef OPENSSL_NO_TLS1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) +# endif + +# ifndef OPENSSL_NO_TLS1_1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) +# endif + +# ifndef OPENSSL_NO_TLS1_2_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) +# endif + +# ifndef OPENSSL_NO_DTLS1_METHOD +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) +# endif + +# ifndef OPENSSL_NO_DTLS1_2_METHOD +/* DTLSv1.2 */ +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) +DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) +# endif + +__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ + +__owur size_t DTLS_get_data_mtu(const SSL *s); + +__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); +__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); + +__owur int SSL_do_handshake(SSL *s); +int SSL_key_update(SSL *s, int updatetype); +int SSL_get_key_update_type(const SSL *s); +int SSL_renegotiate(SSL *s); +int SSL_renegotiate_abbreviated(SSL *s); +__owur int SSL_renegotiate_pending(const SSL *s); +int SSL_shutdown(SSL *s); +__owur int SSL_verify_client_post_handshake(SSL *s); +void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); +void SSL_set_post_handshake_auth(SSL *s, int val); + +__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); +__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); +__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); +__owur const char *SSL_alert_type_string_long(int value); +__owur const char *SSL_alert_type_string(int value); +__owur const char *SSL_alert_desc_string_long(int value); +__owur const char *SSL_alert_desc_string(int value); + +void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); +__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); +__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); +__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); +__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); + +void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); +__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); +__owur int SSL_add_client_CA(SSL *ssl, X509 *x); +__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); + +void SSL_set_connect_state(SSL *s); +void SSL_set_accept_state(SSL *s); + +__owur long SSL_get_default_timeout(const SSL *s); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_library_init() OPENSSL_init_ssl(0, NULL) +# endif + +__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); +__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); + +__owur SSL *SSL_dup(SSL *ssl); + +__owur X509 *SSL_get_certificate(const SSL *ssl); +/* + * EVP_PKEY + */ +struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + +__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); + +void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); +__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); +void SSL_set_quiet_shutdown(SSL *ssl, int mode); +__owur int SSL_get_quiet_shutdown(const SSL *ssl); +void SSL_set_shutdown(SSL *ssl, int mode); +__owur int SSL_get_shutdown(const SSL *ssl); +__owur int SSL_version(const SSL *ssl); +__owur int SSL_client_version(const SSL *s); +__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); +__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, + const char *CApath); +# define SSL_get0_session SSL_get_session/* just peek at pointer */ +__owur SSL_SESSION *SSL_get_session(const SSL *ssl); +__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ +__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); +SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); +void SSL_set_info_callback(SSL *ssl, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, + int val); +__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); + +void SSL_set_verify_result(SSL *ssl, long v); +__owur long SSL_get_verify_result(const SSL *ssl); +__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); + +__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, + unsigned char *out, size_t outlen); +__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, + const unsigned char *in, size_t len); +uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); + +#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) +__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); +void *SSL_get_ex_data(const SSL *ssl, int idx); +#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) +__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); +void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); +#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) +__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); +void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); + +__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); + +# define SSL_CTX_sess_set_cache_size(ctx,t) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) +# define SSL_CTX_sess_get_cache_size(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) +# define SSL_CTX_set_session_cache_mode(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) +# define SSL_CTX_get_session_cache_mode(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) + +# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) +# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) +# define SSL_CTX_get_read_ahead(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) +# define SSL_CTX_set_read_ahead(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) +# define SSL_CTX_get_max_cert_list(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_CTX_set_max_cert_list(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) +# define SSL_get_max_cert_list(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_set_max_cert_list(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) + +# define SSL_CTX_set_max_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_set_max_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_split_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_set_split_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_max_pipelines(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) +# define SSL_set_max_pipelines(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) + +void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); +void SSL_set_default_read_buffer_len(SSL *s, size_t len); + +# ifndef OPENSSL_NO_DH +/* NB: the |keylength| is only applicable when is_export is true */ +void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +void SSL_set_tmp_dh_callback(SSL *ssl, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +# endif + +__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); +__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); +__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); +__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); +__owur int SSL_COMP_get_id(const SSL_COMP *comp); +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths); +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_COMP_free_compression_methods() while(0) continue +# endif +__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); + +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); +int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); +int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); +int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, + int isv2format, STACK_OF(SSL_CIPHER) **sk, + STACK_OF(SSL_CIPHER) **scsvs); + +/* TLS extensions functions */ +__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); + +__owur int SSL_set_session_ticket_ext_cb(SSL *s, + tls_session_ticket_ext_cb_fn cb, + void *arg); + +/* Pre-shared secret session resumption functions */ +__owur int SSL_set_session_secret_cb(SSL *s, + tls_session_secret_cb_fn session_secret_cb, + void *arg); + +void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + int + is_forward_secure)); + +void SSL_set_not_resumable_session_callback(SSL *ssl, + int (*cb) (SSL *ssl, + int is_forward_secure)); + +void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); +void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); +int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); + +void SSL_set_record_padding_callback(SSL *ssl, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); +void *SSL_get_record_padding_callback_arg(const SSL *ssl); +int SSL_set_block_padding(SSL *ssl, size_t block_size); + +int SSL_set_num_tickets(SSL *s, size_t num_tickets); +size_t SSL_get_num_tickets(const SSL *s); +int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); +size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_cache_hit(s) SSL_session_reused(s) +# endif + +__owur int SSL_session_reused(const SSL *s); +__owur int SSL_is_server(const SSL *s); + +__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); +__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, + unsigned int flags); +__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); + +__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +void SSL_add_ssl_module(void); +int SSL_config(SSL *s, const char *name); +int SSL_CTX_config(SSL_CTX *ctx, const char *name); + +# ifndef OPENSSL_NO_SSL_TRACE +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); +# endif + +# ifndef OPENSSL_NO_SOCK +int DTLSv1_listen(SSL *s, BIO_ADDR *client); +# endif + +# ifndef OPENSSL_NO_CT + +/* + * A callback for verifying that the received SCTs are sufficient. + * Expected to return 1 if they are sufficient, otherwise 0. + * May return a negative integer if an error occurs. + * A connection should be aborted if the SCTs are deemed insufficient. + */ +typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, + const STACK_OF(SCT) *scts, void *arg); + +/* + * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate + * the received SCTs. + * If the callback returns a non-positive result, the connection is terminated. + * Call this function before beginning a handshake. + * If a NULL |callback| is provided, SCT validation is disabled. + * |arg| is arbitrary userdata that will be passed to the callback whenever it + * is invoked. Ownership of |arg| remains with the caller. + * + * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response + * will be requested. + */ +int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, + void *arg); +int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, + ssl_ct_validation_cb callback, + void *arg); +#define SSL_disable_ct(s) \ + ((void) SSL_set_validation_callback((s), NULL, NULL)) +#define SSL_CTX_disable_ct(ctx) \ + ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) + +/* + * The validation type enumerates the available behaviours of the built-in SSL + * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). + * The underlying callback is a static function in libssl. + */ +enum { + SSL_CT_VALIDATION_PERMISSIVE = 0, + SSL_CT_VALIDATION_STRICT +}; + +/* + * Enable CT by setting up a callback that implements one of the built-in + * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always + * continues the handshake, the application can make appropriate decisions at + * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at + * least one valid SCT, or else handshake termination will be requested. The + * handshake may continue anyway if SSL_VERIFY_NONE is in effect. + */ +int SSL_enable_ct(SSL *s, int validation_mode); +int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); + +/* + * Report whether a non-NULL callback is enabled. + */ +int SSL_ct_is_enabled(const SSL *s); +int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); + +/* Gets the SCTs received from a connection */ +const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); + +/* + * Loads the CT log list from the default location. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); + +/* + * Loads the CT log list from the specified file path. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); + +/* + * Sets the CT log list used by all SSL connections created from this SSL_CTX. + * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. + */ +void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); + +/* + * Gets the CT log list used by all SSL connections created from this SSL_CTX. + * This will be NULL unless one of the following functions has been called: + * - SSL_CTX_set_default_ctlog_list_file + * - SSL_CTX_set_ctlog_list_file + * - SSL_CTX_set_ctlog_store + */ +const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); + +# endif /* OPENSSL_NO_CT */ + +/* What the "other" parameter contains in security callback */ +/* Mask for type */ +# define SSL_SECOP_OTHER_TYPE 0xffff0000 +# define SSL_SECOP_OTHER_NONE 0 +# define SSL_SECOP_OTHER_CIPHER (1 << 16) +# define SSL_SECOP_OTHER_CURVE (2 << 16) +# define SSL_SECOP_OTHER_DH (3 << 16) +# define SSL_SECOP_OTHER_PKEY (4 << 16) +# define SSL_SECOP_OTHER_SIGALG (5 << 16) +# define SSL_SECOP_OTHER_CERT (6 << 16) + +/* Indicated operation refers to peer key or certificate */ +# define SSL_SECOP_PEER 0x1000 + +/* Values for "op" parameter in security callback */ + +/* Called to filter ciphers */ +/* Ciphers client supports */ +# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) +/* Cipher shared by client/server */ +# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) +/* Sanity check of cipher server selects */ +# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) +/* Curves supported by client */ +# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) +/* Curves shared by client/server */ +# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) +/* Sanity check of curve server selects */ +# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) +/* Temporary DH key */ +# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) +/* SSL/TLS version */ +# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) +/* Session tickets */ +# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) +/* Supported signature algorithms sent to peer */ +# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) +/* Shared signature algorithm */ +# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) +/* Sanity check signature algorithm allowed */ +# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) +/* Used to get mask of supported public key signature algorithms */ +# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) +/* Use to see if compression is allowed */ +# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) +/* EE key in certificate */ +# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) +/* CA key in certificate */ +# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) +/* CA digest algorithm in certificate */ +# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) +/* Peer EE key in certificate */ +# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) +/* Peer CA key in certificate */ +# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) +/* Peer CA digest algorithm in certificate */ +# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) + +void SSL_set_security_level(SSL *s, int level); +__owur int SSL_get_security_level(const SSL *s); +void SSL_set_security_callback(SSL *s, + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); +int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, + const SSL_CTX *ctx, int op, + int bits, int nid, void *other, + void *ex); +void SSL_set0_security_ex_data(SSL *s, void *ex); +__owur void *SSL_get0_security_ex_data(const SSL *s); + +void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); +__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); +void SSL_CTX_set_security_callback(SSL_CTX *ctx, + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); +int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, + const SSL_CTX *ctx, + int op, int bits, + int nid, + void *other, + void *ex); +void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); +__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); + +/* OPENSSL_INIT flag 0x010000 reserved for internal use */ +# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L +# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L + +# define OPENSSL_INIT_SSL_DEFAULT \ + (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) + +int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); + +# ifndef OPENSSL_NO_UNIT_TEST +__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); +# endif + +__owur int SSL_free_buffers(SSL *ssl); +__owur int SSL_alloc_buffers(SSL *ssl); + +/* Status codes passed to the decrypt session ticket callback. Some of these + * are for internal use only and are never passed to the callback. */ +typedef int SSL_TICKET_STATUS; + +/* Support for ticket appdata */ +/* fatal error, malloc failure */ +# define SSL_TICKET_FATAL_ERR_MALLOC 0 +/* fatal error, either from parsing or decrypting the ticket */ +# define SSL_TICKET_FATAL_ERR_OTHER 1 +/* No ticket present */ +# define SSL_TICKET_NONE 2 +/* Empty ticket present */ +# define SSL_TICKET_EMPTY 3 +/* the ticket couldn't be decrypted */ +# define SSL_TICKET_NO_DECRYPT 4 +/* a ticket was successfully decrypted */ +# define SSL_TICKET_SUCCESS 5 +/* same as above but the ticket needs to be renewed */ +# define SSL_TICKET_SUCCESS_RENEW 6 + +/* Return codes for the decrypt session ticket callback */ +typedef int SSL_TICKET_RETURN; + +/* An error occurred */ +#define SSL_TICKET_RETURN_ABORT 0 +/* Do not use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE 1 +/* Do not use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE_RENEW 2 +/* Use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE 3 +/* Use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE_RENEW 4 + +typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); +typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, + const unsigned char *keyname, + size_t keyname_length, + SSL_TICKET_STATUS status, + void *arg); +int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, + SSL_CTX_generate_session_ticket_fn gen_cb, + SSL_CTX_decrypt_session_ticket_fn dec_cb, + void *arg); +int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); +int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); + +extern const char SSL_version_str[]; + +typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); + +void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); + + +typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); +void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, + SSL_allow_early_data_cb_fn cb, + void *arg); +void SSL_set_allow_early_data_cb(SSL *s, + SSL_allow_early_data_cb_fn cb, + void *arg); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/ssl2.h b/thrid-party/openssl/openssl/ssl2.h new file mode 100644 index 000000000..5321bd272 --- /dev/null +++ b/thrid-party/openssl/openssl/ssl2.h @@ -0,0 +1,24 @@ +/* + * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSL2_H +# define HEADER_SSL2_H + +#ifdef __cplusplus +extern "C" { +#endif + +# define SSL2_VERSION 0x0002 + +# define SSL2_MT_CLIENT_HELLO 1 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/ssl23.h b/thrid-party/openssl/openssl/ssl23.h new file mode 100644 index 000000000..9de4685af --- /dev/null +++ b/thrid-party/openssl/openssl/ssl23.h @@ -0,0 +1,84 @@ +/* ssl/ssl23.h */ +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_SSL23_H +# define HEADER_SSL23_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * client + */ +/* write to server */ +# define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) +# define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) +/* read from server */ +# define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) +# define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) + +/* server */ +/* read from client */ +# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) +# define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/ssl3.h b/thrid-party/openssl/openssl/ssl3.h new file mode 100644 index 000000000..8d01fcc48 --- /dev/null +++ b/thrid-party/openssl/openssl/ssl3.h @@ -0,0 +1,339 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSL3_H +# define HEADER_SSL3_H + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Signalling cipher suite value from RFC 5746 + * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) + */ +# define SSL3_CK_SCSV 0x030000FF + +/* + * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 + * (TLS_FALLBACK_SCSV) + */ +# define SSL3_CK_FALLBACK_SCSV 0x03005600 + +# define SSL3_CK_RSA_NULL_MD5 0x03000001 +# define SSL3_CK_RSA_NULL_SHA 0x03000002 +# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 +# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 +# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 +# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 +# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 +# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 +# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 +# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A + +# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B +# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C +# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D +# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E +# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F +# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 + +# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 +# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA +# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 +# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA +# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 +# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA +# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 +# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA +# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 +# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA +# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 +# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA + +# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 +# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 +# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 +# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A +# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B + +/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ +# define SSL3_RFC_RSA_NULL_MD5 "TLS_RSA_WITH_NULL_MD5" +# define SSL3_RFC_RSA_NULL_SHA "TLS_RSA_WITH_NULL_SHA" +# define SSL3_RFC_RSA_DES_192_CBC3_SHA "TLS_RSA_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_ADH_DES_192_CBC_SHA "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA" +# define SSL3_RFC_RSA_IDEA_128_SHA "TLS_RSA_WITH_IDEA_CBC_SHA" +# define SSL3_RFC_RSA_RC4_128_MD5 "TLS_RSA_WITH_RC4_128_MD5" +# define SSL3_RFC_RSA_RC4_128_SHA "TLS_RSA_WITH_RC4_128_SHA" +# define SSL3_RFC_ADH_RC4_128_MD5 "TLS_DH_anon_WITH_RC4_128_MD5" + +# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" +# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" +# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" +# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" +# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" +# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" +# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" +# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" + +# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" +# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" +# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" + +/* + * This next block of six "EDH" labels is for backward compatibility with + * older versions of OpenSSL. New code should use the six "DHE" labels above + * instead: + */ +# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" +# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" +# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" +# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" + +# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" +# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" +# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" +# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" + +# define SSL3_SSL_SESSION_ID_LENGTH 32 +# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 + +# define SSL3_MASTER_SECRET_SIZE 48 +# define SSL3_RANDOM_SIZE 32 +# define SSL3_SESSION_ID_SIZE 32 +# define SSL3_RT_HEADER_LENGTH 5 + +# define SSL3_HM_HEADER_LENGTH 4 + +# ifndef SSL3_ALIGN_PAYLOAD + /* + * Some will argue that this increases memory footprint, but it's not + * actually true. Point is that malloc has to return at least 64-bit aligned + * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. + * Suggested pre-gaping simply moves these wasted bytes from the end of + * allocated region to its front, but makes data payload aligned, which + * improves performance:-) + */ +# define SSL3_ALIGN_PAYLOAD 8 +# else +# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 +# error "insane SSL3_ALIGN_PAYLOAD" +# undef SSL3_ALIGN_PAYLOAD +# endif +# endif + +/* + * This is the maximum MAC (digest) size used by the SSL library. Currently + * maximum of 20 is used by SHA1, but we reserve for future extension for + * 512-bit hashes. + */ + +# define SSL3_RT_MAX_MD_SIZE 64 + +/* + * Maximum block size used in all ciphersuites. Currently 16 for AES. + */ + +# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 + +# define SSL3_RT_MAX_EXTRA (16384) + +/* Maximum plaintext length: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_PLAIN_LENGTH 16384 +/* Maximum compression overhead: defined by SSL/TLS standards */ +# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 + +/* + * The standards give a maximum encryption overhead of 1024 bytes. In + * practice the value is lower than this. The overhead is the maximum number + * of padding bytes (256) plus the mac size. + */ +# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) +# define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD 256 + +/* + * OpenSSL currently only uses a padding length of at most one block so the + * send overhead is smaller. + */ + +# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ + (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) + +/* If compression isn't used don't include the compression overhead */ + +# ifdef OPENSSL_NO_COMP +# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH +# else +# define SSL3_RT_MAX_COMPRESSED_LENGTH \ + (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) +# endif +# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ + (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) +# define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \ + (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD) +# define SSL3_RT_MAX_PACKET_SIZE \ + (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) + +# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" +# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" + +# define SSL3_VERSION 0x0300 +# define SSL3_VERSION_MAJOR 0x03 +# define SSL3_VERSION_MINOR 0x00 + +# define SSL3_RT_CHANGE_CIPHER_SPEC 20 +# define SSL3_RT_ALERT 21 +# define SSL3_RT_HANDSHAKE 22 +# define SSL3_RT_APPLICATION_DATA 23 +# define DTLS1_RT_HEARTBEAT 24 + +/* Pseudo content types to indicate additional parameters */ +# define TLS1_RT_CRYPTO 0x1000 +# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) +# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) +# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) +# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) + +# define TLS1_RT_CRYPTO_READ 0x0000 +# define TLS1_RT_CRYPTO_WRITE 0x0100 +# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) +# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) +# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) +# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) + +/* Pseudo content types for SSL/TLS header info */ +# define SSL3_RT_HEADER 0x100 +# define SSL3_RT_INNER_CONTENT_TYPE 0x101 + +# define SSL3_AL_WARNING 1 +# define SSL3_AL_FATAL 2 + +# define SSL3_AD_CLOSE_NOTIFY 0 +# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ +# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ +# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ +# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ +# define SSL3_AD_NO_CERTIFICATE 41 +# define SSL3_AD_BAD_CERTIFICATE 42 +# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 +# define SSL3_AD_CERTIFICATE_REVOKED 44 +# define SSL3_AD_CERTIFICATE_EXPIRED 45 +# define SSL3_AD_CERTIFICATE_UNKNOWN 46 +# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ + +# define TLS1_HB_REQUEST 1 +# define TLS1_HB_RESPONSE 2 + + +# define SSL3_CT_RSA_SIGN 1 +# define SSL3_CT_DSS_SIGN 2 +# define SSL3_CT_RSA_FIXED_DH 3 +# define SSL3_CT_DSS_FIXED_DH 4 +# define SSL3_CT_RSA_EPHEMERAL_DH 5 +# define SSL3_CT_DSS_EPHEMERAL_DH 6 +# define SSL3_CT_FORTEZZA_DMS 20 +/* + * SSL3_CT_NUMBER is used to size arrays and it must be large enough to + * contain all of the cert types defined for *either* SSLv3 and TLSv1. + */ +# define SSL3_CT_NUMBER 10 + +# if defined(TLS_CT_NUMBER) +# if TLS_CT_NUMBER != SSL3_CT_NUMBER +# error "SSL/TLS CT_NUMBER values do not match" +# endif +# endif + +/* No longer used as of OpenSSL 1.1.1 */ +# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 + +/* Removed from OpenSSL 1.1.0 */ +# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 + +# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 + +/* Set if we encrypt then mac instead of usual mac then encrypt */ +# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 +# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ + +/* Set if extended master secret extension received from peer */ +# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 + +# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 + +# define TLS1_FLAGS_STATELESS 0x0800 + +# define SSL3_MT_HELLO_REQUEST 0 +# define SSL3_MT_CLIENT_HELLO 1 +# define SSL3_MT_SERVER_HELLO 2 +# define SSL3_MT_NEWSESSION_TICKET 4 +# define SSL3_MT_END_OF_EARLY_DATA 5 +# define SSL3_MT_ENCRYPTED_EXTENSIONS 8 +# define SSL3_MT_CERTIFICATE 11 +# define SSL3_MT_SERVER_KEY_EXCHANGE 12 +# define SSL3_MT_CERTIFICATE_REQUEST 13 +# define SSL3_MT_SERVER_DONE 14 +# define SSL3_MT_CERTIFICATE_VERIFY 15 +# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 +# define SSL3_MT_FINISHED 20 +# define SSL3_MT_CERTIFICATE_URL 21 +# define SSL3_MT_CERTIFICATE_STATUS 22 +# define SSL3_MT_SUPPLEMENTAL_DATA 23 +# define SSL3_MT_KEY_UPDATE 24 +# ifndef OPENSSL_NO_NEXTPROTONEG +# define SSL3_MT_NEXT_PROTO 67 +# endif +# define SSL3_MT_MESSAGE_HASH 254 +# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 + +/* Dummy message type for handling CCS like a normal handshake message */ +# define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 + +# define SSL3_MT_CCS 1 + +/* These are used when changing over to a new cipher */ +# define SSL3_CC_READ 0x001 +# define SSL3_CC_WRITE 0x002 +# define SSL3_CC_CLIENT 0x010 +# define SSL3_CC_SERVER 0x020 +# define SSL3_CC_EARLY 0x040 +# define SSL3_CC_HANDSHAKE 0x080 +# define SSL3_CC_APPLICATION 0x100 +# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) +# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) +# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/sslerr.h b/thrid-party/openssl/openssl/sslerr.h new file mode 100644 index 000000000..3d6850dea --- /dev/null +++ b/thrid-party/openssl/openssl/sslerr.h @@ -0,0 +1,772 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SSLERR_H +# define HEADER_SSLERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_SSL_strings(void); + +/* + * SSL function codes. + */ +# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 438 +# define SSL_F_ADD_KEY_SHARE 512 +# define SSL_F_BYTES_TO_CIPHER_LIST 519 +# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 +# define SSL_F_CIPHERSUITE_CB 622 +# define SSL_F_CONSTRUCT_CA_NAMES 552 +# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 553 +# define SSL_F_CONSTRUCT_STATEFUL_TICKET 636 +# define SSL_F_CONSTRUCT_STATELESS_TICKET 637 +# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 539 +# define SSL_F_CREATE_TICKET_PREQUEL 638 +# define SSL_F_CT_MOVE_SCTS 345 +# define SSL_F_CT_STRICT 349 +# define SSL_F_CUSTOM_EXT_ADD 554 +# define SSL_F_CUSTOM_EXT_PARSE 555 +# define SSL_F_D2I_SSL_SESSION 103 +# define SSL_F_DANE_CTX_ENABLE 347 +# define SSL_F_DANE_MTYPE_SET 393 +# define SSL_F_DANE_TLSA_ADD 394 +# define SSL_F_DERIVE_SECRET_KEY_AND_IV 514 +# define SSL_F_DO_DTLS1_WRITE 245 +# define SSL_F_DO_SSL3_WRITE 104 +# define SSL_F_DTLS1_BUFFER_RECORD 247 +# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 +# define SSL_F_DTLS1_HEARTBEAT 305 +# define SSL_F_DTLS1_HM_FRAGMENT_NEW 623 +# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 +# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 +# define SSL_F_DTLS1_PROCESS_RECORD 257 +# define SSL_F_DTLS1_READ_BYTES 258 +# define SSL_F_DTLS1_READ_FAILED 339 +# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 +# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 +# define SSL_F_DTLS1_WRITE_BYTES 545 +# define SSL_F_DTLSV1_LISTEN 350 +# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 +# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 +# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 +# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 +# define SSL_F_DTLS_RECORD_LAYER_NEW 635 +# define SSL_F_DTLS_WAIT_FOR_DRY 592 +# define SSL_F_EARLY_DATA_COUNT_OK 532 +# define SSL_F_FINAL_EARLY_DATA 556 +# define SSL_F_FINAL_EC_PT_FORMATS 485 +# define SSL_F_FINAL_EMS 486 +# define SSL_F_FINAL_KEY_SHARE 503 +# define SSL_F_FINAL_MAXFRAGMENTLEN 557 +# define SSL_F_FINAL_RENEGOTIATE 483 +# define SSL_F_FINAL_SERVER_NAME 558 +# define SSL_F_FINAL_SIG_ALGS 497 +# define SSL_F_GET_CERT_VERIFY_TBS_DATA 588 +# define SSL_F_NSS_KEYLOG_INT 500 +# define SSL_F_OPENSSL_INIT_SSL 342 +# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 436 +# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 598 +# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 430 +# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 593 +# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 594 +# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 +# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 599 +# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 437 +# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 600 +# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 431 +# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 601 +# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 602 +# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 603 +# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 +# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 604 +# define SSL_F_PARSE_CA_NAMES 541 +# define SSL_F_PITEM_NEW 624 +# define SSL_F_PQUEUE_NEW 625 +# define SSL_F_PROCESS_KEY_SHARE_EXT 439 +# define SSL_F_READ_STATE_MACHINE 352 +# define SSL_F_SET_CLIENT_CIPHERSUITE 540 +# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 595 +# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 589 +# define SSL_F_SRP_VERIFY_SERVER_PARAM 596 +# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 +# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 +# define SSL_F_SSL3_CTRL 213 +# define SSL_F_SSL3_CTX_CTRL 133 +# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 +# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 +# define SSL_F_SSL3_ENC 608 +# define SSL_F_SSL3_FINAL_FINISH_MAC 285 +# define SSL_F_SSL3_FINISH_MAC 587 +# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 +# define SSL_F_SSL3_GET_RECORD 143 +# define SSL_F_SSL3_INIT_FINISHED_MAC 397 +# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 +# define SSL_F_SSL3_READ_BYTES 148 +# define SSL_F_SSL3_READ_N 149 +# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 +# define SSL_F_SSL3_SETUP_READ_BUFFER 156 +# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 +# define SSL_F_SSL3_WRITE_BYTES 158 +# define SSL_F_SSL3_WRITE_PENDING 159 +# define SSL_F_SSL_ADD_CERT_CHAIN 316 +# define SSL_F_SSL_ADD_CERT_TO_BUF 319 +# define SSL_F_SSL_ADD_CERT_TO_WPACKET 493 +# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 +# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 +# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 +# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 +# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 +# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 +# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 +# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 +# define SSL_F_SSL_BAD_METHOD 160 +# define SSL_F_SSL_BUILD_CERT_CHAIN 332 +# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 +# define SSL_F_SSL_CACHE_CIPHERLIST 520 +# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 +# define SSL_F_SSL_CERT_DUP 221 +# define SSL_F_SSL_CERT_NEW 162 +# define SSL_F_SSL_CERT_SET0_CHAIN 340 +# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 +# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 +# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 606 +# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 +# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 607 +# define SSL_F_SSL_CIPHER_DESCRIPTION 626 +# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 425 +# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 +# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 +# define SSL_F_SSL_CLEAR 164 +# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 627 +# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 +# define SSL_F_SSL_CONF_CMD 334 +# define SSL_F_SSL_CREATE_CIPHER_LIST 166 +# define SSL_F_SSL_CTRL 232 +# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 +# define SSL_F_SSL_CTX_ENABLE_CT 398 +# define SSL_F_SSL_CTX_MAKE_PROFILES 309 +# define SSL_F_SSL_CTX_NEW 169 +# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 +# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 +# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 +# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 +# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 +# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 +# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 551 +# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 +# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 +# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 +# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 +# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 +# define SSL_F_SSL_CTX_USE_SERVERINFO 336 +# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 543 +# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 +# define SSL_F_SSL_DANE_DUP 403 +# define SSL_F_SSL_DANE_ENABLE 395 +# define SSL_F_SSL_DERIVE 590 +# define SSL_F_SSL_DO_CONFIG 391 +# define SSL_F_SSL_DO_HANDSHAKE 180 +# define SSL_F_SSL_DUP_CA_LIST 408 +# define SSL_F_SSL_ENABLE_CT 402 +# define SSL_F_SSL_GENERATE_PKEY_GROUP 559 +# define SSL_F_SSL_GENERATE_SESSION_ID 547 +# define SSL_F_SSL_GET_NEW_SESSION 181 +# define SSL_F_SSL_GET_PREV_SESSION 217 +# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 +# define SSL_F_SSL_GET_SIGN_PKEY 183 +# define SSL_F_SSL_HANDSHAKE_HASH 560 +# define SSL_F_SSL_INIT_WBIO_BUFFER 184 +# define SSL_F_SSL_KEY_UPDATE 515 +# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 +# define SSL_F_SSL_LOG_MASTER_SECRET 498 +# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 499 +# define SSL_F_SSL_MODULE_INIT 392 +# define SSL_F_SSL_NEW 186 +# define SSL_F_SSL_NEXT_PROTO_VALIDATE 565 +# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 +# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 +# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 +# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 +# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 +# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 +# define SSL_F_SSL_PEEK 270 +# define SSL_F_SSL_PEEK_EX 432 +# define SSL_F_SSL_PEEK_INTERNAL 522 +# define SSL_F_SSL_READ 223 +# define SSL_F_SSL_READ_EARLY_DATA 529 +# define SSL_F_SSL_READ_EX 434 +# define SSL_F_SSL_READ_INTERNAL 523 +# define SSL_F_SSL_RENEGOTIATE 516 +# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 +# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 +# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 +# define SSL_F_SSL_SESSION_DUP 348 +# define SSL_F_SSL_SESSION_NEW 189 +# define SSL_F_SSL_SESSION_PRINT_FP 190 +# define SSL_F_SSL_SESSION_SET1_ID 423 +# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 +# define SSL_F_SSL_SET_ALPN_PROTOS 344 +# define SSL_F_SSL_SET_CERT 191 +# define SSL_F_SSL_SET_CERT_AND_KEY 621 +# define SSL_F_SSL_SET_CIPHER_LIST 271 +# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 +# define SSL_F_SSL_SET_FD 192 +# define SSL_F_SSL_SET_PKEY 193 +# define SSL_F_SSL_SET_RFD 194 +# define SSL_F_SSL_SET_SESSION 195 +# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 +# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 +# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 550 +# define SSL_F_SSL_SET_WFD 196 +# define SSL_F_SSL_SHUTDOWN 224 +# define SSL_F_SSL_SRP_CTX_INIT 313 +# define SSL_F_SSL_START_ASYNC_JOB 389 +# define SSL_F_SSL_UNDEFINED_FUNCTION 197 +# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 +# define SSL_F_SSL_USE_CERTIFICATE 198 +# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 +# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 +# define SSL_F_SSL_USE_PRIVATEKEY 201 +# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 +# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 +# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 +# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 +# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 +# define SSL_F_SSL_VALIDATE_CT 400 +# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 +# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 616 +# define SSL_F_SSL_WRITE 208 +# define SSL_F_SSL_WRITE_EARLY_DATA 526 +# define SSL_F_SSL_WRITE_EARLY_FINISH 527 +# define SSL_F_SSL_WRITE_EX 433 +# define SSL_F_SSL_WRITE_INTERNAL 524 +# define SSL_F_STATE_MACHINE 353 +# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 +# define SSL_F_TLS12_COPY_SIGALGS 533 +# define SSL_F_TLS13_CHANGE_CIPHER_STATE 440 +# define SSL_F_TLS13_ENC 609 +# define SSL_F_TLS13_FINAL_FINISH_MAC 605 +# define SSL_F_TLS13_GENERATE_SECRET 591 +# define SSL_F_TLS13_HKDF_EXPAND 561 +# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 617 +# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 618 +# define SSL_F_TLS13_SETUP_KEY_BLOCK 441 +# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 +# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 +# define SSL_F_TLS1_ENC 401 +# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 +# define SSL_F_TLS1_GET_CURVELIST 338 +# define SSL_F_TLS1_PRF 284 +# define SSL_F_TLS1_SAVE_U16 628 +# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 +# define SSL_F_TLS1_SET_GROUPS 629 +# define SSL_F_TLS1_SET_RAW_SIGALGS 630 +# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 +# define SSL_F_TLS1_SET_SHARED_SIGALGS 631 +# define SSL_F_TLS1_SET_SIGALGS 632 +# define SSL_F_TLS_CHOOSE_SIGALG 513 +# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 +# define SSL_F_TLS_COLLECT_EXTENSIONS 435 +# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 542 +# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 +# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 429 +# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 494 +# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 496 +# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 427 +# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 +# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 +# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 +# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 +# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 +# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 +# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 484 +# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 487 +# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 488 +# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 489 +# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 466 +# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 355 +# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 535 +# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 530 +# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 467 +# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 468 +# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 469 +# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 356 +# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 357 +# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 470 +# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 549 +# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 471 +# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 472 +# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 619 +# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 501 +# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 509 +# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 473 +# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 474 +# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 475 +# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 476 +# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 477 +# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 478 +# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 479 +# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 480 +# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 481 +# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 482 +# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 358 +# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 443 +# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 536 +# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 447 +# define SSL_F_TLS_CONSTRUCT_FINISHED 359 +# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 +# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 510 +# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 517 +# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 +# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 426 +# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 490 +# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 491 +# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 492 +# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 451 +# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 374 +# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 613 +# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 452 +# define SSL_F_TLS_CONSTRUCT_STOC_DONE 375 +# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 531 +# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 525 +# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 453 +# define SSL_F_TLS_CONSTRUCT_STOC_EMS 454 +# define SSL_F_TLS_CONSTRUCT_STOC_ETM 455 +# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 376 +# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 377 +# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 456 +# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 548 +# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 457 +# define SSL_F_TLS_CONSTRUCT_STOC_PSK 504 +# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 458 +# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 459 +# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 460 +# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 461 +# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 544 +# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 611 +# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 462 +# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 521 +# define SSL_F_TLS_FINISH_HANDSHAKE 597 +# define SSL_F_TLS_GET_MESSAGE_BODY 351 +# define SSL_F_TLS_GET_MESSAGE_HEADER 387 +# define SSL_F_TLS_HANDLE_ALPN 562 +# define SSL_F_TLS_HANDLE_STATUS_REQUEST 563 +# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 566 +# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 449 +# define SSL_F_TLS_PARSE_CTOS_ALPN 567 +# define SSL_F_TLS_PARSE_CTOS_COOKIE 614 +# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 568 +# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 569 +# define SSL_F_TLS_PARSE_CTOS_EMS 570 +# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 463 +# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 571 +# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 620 +# define SSL_F_TLS_PARSE_CTOS_PSK 505 +# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 572 +# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 464 +# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 573 +# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 574 +# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 575 +# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 615 +# define SSL_F_TLS_PARSE_CTOS_SRP 576 +# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 577 +# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 578 +# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 465 +# define SSL_F_TLS_PARSE_STOC_ALPN 579 +# define SSL_F_TLS_PARSE_STOC_COOKIE 534 +# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 538 +# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 528 +# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 580 +# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 445 +# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 581 +# define SSL_F_TLS_PARSE_STOC_NPN 582 +# define SSL_F_TLS_PARSE_STOC_PSK 502 +# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 448 +# define SSL_F_TLS_PARSE_STOC_SCT 564 +# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 583 +# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 584 +# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 585 +# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 612 +# define SSL_F_TLS_PARSE_STOC_USE_SRTP 446 +# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 +# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 +# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 +# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 610 +# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 +# define SSL_F_TLS_PROCESS_CERT_STATUS 362 +# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 495 +# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 +# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 +# define SSL_F_TLS_PROCESS_CKE_DHE 411 +# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 +# define SSL_F_TLS_PROCESS_CKE_GOST 413 +# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 +# define SSL_F_TLS_PROCESS_CKE_RSA 415 +# define SSL_F_TLS_PROCESS_CKE_SRP 416 +# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 +# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 +# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 +# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 444 +# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 537 +# define SSL_F_TLS_PROCESS_FINISHED 364 +# define SSL_F_TLS_PROCESS_HELLO_REQ 507 +# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 511 +# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 442 +# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 +# define SSL_F_TLS_PROCESS_KEY_UPDATE 518 +# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 +# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 +# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 +# define SSL_F_TLS_PROCESS_SERVER_DONE 368 +# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 +# define SSL_F_TLS_PROCESS_SKE_DHE 419 +# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 +# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 +# define SSL_F_TLS_PROCESS_SKE_SRP 422 +# define SSL_F_TLS_PSK_DO_BINDER 506 +# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 450 +# define SSL_F_TLS_SETUP_HANDSHAKE 508 +# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 +# define SSL_F_WPACKET_INTERN_INIT_LEN 633 +# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 634 +# define SSL_F_WRITE_STATE_MACHINE 586 + +/* + * SSL reason codes. + */ +# define SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY 291 +# define SSL_R_APP_DATA_IN_HANDSHAKE 100 +# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 +# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 +# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 +# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 +# define SSL_R_BAD_CIPHER 186 +# define SSL_R_BAD_DATA 390 +# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 +# define SSL_R_BAD_DECOMPRESSION 107 +# define SSL_R_BAD_DH_VALUE 102 +# define SSL_R_BAD_DIGEST_LENGTH 111 +# define SSL_R_BAD_EARLY_DATA 233 +# define SSL_R_BAD_ECC_CERT 304 +# define SSL_R_BAD_ECPOINT 306 +# define SSL_R_BAD_EXTENSION 110 +# define SSL_R_BAD_HANDSHAKE_LENGTH 332 +# define SSL_R_BAD_HANDSHAKE_STATE 236 +# define SSL_R_BAD_HELLO_REQUEST 105 +# define SSL_R_BAD_HRR_VERSION 263 +# define SSL_R_BAD_KEY_SHARE 108 +# define SSL_R_BAD_KEY_UPDATE 122 +# define SSL_R_BAD_LEGACY_VERSION 292 +# define SSL_R_BAD_LENGTH 271 +# define SSL_R_BAD_PACKET 240 +# define SSL_R_BAD_PACKET_LENGTH 115 +# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 +# define SSL_R_BAD_PSK 219 +# define SSL_R_BAD_PSK_IDENTITY 114 +# define SSL_R_BAD_RECORD_TYPE 443 +# define SSL_R_BAD_RSA_ENCRYPT 119 +# define SSL_R_BAD_SIGNATURE 123 +# define SSL_R_BAD_SRP_A_LENGTH 347 +# define SSL_R_BAD_SRP_PARAMETERS 371 +# define SSL_R_BAD_SRTP_MKI_VALUE 352 +# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 +# define SSL_R_BAD_SSL_FILETYPE 124 +# define SSL_R_BAD_VALUE 384 +# define SSL_R_BAD_WRITE_RETRY 127 +# define SSL_R_BINDER_DOES_NOT_VERIFY 253 +# define SSL_R_BIO_NOT_SET 128 +# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 +# define SSL_R_BN_LIB 130 +# define SSL_R_CALLBACK_FAILED 234 +# define SSL_R_CANNOT_CHANGE_CIPHER 109 +# define SSL_R_CA_DN_LENGTH_MISMATCH 131 +# define SSL_R_CA_KEY_TOO_SMALL 397 +# define SSL_R_CA_MD_TOO_WEAK 398 +# define SSL_R_CCS_RECEIVED_EARLY 133 +# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 +# define SSL_R_CERT_CB_ERROR 377 +# define SSL_R_CERT_LENGTH_MISMATCH 135 +# define SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED 218 +# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 +# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 +# define SSL_R_CLIENTHELLO_TLSEXT 226 +# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 +# define SSL_R_COMPRESSION_DISABLED 343 +# define SSL_R_COMPRESSION_FAILURE 141 +# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 +# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 +# define SSL_R_CONNECTION_TYPE_NOT_SET 144 +# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 +# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 +# define SSL_R_COOKIE_MISMATCH 308 +# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 +# define SSL_R_DANE_ALREADY_ENABLED 172 +# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 +# define SSL_R_DANE_NOT_ENABLED 175 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 +# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 +# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 +# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 +# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 +# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 +# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 +# define SSL_R_DANE_TLSA_NULL_DATA 203 +# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 +# define SSL_R_DATA_LENGTH_TOO_LONG 146 +# define SSL_R_DECRYPTION_FAILED 147 +# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 +# define SSL_R_DH_KEY_TOO_SMALL 394 +# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 +# define SSL_R_DIGEST_CHECK_FAILED 149 +# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 +# define SSL_R_DUPLICATE_COMPRESSION_ID 309 +# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 +# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 +# define SSL_R_EE_KEY_TOO_SMALL 399 +# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 +# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 +# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 +# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 +# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 +# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 +# define SSL_R_EXTENSION_NOT_RECEIVED 279 +# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 +# define SSL_R_EXT_LENGTH_MISMATCH 163 +# define SSL_R_FAILED_TO_INIT_ASYNC 405 +# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 +# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 +# define SSL_R_HTTPS_PROXY_REQUEST 155 +# define SSL_R_HTTP_REQUEST 156 +# define SSL_R_ILLEGAL_POINT_COMPRESSION 162 +# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 +# define SSL_R_INAPPROPRIATE_FALLBACK 373 +# define SSL_R_INCONSISTENT_COMPRESSION 340 +# define SSL_R_INCONSISTENT_EARLY_DATA_ALPN 222 +# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231 +# define SSL_R_INCONSISTENT_EXTMS 104 +# define SSL_R_INSUFFICIENT_SECURITY 241 +# define SSL_R_INVALID_ALERT 205 +# define SSL_R_INVALID_CCS_MESSAGE 260 +# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238 +# define SSL_R_INVALID_COMMAND 280 +# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_CONFIG 283 +# define SSL_R_INVALID_CONFIGURATION_NAME 113 +# define SSL_R_INVALID_CONTEXT 282 +# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 +# define SSL_R_INVALID_KEY_UPDATE_TYPE 120 +# define SSL_R_INVALID_MAX_EARLY_DATA 174 +# define SSL_R_INVALID_NULL_CMD_NAME 385 +# define SSL_R_INVALID_SEQUENCE_NUMBER 402 +# define SSL_R_INVALID_SERVERINFO_DATA 388 +# define SSL_R_INVALID_SESSION_ID 999 +# define SSL_R_INVALID_SRP_USERNAME 357 +# define SSL_R_INVALID_STATUS_RESPONSE 328 +# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 +# define SSL_R_LENGTH_MISMATCH 159 +# define SSL_R_LENGTH_TOO_LONG 404 +# define SSL_R_LENGTH_TOO_SHORT 160 +# define SSL_R_LIBRARY_BUG 274 +# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 +# define SSL_R_MISSING_DSA_SIGNING_CERT 165 +# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 +# define SSL_R_MISSING_FATAL 256 +# define SSL_R_MISSING_PARAMETERS 290 +# define SSL_R_MISSING_RSA_CERTIFICATE 168 +# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 +# define SSL_R_MISSING_RSA_SIGNING_CERT 170 +# define SSL_R_MISSING_SIGALGS_EXTENSION 112 +# define SSL_R_MISSING_SIGNING_CERT 221 +# define SSL_R_MISSING_SRP_PARAM 358 +# define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 +# define SSL_R_MISSING_TMP_DH_KEY 171 +# define SSL_R_MISSING_TMP_ECDH_KEY 311 +# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 +# define SSL_R_NOT_ON_RECORD_BOUNDARY 182 +# define SSL_R_NOT_REPLACING_CERTIFICATE 289 +# define SSL_R_NOT_SERVER 284 +# define SSL_R_NO_APPLICATION_PROTOCOL 235 +# define SSL_R_NO_CERTIFICATES_RETURNED 176 +# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 +# define SSL_R_NO_CERTIFICATE_SET 179 +# define SSL_R_NO_CHANGE_FOLLOWING_HRR 214 +# define SSL_R_NO_CIPHERS_AVAILABLE 181 +# define SSL_R_NO_CIPHERS_SPECIFIED 183 +# define SSL_R_NO_CIPHER_MATCH 185 +# define SSL_R_NO_CLIENT_CERT_METHOD 331 +# define SSL_R_NO_COMPRESSION_SPECIFIED 187 +# define SSL_R_NO_COOKIE_CALLBACK_SET 287 +# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 +# define SSL_R_NO_METHOD_SPECIFIED 188 +# define SSL_R_NO_PEM_EXTENSIONS 389 +# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 +# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 +# define SSL_R_NO_RENEGOTIATION 339 +# define SSL_R_NO_REQUIRED_DIGEST 324 +# define SSL_R_NO_SHARED_CIPHER 193 +# define SSL_R_NO_SHARED_GROUPS 410 +# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 +# define SSL_R_NO_SRTP_PROFILES 359 +# define SSL_R_NO_SUITABLE_KEY_SHARE 101 +# define SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM 118 +# define SSL_R_NO_VALID_SCTS 216 +# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 +# define SSL_R_NULL_SSL_CTX 195 +# define SSL_R_NULL_SSL_METHOD_PASSED 196 +# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 +# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 +# define SSL_R_OVERFLOW_ERROR 237 +# define SSL_R_PACKET_LENGTH_TOO_LONG 198 +# define SSL_R_PARSE_TLSEXT 227 +# define SSL_R_PATH_TOO_LONG 270 +# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 +# define SSL_R_PEM_NAME_BAD_PREFIX 391 +# define SSL_R_PEM_NAME_TOO_SHORT 392 +# define SSL_R_PIPELINE_FAILURE 406 +# define SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR 278 +# define SSL_R_PRIVATE_KEY_MISMATCH 288 +# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 +# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 +# define SSL_R_PSK_NO_CLIENT_CB 224 +# define SSL_R_PSK_NO_SERVER_CB 225 +# define SSL_R_READ_BIO_NOT_SET 211 +# define SSL_R_READ_TIMEOUT_EXPIRED 312 +# define SSL_R_RECORD_LENGTH_MISMATCH 213 +# define SSL_R_RECORD_TOO_SMALL 298 +# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 +# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 +# define SSL_R_RENEGOTIATION_MISMATCH 337 +# define SSL_R_REQUEST_PENDING 285 +# define SSL_R_REQUEST_SENT 286 +# define SSL_R_REQUIRED_CIPHER_MISSING 215 +# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 +# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 +# define SSL_R_SCT_VERIFICATION_FAILED 208 +# define SSL_R_SERVERHELLO_TLSEXT 275 +# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 +# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 +# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 +# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 +# define SSL_R_SRP_A_CALC 361 +# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 +# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 +# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 +# define SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH 232 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 +# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 +# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 +# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 +# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 +# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 +# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 +# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 +# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 +# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 +# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 +# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 +# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 +# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 +# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 +# define SSL_R_SSL_HANDSHAKE_FAILURE 229 +# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 +# define SSL_R_SSL_NEGATIVE_LENGTH 372 +# define SSL_R_SSL_SECTION_EMPTY 126 +# define SSL_R_SSL_SECTION_NOT_FOUND 136 +# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 +# define SSL_R_SSL_SESSION_ID_CONFLICT 302 +# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 +# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 +# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 +# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 +# define SSL_R_STILL_IN_INIT 121 +# define SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED 1116 +# define SSL_R_TLSV13_ALERT_MISSING_EXTENSION 1109 +# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 +# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 +# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 +# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 +# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 +# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 +# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 +# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 +# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 +# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 +# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 +# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 +# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 +# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 +# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 +# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 +# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 +# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 +# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 +# define SSL_R_TLS_HEARTBEAT_PENDING 366 +# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 +# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 +# define SSL_R_TOO_MANY_KEY_UPDATES 132 +# define SSL_R_TOO_MANY_WARN_ALERTS 409 +# define SSL_R_TOO_MUCH_EARLY_DATA 164 +# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 +# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 +# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 +# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 +# define SSL_R_UNEXPECTED_CCS_MESSAGE 262 +# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178 +# define SSL_R_UNEXPECTED_MESSAGE 244 +# define SSL_R_UNEXPECTED_RECORD 245 +# define SSL_R_UNINITIALIZED 276 +# define SSL_R_UNKNOWN_ALERT_TYPE 246 +# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 +# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 +# define SSL_R_UNKNOWN_CIPHER_TYPE 249 +# define SSL_R_UNKNOWN_CMD_NAME 386 +# define SSL_R_UNKNOWN_COMMAND 139 +# define SSL_R_UNKNOWN_DIGEST 368 +# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 +# define SSL_R_UNKNOWN_PKEY_TYPE 251 +# define SSL_R_UNKNOWN_PROTOCOL 252 +# define SSL_R_UNKNOWN_SSL_VERSION 254 +# define SSL_R_UNKNOWN_STATE 255 +# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 +# define SSL_R_UNSOLICITED_EXTENSION 217 +# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 +# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 +# define SSL_R_UNSUPPORTED_PROTOCOL 258 +# define SSL_R_UNSUPPORTED_SSL_VERSION 259 +# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 +# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 +# define SSL_R_VERSION_TOO_HIGH 166 +# define SSL_R_VERSION_TOO_LOW 396 +# define SSL_R_WRONG_CERTIFICATE_TYPE 383 +# define SSL_R_WRONG_CIPHER_RETURNED 261 +# define SSL_R_WRONG_CURVE 378 +# define SSL_R_WRONG_SIGNATURE_LENGTH 264 +# define SSL_R_WRONG_SIGNATURE_SIZE 265 +# define SSL_R_WRONG_SIGNATURE_TYPE 370 +# define SSL_R_WRONG_SSL_VERSION 266 +# define SSL_R_WRONG_VERSION_NUMBER 267 +# define SSL_R_X509_LIB 268 +# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 + +#endif diff --git a/thrid-party/openssl/openssl/stack.h b/thrid-party/openssl/openssl/stack.h new file mode 100644 index 000000000..cfc075057 --- /dev/null +++ b/thrid-party/openssl/openssl/stack.h @@ -0,0 +1,83 @@ +/* + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_STACK_H +# define HEADER_STACK_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ + +typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); +typedef void (*OPENSSL_sk_freefunc)(void *); +typedef void *(*OPENSSL_sk_copyfunc)(const void *); + +int OPENSSL_sk_num(const OPENSSL_STACK *); +void *OPENSSL_sk_value(const OPENSSL_STACK *, int); + +void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); + +OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_new_null(void); +OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); +int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); +void OPENSSL_sk_free(OPENSSL_STACK *); +void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); +OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, + OPENSSL_sk_copyfunc c, + OPENSSL_sk_freefunc f); +int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); +void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); +void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); +int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); +void *OPENSSL_sk_shift(OPENSSL_STACK *st); +void *OPENSSL_sk_pop(OPENSSL_STACK *st); +void OPENSSL_sk_zero(OPENSSL_STACK *st); +OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, + OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); +void OPENSSL_sk_sort(OPENSSL_STACK *st); +int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define _STACK OPENSSL_STACK +# define sk_num OPENSSL_sk_num +# define sk_value OPENSSL_sk_value +# define sk_set OPENSSL_sk_set +# define sk_new OPENSSL_sk_new +# define sk_new_null OPENSSL_sk_new_null +# define sk_free OPENSSL_sk_free +# define sk_pop_free OPENSSL_sk_pop_free +# define sk_deep_copy OPENSSL_sk_deep_copy +# define sk_insert OPENSSL_sk_insert +# define sk_delete OPENSSL_sk_delete +# define sk_delete_ptr OPENSSL_sk_delete_ptr +# define sk_find OPENSSL_sk_find +# define sk_find_ex OPENSSL_sk_find_ex +# define sk_push OPENSSL_sk_push +# define sk_unshift OPENSSL_sk_unshift +# define sk_shift OPENSSL_sk_shift +# define sk_pop OPENSSL_sk_pop +# define sk_zero OPENSSL_sk_zero +# define sk_set_cmp_func OPENSSL_sk_set_cmp_func +# define sk_dup OPENSSL_sk_dup +# define sk_sort OPENSSL_sk_sort +# define sk_is_sorted OPENSSL_sk_is_sorted +# endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/store.h b/thrid-party/openssl/openssl/store.h new file mode 100644 index 000000000..a40a7339e --- /dev/null +++ b/thrid-party/openssl/openssl/store.h @@ -0,0 +1,266 @@ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OSSL_STORE_H +# define HEADER_OSSL_STORE_H + +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +/*- + * The main OSSL_STORE functions. + * ------------------------------ + * + * These allow applications to open a channel to a resource with supported + * data (keys, certs, crls, ...), read the data a piece at a time and decide + * what to do with it, and finally close. + */ + +typedef struct ossl_store_ctx_st OSSL_STORE_CTX; + +/* + * Typedef for the OSSL_STORE_INFO post processing callback. This can be used + * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning + * NULL). + */ +typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *, + void *); + +/* + * Open a channel given a URI. The given UI method will be used any time the + * loader needs extra input, for example when a password or pin is needed, and + * will be passed the same user data every time it's needed in this context. + * + * Returns a context reference which represents the channel to communicate + * through. + */ +OSSL_STORE_CTX *OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, + void *ui_data, + OSSL_STORE_post_process_info_fn post_process, + void *post_process_data); + +/* + * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be + * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to + * determine which loader is used), except for common commands (see below). + * Each command takes different arguments. + */ +int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */); +int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args); + +/* + * Common ctrl commands that different loaders may choose to support. + */ +/* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */ +# define OSSL_STORE_C_USE_SECMEM 1 +/* Where custom commands start */ +# define OSSL_STORE_C_CUSTOM_START 100 + +/* + * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE + * functionality, given a context. + * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be + * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ... + * NULL is returned on error, which may include that the data found at the URI + * can't be figured out for certain or is ambiguous. + */ +OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx); + +/* + * Check if end of data (end of file) is reached + * Returns 1 on end, 0 otherwise. + */ +int OSSL_STORE_eof(OSSL_STORE_CTX *ctx); + +/* + * Check if an error occurred + * Returns 1 if it did, 0 otherwise. + */ +int OSSL_STORE_error(OSSL_STORE_CTX *ctx); + +/* + * Close the channel + * Returns 1 on success, 0 on error. + */ +int OSSL_STORE_close(OSSL_STORE_CTX *ctx); + + +/*- + * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs + * --------------------------------------------------------------- + */ + +/* + * Types of data that can be ossl_stored in a OSSL_STORE_INFO. + * OSSL_STORE_INFO_NAME is typically found when getting a listing of + * available "files" / "tokens" / what have you. + */ +# define OSSL_STORE_INFO_NAME 1 /* char * */ +# define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */ +# define OSSL_STORE_INFO_PKEY 3 /* EVP_PKEY * */ +# define OSSL_STORE_INFO_CERT 4 /* X509 * */ +# define OSSL_STORE_INFO_CRL 5 /* X509_CRL * */ + +/* + * Functions to generate OSSL_STORE_INFOs, one function for each type we + * support having in them, as well as a generic constructor. + * + * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO + * and will therefore be freed when the OSSL_STORE_INFO is freed. + */ +OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name); +int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509); +OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl); + +/* + * Functions to try to extract data from a OSSL_STORE_INFO. + */ +int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info); +const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info); +char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info); +const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info); +char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info); +EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info); +X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info); +X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info); +X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info); +X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info); + +const char *OSSL_STORE_INFO_type_string(int type); + +/* + * Free the OSSL_STORE_INFO + */ +void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info); + + +/*- + * Functions to construct a search URI from a base URI and search criteria + * ----------------------------------------------------------------------- + */ + +/* OSSL_STORE search types */ +# define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */ +# define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2 +# define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3 +# define OSSL_STORE_SEARCH_BY_ALIAS 4 + +/* To check what search types the scheme handler supports */ +int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type); + +/* Search term constructors */ +/* + * The input is considered to be owned by the caller, and must therefore + * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH + */ +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name, + const ASN1_INTEGER + *serial); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest, + const unsigned char + *bytes, size_t len); +OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias); + +/* Search term destructor */ +void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search); + +/* Search term accessors */ +int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion); +X509_NAME *OSSL_STORE_SEARCH_get0_name(OSSL_STORE_SEARCH *criterion); +const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH + *criterion); +const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH + *criterion, size_t *length); +const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion); +const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion); + +/* + * Add search criterion and expected return type (which can be unspecified) + * to the loading channel. This MUST happen before the first OSSL_STORE_load(). + */ +int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type); +int OSSL_STORE_find(OSSL_STORE_CTX *ctx, OSSL_STORE_SEARCH *search); + + +/*- + * Function to register a loader for the given URI scheme. + * ------------------------------------------------------- + * + * The loader receives all the main components of an URI except for the + * scheme. + */ + +typedef struct ossl_store_loader_st OSSL_STORE_LOADER; +OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); +const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader); +const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader); +/* struct ossl_store_loader_ctx_st is defined differently by each loader */ +typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; +typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)(const OSSL_STORE_LOADER + *loader, + const char *uri, + const UI_METHOD *ui_method, + void *ui_data); +int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader, + OSSL_STORE_open_fn open_function); +typedef int (*OSSL_STORE_ctrl_fn)(OSSL_STORE_LOADER_CTX *ctx, int cmd, + va_list args); +int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader, + OSSL_STORE_ctrl_fn ctrl_function); +typedef int (*OSSL_STORE_expect_fn)(OSSL_STORE_LOADER_CTX *ctx, int expected); +int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, + OSSL_STORE_expect_fn expect_function); +typedef int (*OSSL_STORE_find_fn)(OSSL_STORE_LOADER_CTX *ctx, + OSSL_STORE_SEARCH *criteria); +int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, + OSSL_STORE_find_fn find_function); +typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)(OSSL_STORE_LOADER_CTX *ctx, + const UI_METHOD *ui_method, + void *ui_data); +int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader, + OSSL_STORE_load_fn load_function); +typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader, + OSSL_STORE_eof_fn eof_function); +typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader, + OSSL_STORE_error_fn error_function); +typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); +int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader, + OSSL_STORE_close_fn close_function); +void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); + +int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); +OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); + +/*- + * Functions to list STORE loaders + * ------------------------------- + */ +int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER + *loader, void *do_arg), + void *do_arg); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/storeerr.h b/thrid-party/openssl/openssl/storeerr.h new file mode 100644 index 000000000..190eab07f --- /dev/null +++ b/thrid-party/openssl/openssl/storeerr.h @@ -0,0 +1,91 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_OSSL_STOREERR_H +# define HEADER_OSSL_STOREERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_OSSL_STORE_strings(void); + +/* + * OSSL_STORE function codes. + */ +# define OSSL_STORE_F_FILE_CTRL 129 +# define OSSL_STORE_F_FILE_FIND 138 +# define OSSL_STORE_F_FILE_GET_PASS 118 +# define OSSL_STORE_F_FILE_LOAD 119 +# define OSSL_STORE_F_FILE_LOAD_TRY_DECODE 124 +# define OSSL_STORE_F_FILE_NAME_TO_URI 126 +# define OSSL_STORE_F_FILE_OPEN 120 +# define OSSL_STORE_F_OSSL_STORE_ATTACH_PEM_BIO 127 +# define OSSL_STORE_F_OSSL_STORE_EXPECT 130 +# define OSSL_STORE_F_OSSL_STORE_FILE_ATTACH_PEM_BIO_INT 128 +# define OSSL_STORE_F_OSSL_STORE_FIND 131 +# define OSSL_STORE_F_OSSL_STORE_GET0_LOADER_INT 100 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CERT 101 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CRL 102 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME 103 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME_DESCRIPTION 135 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PARAMS 104 +# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PKEY 105 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CERT 106 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CRL 107 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_EMBEDDED 123 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_NAME 109 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PARAMS 110 +# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PKEY 111 +# define OSSL_STORE_F_OSSL_STORE_INFO_SET0_NAME_DESCRIPTION 134 +# define OSSL_STORE_F_OSSL_STORE_INIT_ONCE 112 +# define OSSL_STORE_F_OSSL_STORE_LOADER_NEW 113 +# define OSSL_STORE_F_OSSL_STORE_OPEN 114 +# define OSSL_STORE_F_OSSL_STORE_OPEN_INT 115 +# define OSSL_STORE_F_OSSL_STORE_REGISTER_LOADER_INT 117 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ALIAS 132 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 133 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 136 +# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_NAME 137 +# define OSSL_STORE_F_OSSL_STORE_UNREGISTER_LOADER_INT 116 +# define OSSL_STORE_F_TRY_DECODE_PARAMS 121 +# define OSSL_STORE_F_TRY_DECODE_PKCS12 122 +# define OSSL_STORE_F_TRY_DECODE_PKCS8ENCRYPTED 125 + +/* + * OSSL_STORE reason codes. + */ +# define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 +# define OSSL_STORE_R_BAD_PASSWORD_READ 115 +# define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 +# define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 +# define OSSL_STORE_R_INVALID_SCHEME 106 +# define OSSL_STORE_R_IS_NOT_A 112 +# define OSSL_STORE_R_LOADER_INCOMPLETE 116 +# define OSSL_STORE_R_LOADING_STARTED 117 +# define OSSL_STORE_R_NOT_A_CERTIFICATE 100 +# define OSSL_STORE_R_NOT_A_CRL 101 +# define OSSL_STORE_R_NOT_A_KEY 102 +# define OSSL_STORE_R_NOT_A_NAME 103 +# define OSSL_STORE_R_NOT_PARAMETERS 104 +# define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 +# define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 +# define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 +# define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 +# define OSSL_STORE_R_UNREGISTERED_SCHEME 105 +# define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 +# define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 +# define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 +# define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 + +#endif diff --git a/thrid-party/openssl/openssl/symhacks.h b/thrid-party/openssl/openssl/symhacks.h new file mode 100644 index 000000000..156ea6e4e --- /dev/null +++ b/thrid-party/openssl/openssl/symhacks.h @@ -0,0 +1,37 @@ +/* + * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SYMHACKS_H +# define HEADER_SYMHACKS_H + +# include + +/* Case insensitive linking causes problems.... */ +# if defined(OPENSSL_SYS_VMS) +# undef ERR_load_CRYPTO_strings +# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings +# undef OCSP_crlID_new +# define OCSP_crlID_new OCSP_crlID2_new + +# undef d2i_ECPARAMETERS +# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS +# undef i2d_ECPARAMETERS +# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS +# undef d2i_ECPKPARAMETERS +# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS +# undef i2d_ECPKPARAMETERS +# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS + +/* This one clashes with CMS_data_create */ +# undef cms_Data_create +# define cms_Data_create priv_cms_Data_create + +# endif + +#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/thrid-party/openssl/openssl/tls1.h b/thrid-party/openssl/openssl/tls1.h new file mode 100644 index 000000000..76d9fda46 --- /dev/null +++ b/thrid-party/openssl/openssl/tls1.h @@ -0,0 +1,1237 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * Copyright 2005 Nokia. All rights reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_TLS1_H +# define HEADER_TLS1_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Default security level if not overridden at config time */ +# ifndef OPENSSL_TLS_SECURITY_LEVEL +# define OPENSSL_TLS_SECURITY_LEVEL 1 +# endif + +# define TLS1_VERSION 0x0301 +# define TLS1_1_VERSION 0x0302 +# define TLS1_2_VERSION 0x0303 +# define TLS1_3_VERSION 0x0304 +# define TLS_MAX_VERSION TLS1_3_VERSION + +/* Special value for method supporting multiple versions */ +# define TLS_ANY_VERSION 0x10000 + +# define TLS1_VERSION_MAJOR 0x03 +# define TLS1_VERSION_MINOR 0x01 + +# define TLS1_1_VERSION_MAJOR 0x03 +# define TLS1_1_VERSION_MINOR 0x02 + +# define TLS1_2_VERSION_MAJOR 0x03 +# define TLS1_2_VERSION_MINOR 0x03 + +# define TLS1_get_version(s) \ + ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) + +# define TLS1_get_client_version(s) \ + ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) + +# define TLS1_AD_DECRYPTION_FAILED 21 +# define TLS1_AD_RECORD_OVERFLOW 22 +# define TLS1_AD_UNKNOWN_CA 48/* fatal */ +# define TLS1_AD_ACCESS_DENIED 49/* fatal */ +# define TLS1_AD_DECODE_ERROR 50/* fatal */ +# define TLS1_AD_DECRYPT_ERROR 51 +# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ +# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ +# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ +# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ +# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ +# define TLS1_AD_USER_CANCELLED 90 +# define TLS1_AD_NO_RENEGOTIATION 100 +/* TLSv1.3 alerts */ +# define TLS13_AD_MISSING_EXTENSION 109 /* fatal */ +# define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */ +/* codes 110-114 are from RFC3546 */ +# define TLS1_AD_UNSUPPORTED_EXTENSION 110 +# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 +# define TLS1_AD_UNRECOGNIZED_NAME 112 +# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 +# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 +# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ +# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ + +/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ +# define TLSEXT_TYPE_server_name 0 +# define TLSEXT_TYPE_max_fragment_length 1 +# define TLSEXT_TYPE_client_certificate_url 2 +# define TLSEXT_TYPE_trusted_ca_keys 3 +# define TLSEXT_TYPE_truncated_hmac 4 +# define TLSEXT_TYPE_status_request 5 +/* ExtensionType values from RFC4681 */ +# define TLSEXT_TYPE_user_mapping 6 +/* ExtensionType values from RFC5878 */ +# define TLSEXT_TYPE_client_authz 7 +# define TLSEXT_TYPE_server_authz 8 +/* ExtensionType values from RFC6091 */ +# define TLSEXT_TYPE_cert_type 9 + +/* ExtensionType values from RFC4492 */ +/* + * Prior to TLSv1.3 the supported_groups extension was known as + * elliptic_curves + */ +# define TLSEXT_TYPE_supported_groups 10 +# define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups +# define TLSEXT_TYPE_ec_point_formats 11 + + +/* ExtensionType value from RFC5054 */ +# define TLSEXT_TYPE_srp 12 + +/* ExtensionType values from RFC5246 */ +# define TLSEXT_TYPE_signature_algorithms 13 + +/* ExtensionType value from RFC5764 */ +# define TLSEXT_TYPE_use_srtp 14 + +/* ExtensionType value from RFC5620 */ +# define TLSEXT_TYPE_heartbeat 15 + +/* ExtensionType value from RFC7301 */ +# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 + +/* + * Extension type for Certificate Transparency + * https://tools.ietf.org/html/rfc6962#section-3.3.1 + */ +# define TLSEXT_TYPE_signed_certificate_timestamp 18 + +/* + * ExtensionType value for TLS padding extension. + * http://tools.ietf.org/html/draft-agl-tls-padding + */ +# define TLSEXT_TYPE_padding 21 + +/* ExtensionType value from RFC7366 */ +# define TLSEXT_TYPE_encrypt_then_mac 22 + +/* ExtensionType value from RFC7627 */ +# define TLSEXT_TYPE_extended_master_secret 23 + +/* ExtensionType value from RFC4507 */ +# define TLSEXT_TYPE_session_ticket 35 + +/* As defined for TLS1.3 */ +# define TLSEXT_TYPE_psk 41 +# define TLSEXT_TYPE_early_data 42 +# define TLSEXT_TYPE_supported_versions 43 +# define TLSEXT_TYPE_cookie 44 +# define TLSEXT_TYPE_psk_kex_modes 45 +# define TLSEXT_TYPE_certificate_authorities 47 +# define TLSEXT_TYPE_post_handshake_auth 49 +# define TLSEXT_TYPE_signature_algorithms_cert 50 +# define TLSEXT_TYPE_key_share 51 + +/* Temporary extension type */ +# define TLSEXT_TYPE_renegotiate 0xff01 + +# ifndef OPENSSL_NO_NEXTPROTONEG +/* This is not an IANA defined extension number */ +# define TLSEXT_TYPE_next_proto_neg 13172 +# endif + +/* NameType value from RFC3546 */ +# define TLSEXT_NAMETYPE_host_name 0 +/* status request value from RFC3546 */ +# define TLSEXT_STATUSTYPE_ocsp 1 + +/* ECPointFormat values from RFC4492 */ +# define TLSEXT_ECPOINTFORMAT_first 0 +# define TLSEXT_ECPOINTFORMAT_uncompressed 0 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 +# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 +# define TLSEXT_ECPOINTFORMAT_last 2 + +/* Signature and hash algorithms from RFC5246 */ +# define TLSEXT_signature_anonymous 0 +# define TLSEXT_signature_rsa 1 +# define TLSEXT_signature_dsa 2 +# define TLSEXT_signature_ecdsa 3 +# define TLSEXT_signature_gostr34102001 237 +# define TLSEXT_signature_gostr34102012_256 238 +# define TLSEXT_signature_gostr34102012_512 239 + +/* Total number of different signature algorithms */ +# define TLSEXT_signature_num 7 + +# define TLSEXT_hash_none 0 +# define TLSEXT_hash_md5 1 +# define TLSEXT_hash_sha1 2 +# define TLSEXT_hash_sha224 3 +# define TLSEXT_hash_sha256 4 +# define TLSEXT_hash_sha384 5 +# define TLSEXT_hash_sha512 6 +# define TLSEXT_hash_gostr3411 237 +# define TLSEXT_hash_gostr34112012_256 238 +# define TLSEXT_hash_gostr34112012_512 239 + +/* Total number of different digest algorithms */ + +# define TLSEXT_hash_num 10 + +/* Flag set for unrecognised algorithms */ +# define TLSEXT_nid_unknown 0x1000000 + +/* ECC curves */ + +# define TLSEXT_curve_P_256 23 +# define TLSEXT_curve_P_384 24 + +/* OpenSSL value to disable maximum fragment length extension */ +# define TLSEXT_max_fragment_length_DISABLED 0 +/* Allowed values for max fragment length extension */ +# define TLSEXT_max_fragment_length_512 1 +# define TLSEXT_max_fragment_length_1024 2 +# define TLSEXT_max_fragment_length_2048 3 +# define TLSEXT_max_fragment_length_4096 4 + +int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); +int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); + +# define TLSEXT_MAXLEN_host_name 255 + +__owur const char *SSL_get_servername(const SSL *s, const int type); +__owur int SSL_get_servername_type(const SSL *s); +/* + * SSL_export_keying_material exports a value derived from the master secret, + * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and + * optional context. (Since a zero length context is allowed, the |use_context| + * flag controls whether a context is included.) It returns 1 on success and + * 0 or -1 otherwise. + */ +__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, + const char *label, size_t llen, + const unsigned char *context, + size_t contextlen, int use_context); + +/* + * SSL_export_keying_material_early exports a value derived from the + * early exporter master secret, as specified in + * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes + * |olen| bytes to |out| given a label and optional context. It + * returns 1 on success and 0 otherwise. + */ +__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, + size_t olen, const char *label, + size_t llen, + const unsigned char *context, + size_t contextlen); + +int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); +int SSL_get_signature_type_nid(const SSL *s, int *pnid); + +int SSL_get_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_get_shared_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); + +# define SSL_set_tlsext_host_name(s,name) \ + SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,\ + (void *)name) + +# define SSL_set_tlsext_debug_callback(ssl, cb) \ + SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,\ + (void (*)(void))cb) + +# define SSL_set_tlsext_debug_arg(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg) + +# define SSL_get_tlsext_status_type(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) + +# define SSL_set_tlsext_status_type(ssl, type) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) + +# define SSL_get_tlsext_status_exts(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg) + +# define SSL_set_tlsext_status_exts(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0,arg) + +# define SSL_get_tlsext_status_ids(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0,arg) + +# define SSL_set_tlsext_status_ids(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg) + +# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg) + +# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg) + +# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ + SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,\ + (void (*)(void))cb) + +# define SSL_TLSEXT_ERR_OK 0 +# define SSL_TLSEXT_ERR_ALERT_WARNING 1 +# define SSL_TLSEXT_ERR_ALERT_FATAL 2 +# define SSL_TLSEXT_ERR_NOACK 3 + +# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0,arg) + +# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS,keylen,keys) +# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_TICKET_KEYS,keylen,keys) + +# define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0,(void *)cb) +# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ + SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,\ + (void (*)(void))cb) + +# define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) +# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) + +# define SSL_CTX_set_tlsext_status_type(ssl, type) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) + +# define SSL_CTX_get_tlsext_status_type(ssl) \ + SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) + +# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ + SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,\ + (void (*)(void))cb) + +# ifndef OPENSSL_NO_HEARTBEATS +# define SSL_DTLSEXT_HB_ENABLED 0x01 +# define SSL_DTLSEXT_HB_DONT_SEND_REQUESTS 0x02 +# define SSL_DTLSEXT_HB_DONT_RECV_REQUESTS 0x04 +# define SSL_get_dtlsext_heartbeat_pending(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0,NULL) +# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ + SSL_ctrl(ssl,SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) + +# if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT \ + SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT +# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING \ + SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING +# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS \ + SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS +# define SSL_TLSEXT_HB_ENABLED \ + SSL_DTLSEXT_HB_ENABLED +# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS \ + SSL_DTLSEXT_HB_DONT_SEND_REQUESTS +# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS \ + SSL_DTLSEXT_HB_DONT_RECV_REQUESTS +# define SSL_get_tlsext_heartbeat_pending(ssl) \ + SSL_get_dtlsext_heartbeat_pending(ssl) +# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ + SSL_set_dtlsext_heartbeat_no_requests(ssl,arg) +# endif +# endif + +/* PSK ciphersuites from 4279 */ +# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A +# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B +# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C +# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D +# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E +# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F +# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 +# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 +# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 +# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 +# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 + +/* PSK ciphersuites from 5487 */ +# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 +# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 +# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA +# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB +# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC +# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD +# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE +# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF +# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 +# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 +# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 +# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 +# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 + +/* NULL PSK ciphersuites from RFC4785 */ +# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C +# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D +# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E + +/* AES ciphersuites from RFC3268 */ +# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 +# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 +# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 +# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B +# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C +# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D +# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E +# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F +# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 +# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 + +/* TLS v1.2 ciphersuites */ +# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 +# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 +# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 +# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A +# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B +# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C +# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 +# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 +# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 +# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 +# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 +# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A +# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C +# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D +# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E +# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F +# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 +# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 +# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 +# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 +# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 +# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 +# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 +# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 + +/* CCM ciphersuites from RFC6655 */ +# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C +# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D +# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E +# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F +# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 +# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 +# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 +# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 +# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 +# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 +# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 +# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 +# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 +# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 +# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA +# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB + +/* CCM ciphersuites from RFC7251 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF + +/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ +# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE +# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF + +# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 +# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 +# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 +# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 +# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 +# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 + +/* ECC ciphersuites from RFC4492 */ +# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 +# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 +# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 + +# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 +# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 +# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A + +# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B +# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C +# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D +# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E +# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F + +# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 +# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 +# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 + +# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 +# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 +# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 +# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 +# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 + +/* SRP ciphersuites from RFC 5054 */ +# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A +# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B +# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C +# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F +# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 +# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 +# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 + +/* ECDH HMAC based ciphersuites from RFC5289 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B +# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C +# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D +# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E +# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F +# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 +# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 +# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 + +/* ECDHE PSK ciphersuites from RFC5489 */ +# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 +# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 +# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 +# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 + +# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 +# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 + +/* NULL PSK ciphersuites from RFC4785 */ +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A +# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B + +/* Camellia-CBC ciphersuites from RFC6367 */ +# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 +# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 +# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 +# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 +# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 +# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 +# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 +# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 + +# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 +# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 +# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 +# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 +# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 +# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 +# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A +# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B + +/* draft-ietf-tls-chacha20-poly1305-03 */ +# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 +# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 +# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA +# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB +# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC +# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD +# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE + +/* TLS v1.3 ciphersuites */ +# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 +# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 +# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303 +# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304 +# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305 + +/* Aria ciphersuites from RFC6209 */ +# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050 +# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051 +# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052 +# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053 +# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054 +# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055 +# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056 +# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057 +# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058 +# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059 +# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A +# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B +# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C +# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D +# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E +# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F +# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060 +# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061 +# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062 +# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063 +# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A +# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B +# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C +# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D +# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E +# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F + +/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ +# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256" +# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM" +# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM" +# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8" +# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8" +# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM" +# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM" +# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8" +# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" +# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256" +# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384" +# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256" +# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256" +# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA" +# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA" +# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384" +# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" +# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" +# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256" +# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA" +# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" +# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" +# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA" +# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA" +# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA" +# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA" +# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" +# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA" +# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA" +# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" +# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" +# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" + + +/* + * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE + * ciphers names with "EDH" instead of "DHE". Going forward, we should be + * using DHE everywhere, though we may indefinitely maintain aliases for + * users or configurations that used "EDH" + */ +# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" + +# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" + +/* AES ciphersuites from RFC3268 */ +# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" +# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" + +# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" +# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" + +/* ECC ciphersuites from RFC4492 */ +# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" + +# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" + +# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" + +# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" +# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" +# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" +# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" + +/* PSK ciphersuites from RFC 4279 */ +# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" +# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" +# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" + +# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" +# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" +# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" + +/* PSK ciphersuites from RFC 5487 */ +# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" + +# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" +# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" +# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" + +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" + +# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" + +/* SRP ciphersuite from RFC 5054 */ +# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" +# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" +# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" + +/* Camellia ciphersuites from RFC4132 */ +# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" + +# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" +# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" + +/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ +# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" + +# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" +# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" +# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" +# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" + +# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" + +/* SEED ciphersuites from RFC4162 */ +# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" +# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" +# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" +# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" +# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" +# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" + +/* TLS v1.2 ciphersuites */ +# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" +# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" +# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" + +/* TLS v1.2 GCM ciphersuites from RFC5288 */ +# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" +# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" +# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" +# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" +# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" + +/* CCM ciphersuites from RFC6655 */ +# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" +# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" + +# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" +# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" +# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" +# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" + +# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" +# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" + +# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" +# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" +# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" +# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" + +/* CCM ciphersuites from RFC7251 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" + +/* ECDH HMAC based ciphersuites from RFC5289 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" + +/* ECDH GCM based ciphersuites from RFC5289 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" + +/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ +# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" + +/* ECDHE PSK ciphersuites from RFC 5489 */ +# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" + +# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" + +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" +# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" + +/* Camellia-CBC ciphersuites from RFC6367 */ +# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" + +/* draft-ietf-tls-chacha20-poly1305-03 */ +# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" +# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" +# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" +# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" +# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" +# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" +# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" + +/* Aria ciphersuites from RFC6209 */ +# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256" +# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384" +# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256" +# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384" +# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256" +# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384" +# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384" +# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384" +# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256" +# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384" + +# define TLS_CT_RSA_SIGN 1 +# define TLS_CT_DSS_SIGN 2 +# define TLS_CT_RSA_FIXED_DH 3 +# define TLS_CT_DSS_FIXED_DH 4 +# define TLS_CT_ECDSA_SIGN 64 +# define TLS_CT_RSA_FIXED_ECDH 65 +# define TLS_CT_ECDSA_FIXED_ECDH 66 +# define TLS_CT_GOST01_SIGN 22 +# define TLS_CT_GOST12_SIGN 238 +# define TLS_CT_GOST12_512_SIGN 239 + +/* + * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see + * comment there) + */ +# define TLS_CT_NUMBER 10 + +# if defined(SSL3_CT_NUMBER) +# if TLS_CT_NUMBER != SSL3_CT_NUMBER +# error "SSL/TLS CT_NUMBER values do not match" +# endif +# endif + +# define TLS1_FINISH_MAC_LENGTH 12 + +# define TLS_MD_MAX_CONST_SIZE 22 +# define TLS_MD_CLIENT_FINISH_CONST "client finished" +# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 +# define TLS_MD_SERVER_FINISH_CONST "server finished" +# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 +# define TLS_MD_KEY_EXPANSION_CONST "key expansion" +# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 +# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" +# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" +# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 +# define TLS_MD_IV_BLOCK_CONST "IV block" +# define TLS_MD_IV_BLOCK_CONST_SIZE 8 +# define TLS_MD_MASTER_SECRET_CONST "master secret" +# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret" +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 + +# ifdef CHARSET_EBCDIC +# undef TLS_MD_CLIENT_FINISH_CONST +/* + * client finished + */ +# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_FINISH_CONST +/* + * server finished + */ +# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_KEY_EXPANSION_CONST +/* + * key expansion + */ +# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" + +# undef TLS_MD_CLIENT_WRITE_KEY_CONST +/* + * client write key + */ +# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_SERVER_WRITE_KEY_CONST +/* + * server write key + */ +# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" + +# undef TLS_MD_IV_BLOCK_CONST +/* + * IV block + */ +# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" + +# undef TLS_MD_MASTER_SECRET_CONST +/* + * master secret + */ +# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" +# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST +/* + * extended master secret + */ +# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" +# endif + +/* TLS Session Ticket extension struct */ +struct tls_session_ticket_ext_st { + unsigned short length; + void *data; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/ts.h b/thrid-party/openssl/openssl/ts.h new file mode 100644 index 000000000..3b58aa527 --- /dev/null +++ b/thrid-party/openssl/openssl/ts.h @@ -0,0 +1,559 @@ +/* + * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_TS_H +# define HEADER_TS_H + +# include + +# ifndef OPENSSL_NO_TS +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +# include +# include + +typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; +typedef struct TS_req_st TS_REQ; +typedef struct TS_accuracy_st TS_ACCURACY; +typedef struct TS_tst_info_st TS_TST_INFO; + +/* Possible values for status. */ +# define TS_STATUS_GRANTED 0 +# define TS_STATUS_GRANTED_WITH_MODS 1 +# define TS_STATUS_REJECTION 2 +# define TS_STATUS_WAITING 3 +# define TS_STATUS_REVOCATION_WARNING 4 +# define TS_STATUS_REVOCATION_NOTIFICATION 5 + +/* Possible values for failure_info. */ +# define TS_INFO_BAD_ALG 0 +# define TS_INFO_BAD_REQUEST 2 +# define TS_INFO_BAD_DATA_FORMAT 5 +# define TS_INFO_TIME_NOT_AVAILABLE 14 +# define TS_INFO_UNACCEPTED_POLICY 15 +# define TS_INFO_UNACCEPTED_EXTENSION 16 +# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 +# define TS_INFO_SYSTEM_FAILURE 25 + + +typedef struct TS_status_info_st TS_STATUS_INFO; +typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; +typedef struct ESS_cert_id ESS_CERT_ID; +typedef struct ESS_signing_cert ESS_SIGNING_CERT; + +DEFINE_STACK_OF(ESS_CERT_ID) + +typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; +typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; + +DEFINE_STACK_OF(ESS_CERT_ID_V2) + +typedef struct TS_resp_st TS_RESP; + +TS_REQ *TS_REQ_new(void); +void TS_REQ_free(TS_REQ *a); +int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); +TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); + +TS_REQ *TS_REQ_dup(TS_REQ *a); + +#ifndef OPENSSL_NO_STDIO +TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); +int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); +#endif +TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); +int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); +void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); +int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, + const unsigned char **pp, long length); + +TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); + +#ifndef OPENSSL_NO_STDIO +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); +#endif +TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); +int i2d_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT *a); + +TS_RESP *TS_RESP_new(void); +void TS_RESP_free(TS_RESP *a); +int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); +TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); +TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); +TS_RESP *TS_RESP_dup(TS_RESP *a); + +#ifndef OPENSSL_NO_STDIO +TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); +int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); +#endif +TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); +int i2d_TS_RESP_bio(BIO *bio, TS_RESP *a); + +TS_STATUS_INFO *TS_STATUS_INFO_new(void); +void TS_STATUS_INFO_free(TS_STATUS_INFO *a); +int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); +TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, + const unsigned char **pp, long length); +TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); + +TS_TST_INFO *TS_TST_INFO_new(void); +void TS_TST_INFO_free(TS_TST_INFO *a); +int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); +TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, + long length); +TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); + +#ifndef OPENSSL_NO_STDIO +TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); +int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); +#endif +TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); +int i2d_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO *a); + +TS_ACCURACY *TS_ACCURACY_new(void); +void TS_ACCURACY_free(TS_ACCURACY *a); +int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); +TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, + long length); +TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); + +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); +void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); +int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); +ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, + const unsigned char **pp, + long length); +ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); + +ESS_CERT_ID *ESS_CERT_ID_new(void); +void ESS_CERT_ID_free(ESS_CERT_ID *a); +int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); +ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, + long length); +ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); + +ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); +void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); +int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); +ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, + const unsigned char **pp, long length); +ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); + +ESS_CERT_ID_V2 *ESS_CERT_ID_V2_new(void); +void ESS_CERT_ID_V2_free(ESS_CERT_ID_V2 *a); +int i2d_ESS_CERT_ID_V2(const ESS_CERT_ID_V2 *a, unsigned char **pp); +ESS_CERT_ID_V2 *d2i_ESS_CERT_ID_V2(ESS_CERT_ID_V2 **a, + const unsigned char **pp, long length); +ESS_CERT_ID_V2 *ESS_CERT_ID_V2_dup(ESS_CERT_ID_V2 *a); + +ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_new(void); +void ESS_SIGNING_CERT_V2_free(ESS_SIGNING_CERT_V2 *a); +int i2d_ESS_SIGNING_CERT_V2(const ESS_SIGNING_CERT_V2 *a, unsigned char **pp); +ESS_SIGNING_CERT_V2 *d2i_ESS_SIGNING_CERT_V2(ESS_SIGNING_CERT_V2 **a, + const unsigned char **pp, + long length); +ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_dup(ESS_SIGNING_CERT_V2 *a); + +int TS_REQ_set_version(TS_REQ *a, long version); +long TS_REQ_get_version(const TS_REQ *a); + +int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); +const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); + +const STACK_OF(ASN1_UTF8STRING) * +TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); + +const ASN1_BIT_STRING * +TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); + +int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); + +int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); +X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); + +int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); +ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); + +int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); +ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); + +int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); + +int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); +int TS_REQ_get_cert_req(const TS_REQ *a); + +STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); +void TS_REQ_ext_free(TS_REQ *a); +int TS_REQ_get_ext_count(TS_REQ *a); +int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); +int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); +int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); +X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); +X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); +int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); +void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); + +/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ + +int TS_REQ_print_bio(BIO *bio, TS_REQ *a); + +/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ + +int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); +TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); + +/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ +void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); +PKCS7 *TS_RESP_get_token(TS_RESP *a); +TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); + +int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); +long TS_TST_INFO_get_version(const TS_TST_INFO *a); + +int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); +ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); + +int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); +TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); + +int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); +const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); + +int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); +const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); + +int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); +TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); + +int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); +const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); + +int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); +const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); + +int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); +const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); + +int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); +int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); + +int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); +const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); + +int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); +GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); + +STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); +void TS_TST_INFO_ext_free(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); +int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); +int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, + int lastpos); +int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); +X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); +X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); +int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); +void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); + +/* + * Declarations related to response generation, defined in ts/ts_resp_sign.c. + */ + +/* Optional flags for response generation. */ + +/* Don't include the TSA name in response. */ +# define TS_TSA_NAME 0x01 + +/* Set ordering to true in response. */ +# define TS_ORDERING 0x02 + +/* + * Include the signer certificate and the other specified certificates in + * the ESS signing certificate attribute beside the PKCS7 signed data. + * Only the signer certificates is included by default. + */ +# define TS_ESS_CERT_ID_CHAIN 0x04 + +/* Forward declaration. */ +struct TS_resp_ctx; + +/* This must return a unique number less than 160 bits long. */ +typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); + +/* + * This must return the seconds and microseconds since Jan 1, 1970 in the sec + * and usec variables allocated by the caller. Return non-zero for success + * and zero for failure. + */ +typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, + long *usec); + +/* + * This must process the given extension. It can modify the TS_TST_INFO + * object of the context. Return values: !0 (processed), 0 (error, it must + * set the status info/failure info of the response). + */ +typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, + void *); + +typedef struct TS_resp_ctx TS_RESP_CTX; + +DEFINE_STACK_OF_CONST(EVP_MD) + +/* Creates a response context that can be used for generating responses. */ +TS_RESP_CTX *TS_RESP_CTX_new(void); +void TS_RESP_CTX_free(TS_RESP_CTX *ctx); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); + +int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, + const EVP_MD *signer_digest); +int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md); + +/* This parameter must be set. */ +int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); + +/* No additional certs are included in the response by default. */ +int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); + +/* + * Adds a new acceptable policy, only the default policy is accepted by + * default. + */ +int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); + +/* + * Adds a new acceptable message digest. Note that no message digests are + * accepted by default. The md argument is shared with the caller. + */ +int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); + +/* Accuracy is not included by default. */ +int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, + int secs, int millis, int micros); + +/* + * Clock precision digits, i.e. the number of decimal digits: '0' means sec, + * '3' msec, '6' usec, and so on. Default is 0. + */ +int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, + unsigned clock_precision_digits); +/* At most we accept usec precision. */ +# define TS_MAX_CLOCK_PRECISION_DIGITS 6 + +/* Maximum status message length */ +# define TS_MAX_STATUS_LENGTH (1024 * 1024) + +/* No flags are set by default. */ +void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); + +/* Default callback always returns a constant. */ +void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); + +/* Default callback uses the gettimeofday() and gmtime() system calls. */ +void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); + +/* + * Default callback rejects all extensions. The extension callback is called + * when the TS_TST_INFO object is already set up and not signed yet. + */ +/* FIXME: extension handling is not tested yet. */ +void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, + TS_extension_cb cb, void *data); + +/* The following methods can be used in the callbacks. */ +int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, + int status, const char *text); + +/* Sets the status info only if it is still TS_STATUS_GRANTED. */ +int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, + int status, const char *text); + +int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); + +/* The get methods below can be used in the extension callback. */ +TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); + +TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); + +/* + * Creates the signed TS_TST_INFO and puts it in TS_RESP. + * In case of errors it sets the status info properly. + * Returns NULL only in case of memory allocation/fatal error. + */ +TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); + +/* + * Declarations related to response verification, + * they are defined in ts/ts_resp_verify.c. + */ + +int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, + X509_STORE *store, X509 **signer_out); + +/* Context structure for the generic verify method. */ + +/* Verify the signer's certificate and the signature of the response. */ +# define TS_VFY_SIGNATURE (1u << 0) +/* Verify the version number of the response. */ +# define TS_VFY_VERSION (1u << 1) +/* Verify if the policy supplied by the user matches the policy of the TSA. */ +# define TS_VFY_POLICY (1u << 2) +/* + * Verify the message imprint provided by the user. This flag should not be + * specified with TS_VFY_DATA. + */ +# define TS_VFY_IMPRINT (1u << 3) +/* + * Verify the message imprint computed by the verify method from the user + * provided data and the MD algorithm of the response. This flag should not + * be specified with TS_VFY_IMPRINT. + */ +# define TS_VFY_DATA (1u << 4) +/* Verify the nonce value. */ +# define TS_VFY_NONCE (1u << 5) +/* Verify if the TSA name field matches the signer certificate. */ +# define TS_VFY_SIGNER (1u << 6) +/* Verify if the TSA name field equals to the user provided name. */ +# define TS_VFY_TSA_NAME (1u << 7) + +/* You can use the following convenience constants. */ +# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_IMPRINT \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) +# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ + | TS_VFY_VERSION \ + | TS_VFY_POLICY \ + | TS_VFY_DATA \ + | TS_VFY_NONCE \ + | TS_VFY_SIGNER \ + | TS_VFY_TSA_NAME) + +typedef struct TS_verify_ctx TS_VERIFY_CTX; + +int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); +int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); + +/* + * Declarations related to response verification context, + */ +TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); +void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); +void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); +int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); +int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); +BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); +unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, + unsigned char *hexstr, long len); +X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); +STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); + +/*- + * If ctx is NULL, it allocates and returns a new object, otherwise + * it returns ctx. It initialises all the members as follows: + * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) + * certs = NULL + * store = NULL + * policy = policy from the request or NULL if absent (in this case + * TS_VFY_POLICY is cleared from flags as well) + * md_alg = MD algorithm from request + * imprint, imprint_len = imprint from request + * data = NULL + * nonce, nonce_len = nonce from the request or NULL if absent (in this case + * TS_VFY_NONCE is cleared from flags as well) + * tsa_name = NULL + * Important: after calling this method TS_VFY_SIGNATURE should be added! + */ +TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); + +/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ + +int TS_RESP_print_bio(BIO *bio, TS_RESP *a); +int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); +int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); + +/* Common utility functions defined in ts/ts_lib.c */ + +int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); +int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); +int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); +int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); +int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); + +/* + * Function declarations for handling configuration options, defined in + * ts/ts_conf.c + */ + +X509 *TS_CONF_load_cert(const char *file); +STACK_OF(X509) *TS_CONF_load_certs(const char *file); +EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); +const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); +int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, + TS_RESP_CTX *ctx); +#ifndef OPENSSL_NO_ENGINE +int TS_CONF_set_crypto_device(CONF *conf, const char *section, + const char *device); +int TS_CONF_set_default_engine(const char *name); +#endif +int TS_CONF_set_signer_cert(CONF *conf, const char *section, + const char *cert, TS_RESP_CTX *ctx); +int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, + TS_RESP_CTX *ctx); +int TS_CONF_set_signer_key(CONF *conf, const char *section, + const char *key, const char *pass, + TS_RESP_CTX *ctx); +int TS_CONF_set_signer_digest(CONF *conf, const char *section, + const char *md, TS_RESP_CTX *ctx); +int TS_CONF_set_def_policy(CONF *conf, const char *section, + const char *policy, TS_RESP_CTX *ctx); +int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, + TS_RESP_CTX *ctx); +int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); +int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, + TS_RESP_CTX *ctx); +int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, + TS_RESP_CTX *ctx); + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/thrid-party/openssl/openssl/tserr.h b/thrid-party/openssl/openssl/tserr.h new file mode 100644 index 000000000..07f23339c --- /dev/null +++ b/thrid-party/openssl/openssl/tserr.h @@ -0,0 +1,132 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_TSERR_H +# define HEADER_TSERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# include + +# ifndef OPENSSL_NO_TS + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_TS_strings(void); + +/* + * TS function codes. + */ +# define TS_F_DEF_SERIAL_CB 110 +# define TS_F_DEF_TIME_CB 111 +# define TS_F_ESS_ADD_SIGNING_CERT 112 +# define TS_F_ESS_ADD_SIGNING_CERT_V2 147 +# define TS_F_ESS_CERT_ID_NEW_INIT 113 +# define TS_F_ESS_CERT_ID_V2_NEW_INIT 156 +# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 +# define TS_F_ESS_SIGNING_CERT_V2_NEW_INIT 157 +# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 +# define TS_F_PKCS7_TO_TS_TST_INFO 148 +# define TS_F_TS_ACCURACY_SET_MICROS 115 +# define TS_F_TS_ACCURACY_SET_MILLIS 116 +# define TS_F_TS_ACCURACY_SET_SECONDS 117 +# define TS_F_TS_CHECK_IMPRINTS 100 +# define TS_F_TS_CHECK_NONCES 101 +# define TS_F_TS_CHECK_POLICY 102 +# define TS_F_TS_CHECK_SIGNING_CERTS 103 +# define TS_F_TS_CHECK_STATUS_INFO 104 +# define TS_F_TS_COMPUTE_IMPRINT 145 +# define TS_F_TS_CONF_INVALID 151 +# define TS_F_TS_CONF_LOAD_CERT 153 +# define TS_F_TS_CONF_LOAD_CERTS 154 +# define TS_F_TS_CONF_LOAD_KEY 155 +# define TS_F_TS_CONF_LOOKUP_FAIL 152 +# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 +# define TS_F_TS_GET_STATUS_TEXT 105 +# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 +# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 +# define TS_F_TS_REQ_SET_NONCE 120 +# define TS_F_TS_REQ_SET_POLICY_ID 121 +# define TS_F_TS_RESP_CREATE_RESPONSE 122 +# define TS_F_TS_RESP_CREATE_TST_INFO 123 +# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 +# define TS_F_TS_RESP_CTX_ADD_MD 125 +# define TS_F_TS_RESP_CTX_ADD_POLICY 126 +# define TS_F_TS_RESP_CTX_NEW 127 +# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 +# define TS_F_TS_RESP_CTX_SET_CERTS 129 +# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 +# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 +# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 +# define TS_F_TS_RESP_GET_POLICY 133 +# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 +# define TS_F_TS_RESP_SET_STATUS_INFO 135 +# define TS_F_TS_RESP_SET_TST_INFO 150 +# define TS_F_TS_RESP_SIGN 136 +# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 +# define TS_F_TS_TST_INFO_SET_ACCURACY 137 +# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 +# define TS_F_TS_TST_INFO_SET_NONCE 139 +# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 +# define TS_F_TS_TST_INFO_SET_SERIAL 141 +# define TS_F_TS_TST_INFO_SET_TIME 142 +# define TS_F_TS_TST_INFO_SET_TSA 143 +# define TS_F_TS_VERIFY 108 +# define TS_F_TS_VERIFY_CERT 109 +# define TS_F_TS_VERIFY_CTX_NEW 144 + +/* + * TS reason codes. + */ +# define TS_R_BAD_PKCS7_TYPE 132 +# define TS_R_BAD_TYPE 133 +# define TS_R_CANNOT_LOAD_CERT 137 +# define TS_R_CANNOT_LOAD_KEY 138 +# define TS_R_CERTIFICATE_VERIFY_ERROR 100 +# define TS_R_COULD_NOT_SET_ENGINE 127 +# define TS_R_COULD_NOT_SET_TIME 115 +# define TS_R_DETACHED_CONTENT 134 +# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 +# define TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR 139 +# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 +# define TS_R_INVALID_NULL_POINTER 102 +# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 +# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 +# define TS_R_NONCE_MISMATCH 104 +# define TS_R_NONCE_NOT_RETURNED 105 +# define TS_R_NO_CONTENT 106 +# define TS_R_NO_TIME_STAMP_TOKEN 107 +# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 +# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 +# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 +# define TS_R_POLICY_MISMATCH 108 +# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 +# define TS_R_RESPONSE_SETUP_ERROR 121 +# define TS_R_SIGNATURE_FAILURE 109 +# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 +# define TS_R_TIME_SYSCALL_ERROR 122 +# define TS_R_TOKEN_NOT_PRESENT 130 +# define TS_R_TOKEN_PRESENT 131 +# define TS_R_TSA_NAME_MISMATCH 111 +# define TS_R_TSA_UNTRUSTED 112 +# define TS_R_TST_INFO_SETUP_ERROR 123 +# define TS_R_TS_DATASIGN 124 +# define TS_R_UNACCEPTABLE_POLICY 125 +# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 +# define TS_R_UNSUPPORTED_VERSION 113 +# define TS_R_VAR_BAD_VALUE 135 +# define TS_R_VAR_LOOKUP_FAILURE 136 +# define TS_R_WRONG_CONTENT_TYPE 114 + +# endif +#endif diff --git a/thrid-party/openssl/openssl/txt_db.h b/thrid-party/openssl/openssl/txt_db.h new file mode 100644 index 000000000..ec981a439 --- /dev/null +++ b/thrid-party/openssl/openssl/txt_db.h @@ -0,0 +1,57 @@ +/* + * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_TXT_DB_H +# define HEADER_TXT_DB_H + +# include +# include +# include +# include + +# define DB_ERROR_OK 0 +# define DB_ERROR_MALLOC 1 +# define DB_ERROR_INDEX_CLASH 2 +# define DB_ERROR_INDEX_OUT_OF_RANGE 3 +# define DB_ERROR_NO_INDEX 4 +# define DB_ERROR_INSERT_INDEX_CLASH 5 +# define DB_ERROR_WRONG_NUM_FIELDS 6 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OPENSSL_STRING *OPENSSL_PSTRING; +DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) + +typedef struct txt_db_st { + int num_fields; + STACK_OF(OPENSSL_PSTRING) *data; + LHASH_OF(OPENSSL_STRING) **index; + int (**qual) (OPENSSL_STRING *); + long error; + long arg1; + long arg2; + OPENSSL_STRING *arg_row; +} TXT_DB; + +TXT_DB *TXT_DB_read(BIO *in, int num); +long TXT_DB_write(BIO *out, TXT_DB *db); +int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), + OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); +void TXT_DB_free(TXT_DB *db); +OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, + OPENSSL_STRING *value); +int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/thrid-party/openssl/openssl/ui.h b/thrid-party/openssl/openssl/ui.h new file mode 100644 index 000000000..7c721ec81 --- /dev/null +++ b/thrid-party/openssl/openssl/ui.h @@ -0,0 +1,368 @@ +/* + * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_UI_H +# define HEADER_UI_H + +# include + +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# endif +# include +# include +# include +# include + +/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ +# if OPENSSL_API_COMPAT < 0x10200000L +# ifdef OPENSSL_NO_UI_CONSOLE +# define OPENSSL_NO_UI +# endif +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * All the following functions return -1 or NULL on error and in some cases + * (UI_process()) -2 if interrupted or in some other way cancelled. When + * everything is fine, they return 0, a positive value or a non-NULL pointer, + * all depending on their purpose. + */ + +/* Creators and destructor. */ +UI *UI_new(void); +UI *UI_new_method(const UI_METHOD *method); +void UI_free(UI *ui); + +/*- + The following functions are used to add strings to be printed and prompt + strings to prompt for data. The names are UI_{add,dup}__string + and UI_{add,dup}_input_boolean. + + UI_{add,dup}__string have the following meanings: + add add a text or prompt string. The pointers given to these + functions are used verbatim, no copying is done. + dup make a copy of the text or prompt string, then add the copy + to the collection of strings in the user interface. + + The function is a name for the functionality that the given + string shall be used for. It can be one of: + input use the string as data prompt. + verify use the string as verification prompt. This + is used to verify a previous input. + info use the string for informational output. + error use the string for error output. + Honestly, there's currently no difference between info and error for the + moment. + + UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", + and are typically used when one wants to prompt for a yes/no response. + + All of the functions in this group take a UI and a prompt string. + The string input and verify addition functions also take a flag argument, + a buffer for the result to end up with, a minimum input size and a maximum + input size (the result buffer MUST be large enough to be able to contain + the maximum number of characters). Additionally, the verify addition + functions takes another buffer to compare the result against. + The boolean input functions take an action description string (which should + be safe to ignore if the expected user action is obvious, for example with + a dialog box with an OK button and a Cancel button), a string of acceptable + characters to mean OK and to mean Cancel. The two last strings are checked + to make sure they don't have common characters. Additionally, the same + flag argument as for the string input is taken, as well as a result buffer. + The result buffer is required to be at least one byte long. Depending on + the answer, the first character from the OK or the Cancel character strings + will be stored in the first byte of the result buffer. No NUL will be + added, so the result is *not* a string. + + On success, the all return an index of the added information. That index + is useful when retrieving results with UI_get0_result(). */ +int UI_add_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_dup_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_add_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_dup_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_add_info_string(UI *ui, const char *text); +int UI_dup_info_string(UI *ui, const char *text); +int UI_add_error_string(UI *ui, const char *text); +int UI_dup_error_string(UI *ui, const char *text); + +/* These are the possible flags. They can be or'ed together. */ +/* Use to have echoing of input */ +# define UI_INPUT_FLAG_ECHO 0x01 +/* + * Use a default password. Where that password is found is completely up to + * the application, it might for example be in the user data set with + * UI_add_user_data(). It is not recommended to have more than one input in + * each UI being marked with this flag, or the application might get + * confused. + */ +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 + +/*- + * The user of these routines may want to define flags of their own. The core + * UI won't look at those, but will pass them on to the method routines. They + * must use higher bits so they don't get confused with the UI bits above. + * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good + * example of use is this: + * + * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) + * +*/ +# define UI_INPUT_FLAG_USER_BASE 16 + +/*- + * The following function helps construct a prompt. object_desc is a + * textual short description of the object, for example "pass phrase", + * and object_name is the name of the object (might be a card name or + * a file name. + * The returned string shall always be allocated on the heap with + * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). + * + * If the ui_method doesn't contain a pointer to a user-defined prompt + * constructor, a default string is built, looking like this: + * + * "Enter {object_desc} for {object_name}:" + * + * So, if object_desc has the value "pass phrase" and object_name has + * the value "foo.key", the resulting string is: + * + * "Enter pass phrase for foo.key:" +*/ +char *UI_construct_prompt(UI *ui_method, + const char *object_desc, const char *object_name); + +/* + * The following function is used to store a pointer to user-specific data. + * Any previous such pointer will be returned and replaced. + * + * For callback purposes, this function makes a lot more sense than using + * ex_data, since the latter requires that different parts of OpenSSL or + * applications share the same ex_data index. + * + * Note that the UI_OpenSSL() method completely ignores the user data. Other + * methods may not, however. + */ +void *UI_add_user_data(UI *ui, void *user_data); +/* + * Alternatively, this function is used to duplicate the user data. + * This uses the duplicator method function. The destroy function will + * be used to free the user data in this case. + */ +int UI_dup_user_data(UI *ui, void *user_data); +/* We need a user data retrieving function as well. */ +void *UI_get0_user_data(UI *ui); + +/* Return the result associated with a prompt given with the index i. */ +const char *UI_get0_result(UI *ui, int i); +int UI_get_result_length(UI *ui, int i); + +/* When all strings have been added, process the whole thing. */ +int UI_process(UI *ui); + +/* + * Give a user interface parameterised control commands. This can be used to + * send down an integer, a data pointer or a function pointer, as well as be + * used to get information from a UI. + */ +int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); + +/* The commands */ +/* + * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the + * OpenSSL error stack before printing any info or added error messages and + * before any prompting. + */ +# define UI_CTRL_PRINT_ERRORS 1 +/* + * Check if a UI_process() is possible to do again with the same instance of + * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 + * if not. + */ +# define UI_CTRL_IS_REDOABLE 2 + +/* Some methods may use extra data */ +# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) +# define UI_get_app_data(s) UI_get_ex_data(s,0) + +# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) +int UI_set_ex_data(UI *r, int idx, void *arg); +void *UI_get_ex_data(UI *r, int idx); + +/* Use specific methods instead of the built-in one */ +void UI_set_default_method(const UI_METHOD *meth); +const UI_METHOD *UI_get_default_method(void); +const UI_METHOD *UI_get_method(UI *ui); +const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); + +# ifndef OPENSSL_NO_UI_CONSOLE + +/* The method with all the built-in thingies */ +UI_METHOD *UI_OpenSSL(void); + +# endif + +/* + * NULL method. Literally does nothing, but may serve as a placeholder + * to avoid internal default. + */ +const UI_METHOD *UI_null(void); + +/* ---------- For method writers ---------- */ +/*- + A method contains a number of functions that implement the low level + of the User Interface. The functions are: + + an opener This function starts a session, maybe by opening + a channel to a tty, or by opening a window. + a writer This function is called to write a given string, + maybe to the tty, maybe as a field label in a + window. + a flusher This function is called to flush everything that + has been output so far. It can be used to actually + display a dialog box after it has been built. + a reader This function is called to read a given prompt, + maybe from the tty, maybe from a field in a + window. Note that it's called with all string + structures, not only the prompt ones, so it must + check such things itself. + a closer This function closes the session, maybe by closing + the channel to the tty, or closing the window. + + All these functions are expected to return: + + 0 on error. + 1 on success. + -1 on out-of-band events, for example if some prompting has + been canceled (by pressing Ctrl-C, for example). This is + only checked when returned by the flusher or the reader. + + The way this is used, the opener is first called, then the writer for all + strings, then the flusher, then the reader for all strings and finally the + closer. Note that if you want to prompt from a terminal or other command + line interface, the best is to have the reader also write the prompts + instead of having the writer do it. If you want to prompt from a dialog + box, the writer can be used to build up the contents of the box, and the + flusher to actually display the box and run the event loop until all data + has been given, after which the reader only grabs the given data and puts + them back into the UI strings. + + All method functions take a UI as argument. Additionally, the writer and + the reader take a UI_STRING. +*/ + +/* + * The UI_STRING type is the data structure that contains all the needed info + * about a string or a prompt, including test data for a verification prompt. + */ +typedef struct ui_string_st UI_STRING; +DEFINE_STACK_OF(UI_STRING) + +/* + * The different types of strings that are currently supported. This is only + * needed by method authors. + */ +enum UI_string_types { + UIT_NONE = 0, + UIT_PROMPT, /* Prompt for a string */ + UIT_VERIFY, /* Prompt for a string and verify */ + UIT_BOOLEAN, /* Prompt for a yes/no response */ + UIT_INFO, /* Send info to the user */ + UIT_ERROR /* Send an error message to the user */ +}; + +/* Create and manipulate methods */ +UI_METHOD *UI_create_method(const char *name); +void UI_destroy_method(UI_METHOD *ui_method); +int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); +int UI_method_set_writer(UI_METHOD *method, + int (*writer) (UI *ui, UI_STRING *uis)); +int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); +int UI_method_set_reader(UI_METHOD *method, + int (*reader) (UI *ui, UI_STRING *uis)); +int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_data_duplicator(UI_METHOD *method, + void *(*duplicator) (UI *ui, void *ui_data), + void (*destructor)(UI *ui, void *ui_data)); +int UI_method_set_prompt_constructor(UI_METHOD *method, + char *(*prompt_constructor) (UI *ui, + const char + *object_desc, + const char + *object_name)); +int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); +int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) + (UI *, const char *, const char *); +void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); +void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); +const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); + +/* + * The following functions are helpers for method writers to access relevant + * data from a UI_STRING. + */ + +/* Return type of the UI_STRING */ +enum UI_string_types UI_get_string_type(UI_STRING *uis); +/* Return input flags of the UI_STRING */ +int UI_get_input_flags(UI_STRING *uis); +/* Return the actual string to output (the prompt, info or error) */ +const char *UI_get0_output_string(UI_STRING *uis); +/* + * Return the optional action string to output (the boolean prompt + * instruction) + */ +const char *UI_get0_action_string(UI_STRING *uis); +/* Return the result of a prompt */ +const char *UI_get0_result_string(UI_STRING *uis); +int UI_get_result_string_length(UI_STRING *uis); +/* + * Return the string to test the result against. Only useful with verifies. + */ +const char *UI_get0_test_string(UI_STRING *uis); +/* Return the required minimum size of the result */ +int UI_get_result_minsize(UI_STRING *uis); +/* Return the required maximum size of the result */ +int UI_get_result_maxsize(UI_STRING *uis); +/* Set the result of a UI_STRING. */ +int UI_set_result(UI *ui, UI_STRING *uis, const char *result); +int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); + +/* A couple of popular utility functions */ +int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); +UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/ui_compat.h b/thrid-party/openssl/openssl/ui_compat.h new file mode 100644 index 000000000..bf541542c --- /dev/null +++ b/thrid-party/openssl/openssl/ui_compat.h @@ -0,0 +1,88 @@ +/* crypto/ui/ui.h */ +/* + * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project + * 2001. + */ +/* ==================================================================== + * Copyright (c) 2001 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifndef HEADER_UI_COMPAT_H +# define HEADER_UI_COMPAT_H + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The following functions were previously part of the DES section, and are + * provided here for backward compatibility reasons. + */ + +# define des_read_pw_string(b,l,p,v) \ + _ossl_old_des_read_pw_string((b),(l),(p),(v)) +# define des_read_pw(b,bf,s,p,v) \ + _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) + +int _ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int _ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/uierr.h b/thrid-party/openssl/openssl/uierr.h new file mode 100644 index 000000000..bd68864d0 --- /dev/null +++ b/thrid-party/openssl/openssl/uierr.h @@ -0,0 +1,65 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_UIERR_H +# define HEADER_UIERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_UI_strings(void); + +/* + * UI function codes. + */ +# define UI_F_CLOSE_CONSOLE 115 +# define UI_F_ECHO_CONSOLE 116 +# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 +# define UI_F_GENERAL_ALLOCATE_PROMPT 109 +# define UI_F_NOECHO_CONSOLE 117 +# define UI_F_OPEN_CONSOLE 114 +# define UI_F_UI_CONSTRUCT_PROMPT 121 +# define UI_F_UI_CREATE_METHOD 112 +# define UI_F_UI_CTRL 111 +# define UI_F_UI_DUP_ERROR_STRING 101 +# define UI_F_UI_DUP_INFO_STRING 102 +# define UI_F_UI_DUP_INPUT_BOOLEAN 110 +# define UI_F_UI_DUP_INPUT_STRING 103 +# define UI_F_UI_DUP_USER_DATA 118 +# define UI_F_UI_DUP_VERIFY_STRING 106 +# define UI_F_UI_GET0_RESULT 107 +# define UI_F_UI_GET_RESULT_LENGTH 119 +# define UI_F_UI_NEW_METHOD 104 +# define UI_F_UI_PROCESS 113 +# define UI_F_UI_SET_RESULT 105 +# define UI_F_UI_SET_RESULT_EX 120 + +/* + * UI reason codes. + */ +# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 +# define UI_R_INDEX_TOO_LARGE 102 +# define UI_R_INDEX_TOO_SMALL 103 +# define UI_R_NO_RESULT_BUFFER 105 +# define UI_R_PROCESSING_ERROR 107 +# define UI_R_RESULT_TOO_LARGE 100 +# define UI_R_RESULT_TOO_SMALL 101 +# define UI_R_SYSASSIGN_ERROR 109 +# define UI_R_SYSDASSGN_ERROR 110 +# define UI_R_SYSQIOW_ERROR 111 +# define UI_R_UNKNOWN_CONTROL_COMMAND 106 +# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 +# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 + +#endif diff --git a/thrid-party/openssl/openssl/whrlpool.h b/thrid-party/openssl/openssl/whrlpool.h new file mode 100644 index 000000000..20ea3503b --- /dev/null +++ b/thrid-party/openssl/openssl/whrlpool.h @@ -0,0 +1,48 @@ +/* + * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_WHRLPOOL_H +# define HEADER_WHRLPOOL_H + +#include + +# ifndef OPENSSL_NO_WHIRLPOOL +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +# define WHIRLPOOL_DIGEST_LENGTH (512/8) +# define WHIRLPOOL_BBLOCK 512 +# define WHIRLPOOL_COUNTER (256/8) + +typedef struct { + union { + unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; + /* double q is here to ensure 64-bit alignment */ + double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; + } H; + unsigned char data[WHIRLPOOL_BBLOCK / 8]; + unsigned int bitoff; + size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; +} WHIRLPOOL_CTX; + +int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); +int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); +void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); +int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); +unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/thrid-party/openssl/openssl/x509.h b/thrid-party/openssl/openssl/x509.h new file mode 100644 index 000000000..39ca0ba57 --- /dev/null +++ b/thrid-party/openssl/openssl/x509.h @@ -0,0 +1,1047 @@ +/* + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509_H +# define HEADER_X509_H + +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# if OPENSSL_API_COMPAT < 0x10100000L +# include +# include +# include +# endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Flags for X509_get_signature_info() */ +/* Signature info is valid */ +# define X509_SIG_INFO_VALID 0x1 +/* Signature is suitable for TLS use */ +# define X509_SIG_INFO_TLS 0x2 + +# define X509_FILETYPE_PEM 1 +# define X509_FILETYPE_ASN1 2 +# define X509_FILETYPE_DEFAULT 3 + +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 +# define X509v3_KU_NON_REPUDIATION 0x0040 +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 +# define X509v3_KU_KEY_AGREEMENT 0x0008 +# define X509v3_KU_KEY_CERT_SIGN 0x0004 +# define X509v3_KU_CRL_SIGN 0x0002 +# define X509v3_KU_ENCIPHER_ONLY 0x0001 +# define X509v3_KU_DECIPHER_ONLY 0x8000 +# define X509v3_KU_UNDEF 0xffff + +struct X509_algor_st { + ASN1_OBJECT *algorithm; + ASN1_TYPE *parameter; +} /* X509_ALGOR */ ; + +typedef STACK_OF(X509_ALGOR) X509_ALGORS; + +typedef struct X509_val_st { + ASN1_TIME *notBefore; + ASN1_TIME *notAfter; +} X509_VAL; + +typedef struct X509_sig_st X509_SIG; + +typedef struct X509_name_entry_st X509_NAME_ENTRY; + +DEFINE_STACK_OF(X509_NAME_ENTRY) + +DEFINE_STACK_OF(X509_NAME) + +# define X509_EX_V_NETSCAPE_HACK 0x8000 +# define X509_EX_V_INIT 0x0001 +typedef struct X509_extension_st X509_EXTENSION; + +typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; + +DEFINE_STACK_OF(X509_EXTENSION) + +typedef struct x509_attributes_st X509_ATTRIBUTE; + +DEFINE_STACK_OF(X509_ATTRIBUTE) + +typedef struct X509_req_info_st X509_REQ_INFO; + +typedef struct X509_req_st X509_REQ; + +typedef struct x509_cert_aux_st X509_CERT_AUX; + +typedef struct x509_cinf_st X509_CINF; + +DEFINE_STACK_OF(X509) + +/* This is used for a table of trust checking functions */ + +typedef struct x509_trust_st { + int trust; + int flags; + int (*check_trust) (struct x509_trust_st *, X509 *, int); + char *name; + int arg1; + void *arg2; +} X509_TRUST; + +DEFINE_STACK_OF(X509_TRUST) + +/* standard trust ids */ + +# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ + +# define X509_TRUST_COMPAT 1 +# define X509_TRUST_SSL_CLIENT 2 +# define X509_TRUST_SSL_SERVER 3 +# define X509_TRUST_EMAIL 4 +# define X509_TRUST_OBJECT_SIGN 5 +# define X509_TRUST_OCSP_SIGN 6 +# define X509_TRUST_OCSP_REQUEST 7 +# define X509_TRUST_TSA 8 + +/* Keep these up to date! */ +# define X509_TRUST_MIN 1 +# define X509_TRUST_MAX 8 + +/* trust_flags values */ +# define X509_TRUST_DYNAMIC (1U << 0) +# define X509_TRUST_DYNAMIC_NAME (1U << 1) +/* No compat trust if self-signed, preempts "DO_SS" */ +# define X509_TRUST_NO_SS_COMPAT (1U << 2) +/* Compat trust if no explicit accepted trust EKUs */ +# define X509_TRUST_DO_SS_COMPAT (1U << 3) +/* Accept "anyEKU" as a wildcard trust OID */ +# define X509_TRUST_OK_ANY_EKU (1U << 4) + +/* check_trust return codes */ + +# define X509_TRUST_TRUSTED 1 +# define X509_TRUST_REJECTED 2 +# define X509_TRUST_UNTRUSTED 3 + +/* Flags for X509_print_ex() */ + +# define X509_FLAG_COMPAT 0 +# define X509_FLAG_NO_HEADER 1L +# define X509_FLAG_NO_VERSION (1L << 1) +# define X509_FLAG_NO_SERIAL (1L << 2) +# define X509_FLAG_NO_SIGNAME (1L << 3) +# define X509_FLAG_NO_ISSUER (1L << 4) +# define X509_FLAG_NO_VALIDITY (1L << 5) +# define X509_FLAG_NO_SUBJECT (1L << 6) +# define X509_FLAG_NO_PUBKEY (1L << 7) +# define X509_FLAG_NO_EXTENSIONS (1L << 8) +# define X509_FLAG_NO_SIGDUMP (1L << 9) +# define X509_FLAG_NO_AUX (1L << 10) +# define X509_FLAG_NO_ATTRIBUTES (1L << 11) +# define X509_FLAG_NO_IDS (1L << 12) + +/* Flags specific to X509_NAME_print_ex() */ + +/* The field separator information */ + +# define XN_FLAG_SEP_MASK (0xf << 16) + +# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ +# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ +# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ +# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ +# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ + +# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ + +/* How the field name is shown */ + +# define XN_FLAG_FN_MASK (0x3 << 21) + +# define XN_FLAG_FN_SN 0/* Object short name */ +# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ +# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ +# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ + +# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ + +/* + * This determines if we dump fields we don't recognise: RFC2253 requires + * this. + */ + +# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) + +# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 + * characters */ + +/* Complete set of RFC2253 flags */ + +# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ + XN_FLAG_SEP_COMMA_PLUS | \ + XN_FLAG_DN_REV | \ + XN_FLAG_FN_SN | \ + XN_FLAG_DUMP_UNKNOWN_FIELDS) + +/* readable oneline form */ + +# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ + ASN1_STRFLGS_ESC_QUOTE | \ + XN_FLAG_SEP_CPLUS_SPC | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_SN) + +/* readable multiline form */ + +# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + XN_FLAG_SEP_MULTILINE | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_LN | \ + XN_FLAG_FN_ALIGN) + +DEFINE_STACK_OF(X509_REVOKED) + +typedef struct X509_crl_info_st X509_CRL_INFO; + +DEFINE_STACK_OF(X509_CRL) + +typedef struct private_key_st { + int version; + /* The PKCS#8 data types */ + X509_ALGOR *enc_algor; + ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ + /* When decrypted, the following will not be NULL */ + EVP_PKEY *dec_pkey; + /* used to encrypt and decrypt */ + int key_length; + char *key_data; + int key_free; /* true if we should auto free key_data */ + /* expanded version of 'enc_algor' */ + EVP_CIPHER_INFO cipher; +} X509_PKEY; + +typedef struct X509_info_st { + X509 *x509; + X509_CRL *crl; + X509_PKEY *x_pkey; + EVP_CIPHER_INFO enc_cipher; + int enc_len; + char *enc_data; +} X509_INFO; + +DEFINE_STACK_OF(X509_INFO) + +/* + * The next 2 structures and their 8 routines are used to manipulate Netscape's + * spki structures - useful if you are writing a CA web page + */ +typedef struct Netscape_spkac_st { + X509_PUBKEY *pubkey; + ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ +} NETSCAPE_SPKAC; + +typedef struct Netscape_spki_st { + NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ + X509_ALGOR sig_algor; + ASN1_BIT_STRING *signature; +} NETSCAPE_SPKI; + +/* Netscape certificate sequence structure */ +typedef struct Netscape_certificate_sequence { + ASN1_OBJECT *type; + STACK_OF(X509) *certs; +} NETSCAPE_CERT_SEQUENCE; + +/*- Unused (and iv length is wrong) +typedef struct CBCParameter_st + { + unsigned char iv[8]; + } CBC_PARAM; +*/ + +/* Password based encryption structure */ + +typedef struct PBEPARAM_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; +} PBEPARAM; + +/* Password based encryption V2 structures */ + +typedef struct PBE2PARAM_st { + X509_ALGOR *keyfunc; + X509_ALGOR *encryption; +} PBE2PARAM; + +typedef struct PBKDF2PARAM_st { +/* Usually OCTET STRING but could be anything */ + ASN1_TYPE *salt; + ASN1_INTEGER *iter; + ASN1_INTEGER *keylength; + X509_ALGOR *prf; +} PBKDF2PARAM; + +#ifndef OPENSSL_NO_SCRYPT +typedef struct SCRYPT_PARAMS_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *costParameter; + ASN1_INTEGER *blockSize; + ASN1_INTEGER *parallelizationParameter; + ASN1_INTEGER *keyLength; +} SCRYPT_PARAMS; +#endif + +#ifdef __cplusplus +} +#endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define X509_EXT_PACK_UNKNOWN 1 +# define X509_EXT_PACK_STRING 2 + +# define X509_extract_key(x) X509_get_pubkey(x)/*****/ +# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) +# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) + +void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); +X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), + int (*crl_free) (X509_CRL *crl), + int (*crl_lookup) (X509_CRL *crl, + X509_REVOKED **ret, + ASN1_INTEGER *ser, + X509_NAME *issuer), + int (*crl_verify) (X509_CRL *crl, + EVP_PKEY *pk)); +void X509_CRL_METHOD_free(X509_CRL_METHOD *m); + +void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); +void *X509_CRL_get_meth_data(X509_CRL *crl); + +const char *X509_verify_cert_error_string(long n); + +int X509_verify(X509 *a, EVP_PKEY *r); + +int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); +int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); +int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); + +NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); +char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); +EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); +int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); + +int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); + +int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); +int X509_signature_print(BIO *bp, const X509_ALGOR *alg, + const ASN1_STRING *sig); + +int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +# ifndef OPENSSL_NO_OCSP +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); +# endif +int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); +int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +# ifndef OPENSSL_NO_OCSP +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); +# endif +int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); + +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); + +# ifndef OPENSSL_NO_STDIO +X509 *d2i_X509_fp(FILE *fp, X509 **x509); +int i2d_X509_fp(FILE *fp, X509 *x509); +X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); +int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); +int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); +int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); +int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); +DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); +int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); +int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); +int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); +int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); +int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); +int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); +# endif + +X509 *d2i_X509_bio(BIO *bp, X509 **x509); +int i2d_X509_bio(BIO *bp, X509 *x509); +X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); +int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); +int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); +# ifndef OPENSSL_NO_RSA +RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); +int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); +# endif +# ifndef OPENSSL_NO_DSA +DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); +int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); +DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); +int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +# endif +# ifndef OPENSSL_NO_EC +EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); +int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); +int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); +# endif +X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); +int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); +int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); +int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); + +X509 *X509_dup(X509 *x509); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); +X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); +X509_CRL *X509_CRL_dup(X509_CRL *crl); +X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); +X509_REQ *X509_REQ_dup(X509_REQ *req); +X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); +int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, + void *pval); +void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, + const void **ppval, const X509_ALGOR *algor); +void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); +int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); + +X509_NAME *X509_NAME_dup(X509_NAME *xn); +X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); + +int X509_cmp_time(const ASN1_TIME *s, time_t *t); +int X509_cmp_current_time(const ASN1_TIME *s); +ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); +ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, + int offset_day, long offset_sec, time_t *t); +ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); + +const char *X509_get_default_cert_area(void); +const char *X509_get_default_cert_dir(void); +const char *X509_get_default_cert_file(void); +const char *X509_get_default_cert_dir_env(void); +const char *X509_get_default_cert_file_env(void); +const char *X509_get_default_private_dir(void); + +X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); + +DECLARE_ASN1_FUNCTIONS(X509_ALGOR) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) +DECLARE_ASN1_FUNCTIONS(X509_VAL) + +DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) + +int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); +EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); +int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); +long X509_get_pathlen(X509 *x); +int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); +EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); +# ifndef OPENSSL_NO_RSA +int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); +RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_DSA +int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); +DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); +# endif +# ifndef OPENSSL_NO_EC +int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); +EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); +# endif + +DECLARE_ASN1_FUNCTIONS(X509_SIG) +void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, + const ASN1_OCTET_STRING **pdigest); +void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, + ASN1_OCTET_STRING **pdigest); + +DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) +DECLARE_ASN1_FUNCTIONS(X509_REQ) + +DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); + +DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) + +DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) + +DECLARE_ASN1_FUNCTIONS(X509_NAME) + +int X509_NAME_set(X509_NAME **xn, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(X509_CINF) + +DECLARE_ASN1_FUNCTIONS(X509) +DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) + +#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) +int X509_set_ex_data(X509 *r, int idx, void *arg); +void *X509_get_ex_data(X509 *r, int idx); +int i2d_X509_AUX(X509 *a, unsigned char **pp); +X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); + +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); + +int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, + int *secbits, uint32_t *flags); +void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, + int secbits, uint32_t flags); + +int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, + uint32_t *flags); + +void X509_get0_signature(const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg, const X509 *x); +int X509_get_signature_nid(const X509 *x); + +int X509_trusted(const X509 *x); +int X509_alias_set1(X509 *x, const unsigned char *name, int len); +int X509_keyid_set1(X509 *x, const unsigned char *id, int len); +unsigned char *X509_alias_get0(X509 *x, int *len); +unsigned char *X509_keyid_get0(X509 *x, int *len); +int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, + int); +int X509_TRUST_set(int *t, int trust); +int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); +void X509_trust_clear(X509 *x); +void X509_reject_clear(X509 *x); + +STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); +STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); + +DECLARE_ASN1_FUNCTIONS(X509_REVOKED) +DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) +DECLARE_ASN1_FUNCTIONS(X509_CRL) + +int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); +int X509_CRL_get0_by_serial(X509_CRL *crl, + X509_REVOKED **ret, ASN1_INTEGER *serial); +int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); + +X509_PKEY *X509_PKEY_new(void); +void X509_PKEY_free(X509_PKEY *a); + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) + +X509_INFO *X509_INFO_new(void); +void X509_INFO_free(X509_INFO *a); +char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); + +int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); + +int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, + unsigned char *md, unsigned int *len); + +int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + char *data, EVP_PKEY *pkey, const EVP_MD *type); + +int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, + unsigned char *md, unsigned int *len); + +int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); + +int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, + EVP_PKEY *pkey, const EVP_MD *type); +int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + void *asn, EVP_MD_CTX *ctx); + +long X509_get_version(const X509 *x); +int X509_set_version(X509 *x, long version); +int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); +ASN1_INTEGER *X509_get_serialNumber(X509 *x); +const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); +int X509_set_issuer_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_issuer_name(const X509 *a); +int X509_set_subject_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_subject_name(const X509 *a); +const ASN1_TIME * X509_get0_notBefore(const X509 *x); +ASN1_TIME *X509_getm_notBefore(const X509 *x); +int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); +const ASN1_TIME *X509_get0_notAfter(const X509 *x); +ASN1_TIME *X509_getm_notAfter(const X509 *x); +int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); +int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +int X509_up_ref(X509 *x); +int X509_get_signature_type(const X509 *x); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_get_notBefore X509_getm_notBefore +# define X509_get_notAfter X509_getm_notAfter +# define X509_set_notBefore X509_set1_notBefore +# define X509_set_notAfter X509_set1_notAfter +#endif + + +/* + * This one is only used so that a binary form can output, as in + * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) + */ +X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); +const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); +void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, + const ASN1_BIT_STRING **psuid); +const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); + +EVP_PKEY *X509_get0_pubkey(const X509 *x); +EVP_PKEY *X509_get_pubkey(X509 *x); +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); +int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); + +long X509_REQ_get_version(const X509_REQ *req); +int X509_REQ_set_version(X509_REQ *x, long version); +X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); +int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); +void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_REQ_get_signature_nid(const X509_REQ *req); +int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); +int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); +EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); +int X509_REQ_extension_nid(int nid); +int *X509_REQ_get_extension_nids(void); +void X509_REQ_set_extension_nids(int *nids); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, + int nid); +int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); +int X509_REQ_get_attr_count(const X509_REQ *req); +int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); +X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); +int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); +int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_NID(X509_REQ *req, + int nid, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_txt(X509_REQ *req, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_CRL_set_version(X509_CRL *x, long version); +int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); +int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_sort(X509_CRL *crl); +int X509_CRL_up_ref(X509_CRL *crl); + +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate +# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate +#endif + +long X509_CRL_get_version(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); +DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)) +DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) +X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); +const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); +STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); +void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_CRL_get_signature_nid(const X509_CRL *crl); +int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); + +const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); +int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); +int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); +const STACK_OF(X509_EXTENSION) * +X509_REVOKED_get0_extensions(const X509_REVOKED *r); + +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); + +int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); + +int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, STACK_OF(X509) *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); + +int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_and_serial_hash(X509 *a); + +int X509_issuer_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_name_hash(X509 *a); + +int X509_subject_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_subject_name_hash(X509 *x); + +# ifndef OPENSSL_NO_MD5 +unsigned long X509_issuer_name_hash_old(X509 *a); +unsigned long X509_subject_name_hash_old(X509 *x); +# endif + +int X509_cmp(const X509 *a, const X509 *b); +int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); +unsigned long X509_NAME_hash(X509_NAME *x); +unsigned long X509_NAME_hash_old(X509_NAME *x); + +int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); +int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); +int X509_aux_print(BIO *out, X509 *x, int indent); +# ifndef OPENSSL_NO_STDIO +int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print_fp(FILE *bp, X509 *x); +int X509_CRL_print_fp(FILE *bp, X509_CRL *x); +int X509_REQ_print_fp(FILE *bp, X509_REQ *req); +int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, + unsigned long flags); +# endif + +int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, + unsigned long flags); +int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print(BIO *bp, X509 *x); +int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); +int X509_CRL_print(BIO *bp, X509_CRL *x); +int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, + unsigned long cflag); +int X509_REQ_print(BIO *bp, X509_REQ *req); + +int X509_NAME_entry_count(const X509_NAME *name); +int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); +int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, + char *buf, int len); + +/* + * NOTE: you should be passing -1, not 0 as lastpos. The functions that use + * lastpos, search after that position on. + */ +int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); +int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, + int lastpos); +X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); +int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, + int loc, int set); +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len, int loc, + int set); +int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, + const char *field, int type, + const unsigned char *bytes, + int len); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, + int type, + const unsigned char *bytes, + int len); +int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, + int len); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, + const unsigned char *bytes, int len); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); +ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); +int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); + +int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, + size_t *pderlen); + +int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); +int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, + int nid, int lastpos); +int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, + const ASN1_OBJECT *obj, int lastpos); +int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, + int crit, int lastpos); +X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); +X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, + X509_EXTENSION *ex, int loc); + +int X509_get_ext_count(const X509 *x); +int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(const X509 *x, int loc); +X509_EXTENSION *X509_delete_ext(X509 *x, int loc); +int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); +void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); +int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_CRL_get_ext_count(const X509_CRL *x); +int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); +X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); +int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); +void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); +int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_REVOKED_get_ext_count(const X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, + int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); +X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); +void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, + int *idx); +int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, + unsigned long flags); + +X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, + int nid, int crit, + ASN1_OCTET_STRING *data); +X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, + const ASN1_OBJECT *obj, int crit, + ASN1_OCTET_STRING *data); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); +int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); +int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); +ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); +ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); +int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); + +int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); +int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, + int lastpos); +int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, + const ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); +X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, + X509_ATTRIBUTE *attr); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) + **x, const ASN1_OBJECT *obj, + int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) + **x, int nid, int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) + **x, const char *attrname, + int type, + const unsigned char *bytes, + int len); +void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, + const ASN1_OBJECT *obj, int lastpos, int type); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, + const ASN1_OBJECT *obj, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, + const char *atrname, int type, + const unsigned char *bytes, + int len); +int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); +int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, + const void *data, int len); +void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, + void *data); +int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); +ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); +ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); + +int EVP_PKEY_get_attr_count(const EVP_PKEY *key); +int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); +X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); +int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); +int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, + int nid, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, + const char *attrname, int type, + const unsigned char *bytes, int len); + +int X509_verify_cert(X509_STORE_CTX *ctx); + +/* lookup a cert from a X509 STACK */ +X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, + ASN1_INTEGER *serial); +X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(PBEPARAM) +DECLARE_ASN1_FUNCTIONS(PBE2PARAM) +DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) +#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) +#endif + +int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen); + +X509_ALGOR *PKCS5_pbe_set(int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid); + +#ifndef OPENSSL_NO_SCRYPT +X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, + const unsigned char *salt, int saltlen, + unsigned char *aiv, uint64_t N, uint64_t r, + uint64_t p); +#endif + +X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen); + +/* PKCS#8 utilities */ + +DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) + +EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); + +int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, + int version, int ptype, void *pval, + unsigned char *penc, int penclen); +int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); + +const STACK_OF(X509_ATTRIBUTE) * +PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); +int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, + const unsigned char *bytes, int len); + +int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, + int ptype, void *pval, + unsigned char *penc, int penclen); +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, X509_PUBKEY *pub); + +int X509_check_trust(X509 *x, int id, int flags); +int X509_TRUST_get_count(void); +X509_TRUST *X509_TRUST_get0(int idx); +int X509_TRUST_get_by_id(int id); +int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), + const char *name, int arg1, void *arg2); +void X509_TRUST_cleanup(void); +int X509_TRUST_get_flags(const X509_TRUST *xp); +char *X509_TRUST_get0_name(const X509_TRUST *xp); +int X509_TRUST_get_trust(const X509_TRUST *xp); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/x509_vfy.h b/thrid-party/openssl/openssl/x509_vfy.h new file mode 100644 index 000000000..adb8bce7c --- /dev/null +++ b/thrid-party/openssl/openssl/x509_vfy.h @@ -0,0 +1,628 @@ +/* + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509_VFY_H +# define HEADER_X509_VFY_H + +/* + * Protect against recursion, x509.h and x509_vfy.h each include the other. + */ +# ifndef HEADER_X509_H +# include +# endif + +# include +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/*- +SSL_CTX -> X509_STORE + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + +SSL -> X509_STORE_CTX + ->X509_STORE + +The X509_STORE holds the tables etc for verification stuff. +A X509_STORE_CTX is used while validating a single certificate. +The X509_STORE has X509_LOOKUPs for looking up certs. +The X509_STORE then calls a function to actually verify the +certificate chain. +*/ + +typedef enum { + X509_LU_NONE = 0, + X509_LU_X509, X509_LU_CRL +} X509_LOOKUP_TYPE; + +#if OPENSSL_API_COMPAT < 0x10100000L +#define X509_LU_RETRY -1 +#define X509_LU_FAIL 0 +#endif + +DEFINE_STACK_OF(X509_LOOKUP) +DEFINE_STACK_OF(X509_OBJECT) +DEFINE_STACK_OF(X509_VERIFY_PARAM) + +int X509_STORE_set_depth(X509_STORE *store, int depth); + +typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, + X509_STORE_CTX *ctx, X509 *x); +typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, + X509 *x, X509 *issuer); +typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); +typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL **crl, X509 *x); +typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); +typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL *crl, X509 *x); +typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); +typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); + + +void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); + +# define X509_STORE_CTX_set_app_data(ctx,data) \ + X509_STORE_CTX_set_ex_data(ctx,0,data) +# define X509_STORE_CTX_get_app_data(ctx) \ + X509_STORE_CTX_get_ex_data(ctx,0) + +# define X509_L_FILE_LOAD 1 +# define X509_L_ADD_DIR 2 + +# define X509_LOOKUP_load_file(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) + +# define X509_LOOKUP_add_dir(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) + +# define X509_V_OK 0 +# define X509_V_ERR_UNSPECIFIED 1 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 +# define X509_V_ERR_UNABLE_TO_GET_CRL 3 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 +# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 +# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 +# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 +# define X509_V_ERR_CERT_NOT_YET_VALID 9 +# define X509_V_ERR_CERT_HAS_EXPIRED 10 +# define X509_V_ERR_CRL_NOT_YET_VALID 11 +# define X509_V_ERR_CRL_HAS_EXPIRED 12 +# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 +# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 +# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 +# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 +# define X509_V_ERR_OUT_OF_MEM 17 +# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 +# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 +# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 +# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 +# define X509_V_ERR_CERT_REVOKED 23 +# define X509_V_ERR_INVALID_CA 24 +# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 +# define X509_V_ERR_INVALID_PURPOSE 26 +# define X509_V_ERR_CERT_UNTRUSTED 27 +# define X509_V_ERR_CERT_REJECTED 28 +/* These are 'informational' when looking for issuer cert */ +# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 +# define X509_V_ERR_AKID_SKID_MISMATCH 30 +# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 +# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 +# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 +# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 +# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 +# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 +# define X509_V_ERR_INVALID_NON_CA 37 +# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 +# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 +# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 +# define X509_V_ERR_INVALID_EXTENSION 41 +# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 +# define X509_V_ERR_NO_EXPLICIT_POLICY 43 +# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 +# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 +# define X509_V_ERR_UNNESTED_RESOURCE 46 +# define X509_V_ERR_PERMITTED_VIOLATION 47 +# define X509_V_ERR_EXCLUDED_VIOLATION 48 +# define X509_V_ERR_SUBTREE_MINMAX 49 +/* The application is not happy */ +# define X509_V_ERR_APPLICATION_VERIFICATION 50 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 +# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 +# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 +/* Another issuer check debug option */ +# define X509_V_ERR_PATH_LOOP 55 +/* Suite B mode algorithm violation */ +# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 +# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 +# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 +# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 +# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 +# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 +/* Host, email and IP check errors */ +# define X509_V_ERR_HOSTNAME_MISMATCH 62 +# define X509_V_ERR_EMAIL_MISMATCH 63 +# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 +/* DANE TLSA errors */ +# define X509_V_ERR_DANE_NO_MATCH 65 +/* security level errors */ +# define X509_V_ERR_EE_KEY_TOO_SMALL 66 +# define X509_V_ERR_CA_KEY_TOO_SMALL 67 +# define X509_V_ERR_CA_MD_TOO_WEAK 68 +/* Caller error */ +# define X509_V_ERR_INVALID_CALL 69 +/* Issuer lookup error */ +# define X509_V_ERR_STORE_LOOKUP 70 +/* Certificate transparency */ +# define X509_V_ERR_NO_VALID_SCTS 71 + +# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 +/* OCSP status errors */ +# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ +# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ +# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ + +/* Certificate verify flags */ + +# if OPENSSL_API_COMPAT < 0x10100000L +# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ +# endif +/* Use check time instead of current time */ +# define X509_V_FLAG_USE_CHECK_TIME 0x2 +/* Lookup CRLs */ +# define X509_V_FLAG_CRL_CHECK 0x4 +/* Lookup CRLs for whole chain */ +# define X509_V_FLAG_CRL_CHECK_ALL 0x8 +/* Ignore unhandled critical extensions */ +# define X509_V_FLAG_IGNORE_CRITICAL 0x10 +/* Disable workarounds for broken certificates */ +# define X509_V_FLAG_X509_STRICT 0x20 +/* Enable proxy certificate validation */ +# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 +/* Enable policy checking */ +# define X509_V_FLAG_POLICY_CHECK 0x80 +/* Policy variable require-explicit-policy */ +# define X509_V_FLAG_EXPLICIT_POLICY 0x100 +/* Policy variable inhibit-any-policy */ +# define X509_V_FLAG_INHIBIT_ANY 0x200 +/* Policy variable inhibit-policy-mapping */ +# define X509_V_FLAG_INHIBIT_MAP 0x400 +/* Notify callback that policy is OK */ +# define X509_V_FLAG_NOTIFY_POLICY 0x800 +/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ +# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 +/* Delta CRL support */ +# define X509_V_FLAG_USE_DELTAS 0x2000 +/* Check self-signed CA signature */ +# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 +/* Use trusted store first */ +# define X509_V_FLAG_TRUSTED_FIRST 0x8000 +/* Suite B 128 bit only mode: not normally used */ +# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define X509_V_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define X509_V_FLAG_SUITEB_128_LOS 0x30000 +/* Allow partial chains if at least one certificate is in trusted store */ +# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 +/* + * If the initial chain is not trusted, do not attempt to build an alternative + * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag + * will force the behaviour to match that of previous versions. + */ +# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 +/* Do not check certificate/CRL validity against current time */ +# define X509_V_FLAG_NO_CHECK_TIME 0x200000 + +# define X509_VP_FLAG_DEFAULT 0x1 +# define X509_VP_FLAG_OVERWRITE 0x2 +# define X509_VP_FLAG_RESET_FLAGS 0x4 +# define X509_VP_FLAG_LOCKED 0x8 +# define X509_VP_FLAG_ONCE 0x10 + +/* Internal use: mask of policy related options */ +# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ + | X509_V_FLAG_EXPLICIT_POLICY \ + | X509_V_FLAG_INHIBIT_ANY \ + | X509_V_FLAG_INHIBIT_MAP) + +int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, + X509_LOOKUP_TYPE type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, + X509_OBJECT *x); +int X509_OBJECT_up_ref_count(X509_OBJECT *a); +X509_OBJECT *X509_OBJECT_new(void); +void X509_OBJECT_free(X509_OBJECT *a); +X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); +X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); +int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); +X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); +int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); +X509_STORE *X509_STORE_new(void); +void X509_STORE_free(X509_STORE *v); +int X509_STORE_lock(X509_STORE *ctx); +int X509_STORE_unlock(X509_STORE *ctx); +int X509_STORE_up_ref(X509_STORE *v); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *v); + +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); +STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); +int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); +int X509_STORE_set_trust(X509_STORE *ctx, int trust); +int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); + +void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +#define X509_STORE_set_verify_func(ctx, func) \ + X509_STORE_set_verify((ctx),(func)) +void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_fn verify); +X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); +void X509_STORE_set_verify_cb(X509_STORE *ctx, + X509_STORE_CTX_verify_cb verify_cb); +# define X509_STORE_set_verify_cb_func(ctx,func) \ + X509_STORE_set_verify_cb((ctx),(func)) +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); +void X509_STORE_set_get_issuer(X509_STORE *ctx, + X509_STORE_CTX_get_issuer_fn get_issuer); +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); +void X509_STORE_set_check_issued(X509_STORE *ctx, + X509_STORE_CTX_check_issued_fn check_issued); +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); +void X509_STORE_set_check_revocation(X509_STORE *ctx, + X509_STORE_CTX_check_revocation_fn check_revocation); +X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); +void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_CTX_get_crl_fn get_crl); +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); +void X509_STORE_set_check_crl(X509_STORE *ctx, + X509_STORE_CTX_check_crl_fn check_crl); +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); +void X509_STORE_set_cert_crl(X509_STORE *ctx, + X509_STORE_CTX_cert_crl_fn cert_crl); +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); +void X509_STORE_set_check_policy(X509_STORE *ctx, + X509_STORE_CTX_check_policy_fn check_policy); +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); +void X509_STORE_set_lookup_certs(X509_STORE *ctx, + X509_STORE_CTX_lookup_certs_fn lookup_certs); +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); +void X509_STORE_set_lookup_crls(X509_STORE *ctx, + X509_STORE_CTX_lookup_crls_fn lookup_crls); +#define X509_STORE_set_lookup_crls_cb(ctx, func) \ + X509_STORE_set_lookup_crls((ctx), (func)) +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); +void X509_STORE_set_cleanup(X509_STORE *ctx, + X509_STORE_CTX_cleanup_fn cleanup); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); + +#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) +int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); +void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); + +X509_STORE_CTX *X509_STORE_CTX_new(void); + +int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + +void X509_STORE_CTX_free(X509_STORE_CTX *ctx); +int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, + X509 *x509, STACK_OF(X509) *chain); +void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); + +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); +STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_cb verify); +X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); +X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); + +#if OPENSSL_API_COMPAT < 0x10100000L +# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain +# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted +# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack +# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject +# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs +# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls +/* the following macro is misspelled; use X509_STORE_get1_certs instead */ +# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs +/* the following macro is misspelled; use X509_STORE_get1_crls instead */ +# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls +#endif + +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD *X509_LOOKUP_file(void); + +typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + ASN1_INTEGER *serial, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const unsigned char* bytes, + int len, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const char *str, + int len, + X509_OBJECT *ret); + +X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); +void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, + int (*new_item) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, + void (*free_fn) (X509_LOOKUP *ctx)); +void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, + int (*init) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, + int (*shutdown) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, + X509_LOOKUP_ctrl_fn ctrl_fn); +X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_subject_fn fn); +X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_issuer_serial_fn fn); +X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_fingerprint_fn fn); +X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_alias_fn fn); +X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( + const X509_LOOKUP_METHOD *method); + + +int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); +int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); + +int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, + X509_LOOKUP_TYPE type, + X509_NAME *name); + +int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); + +int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); + +X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); +void X509_LOOKUP_free(X509_LOOKUP *ctx); +int X509_LOOKUP_init(X509_LOOKUP *ctx); +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, ASN1_INTEGER *serial, + X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const unsigned char *bytes, int len, + X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const char *str, int len, X509_OBJECT *ret); +int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); +void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); +X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); +int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); + +int X509_STORE_load_locations(X509_STORE *ctx, + const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *ctx); + +#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) +int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); +void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); +int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); +X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); +X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); +X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); +void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); +int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); +int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); +int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, + int purpose, int trust); +void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); +void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, + time_t t); + +X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); + +X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); +int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); + +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); +#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) + +/* X509_VERIFY_PARAM functions */ + +X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); +void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); +int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); +void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); +time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); +void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); +int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, + ASN1_OBJECT *policy); +int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, + STACK_OF(ASN1_OBJECT) *policies); + +int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, + uint32_t flags); +uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); + +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); + +int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); + +int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); +void X509_VERIFY_PARAM_table_cleanup(void); + +/* Non positive return values are errors */ +#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ +#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ +#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ + +/* + * Positive return values form a bit mask, all but the first are internal to + * the library and don't appear in results from X509_policy_check(). + */ +#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ +#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ +#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ + +int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, + STACK_OF(X509) *certs, + STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); + +void X509_policy_tree_free(X509_POLICY_TREE *tree); + +int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); +X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, + int i); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const + X509_POLICY_TREE + *tree); + +STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const + X509_POLICY_TREE + *tree); + +int X509_policy_level_node_count(X509_POLICY_LEVEL *level); + +X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, + int i); + +const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); + +STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const + X509_POLICY_NODE + *node); +const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE + *node); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thrid-party/openssl/openssl/x509err.h b/thrid-party/openssl/openssl/x509err.h new file mode 100644 index 000000000..027385317 --- /dev/null +++ b/thrid-party/openssl/openssl/x509err.h @@ -0,0 +1,130 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509ERR_H +# define HEADER_X509ERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_X509_strings(void); + +/* + * X509 function codes. + */ +# define X509_F_ADD_CERT_DIR 100 +# define X509_F_BUILD_CHAIN 106 +# define X509_F_BY_FILE_CTRL 101 +# define X509_F_CHECK_NAME_CONSTRAINTS 149 +# define X509_F_CHECK_POLICY 145 +# define X509_F_DANE_I2D 107 +# define X509_F_DIR_CTRL 102 +# define X509_F_GET_CERT_BY_SUBJECT 103 +# define X509_F_I2D_X509_AUX 151 +# define X509_F_LOOKUP_CERTS_SK 152 +# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 +# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 +# define X509_F_NEW_DIR 153 +# define X509_F_X509AT_ADD1_ATTR 135 +# define X509_F_X509V3_ADD_EXT 104 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 +# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 +# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 +# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 +# define X509_F_X509_CHECK_PRIVATE_KEY 128 +# define X509_F_X509_CRL_DIFF 105 +# define X509_F_X509_CRL_METHOD_NEW 154 +# define X509_F_X509_CRL_PRINT_FP 147 +# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 +# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 +# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 +# define X509_F_X509_LOAD_CERT_CRL_FILE 132 +# define X509_F_X509_LOAD_CERT_FILE 111 +# define X509_F_X509_LOAD_CRL_FILE 112 +# define X509_F_X509_LOOKUP_METH_NEW 160 +# define X509_F_X509_LOOKUP_NEW 155 +# define X509_F_X509_NAME_ADD_ENTRY 113 +# define X509_F_X509_NAME_CANON 156 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 +# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 +# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 +# define X509_F_X509_NAME_ONELINE 116 +# define X509_F_X509_NAME_PRINT 117 +# define X509_F_X509_OBJECT_NEW 150 +# define X509_F_X509_PRINT_EX_FP 118 +# define X509_F_X509_PUBKEY_DECODE 148 +# define X509_F_X509_PUBKEY_GET0 119 +# define X509_F_X509_PUBKEY_SET 120 +# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 +# define X509_F_X509_REQ_PRINT_EX 121 +# define X509_F_X509_REQ_PRINT_FP 122 +# define X509_F_X509_REQ_TO_X509 123 +# define X509_F_X509_STORE_ADD_CERT 124 +# define X509_F_X509_STORE_ADD_CRL 125 +# define X509_F_X509_STORE_ADD_LOOKUP 157 +# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 +# define X509_F_X509_STORE_CTX_INIT 143 +# define X509_F_X509_STORE_CTX_NEW 142 +# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 +# define X509_F_X509_STORE_NEW 158 +# define X509_F_X509_TO_X509_REQ 126 +# define X509_F_X509_TRUST_ADD 133 +# define X509_F_X509_TRUST_SET 141 +# define X509_F_X509_VERIFY_CERT 127 +# define X509_F_X509_VERIFY_PARAM_NEW 159 + +/* + * X509 reason codes. + */ +# define X509_R_AKID_MISMATCH 110 +# define X509_R_BAD_SELECTOR 133 +# define X509_R_BAD_X509_FILETYPE 100 +# define X509_R_BASE64_DECODE_ERROR 118 +# define X509_R_CANT_CHECK_DH_KEY 114 +# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 +# define X509_R_CRL_ALREADY_DELTA 127 +# define X509_R_CRL_VERIFY_FAILURE 131 +# define X509_R_IDP_MISMATCH 128 +# define X509_R_INVALID_ATTRIBUTES 138 +# define X509_R_INVALID_DIRECTORY 113 +# define X509_R_INVALID_FIELD_NAME 119 +# define X509_R_INVALID_TRUST 123 +# define X509_R_ISSUER_MISMATCH 129 +# define X509_R_KEY_TYPE_MISMATCH 115 +# define X509_R_KEY_VALUES_MISMATCH 116 +# define X509_R_LOADING_CERT_DIR 103 +# define X509_R_LOADING_DEFAULTS 104 +# define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NAME_TOO_LONG 134 +# define X509_R_NEWER_CRL_NOT_NEWER 132 +# define X509_R_NO_CERTIFICATE_FOUND 135 +# define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 136 +# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 +# define X509_R_NO_CRL_FOUND 137 +# define X509_R_NO_CRL_NUMBER 130 +# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 +# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 +# define X509_R_SHOULD_RETRY 106 +# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 +# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 +# define X509_R_UNKNOWN_KEY_TYPE 117 +# define X509_R_UNKNOWN_NID 109 +# define X509_R_UNKNOWN_PURPOSE_ID 121 +# define X509_R_UNKNOWN_TRUST_ID 120 +# define X509_R_UNSUPPORTED_ALGORITHM 111 +# define X509_R_WRONG_LOOKUP_TYPE 112 +# define X509_R_WRONG_TYPE 122 + +#endif diff --git a/thrid-party/openssl/openssl/x509v3.h b/thrid-party/openssl/openssl/x509v3.h new file mode 100644 index 000000000..6c6eca38a --- /dev/null +++ b/thrid-party/openssl/openssl/x509v3.h @@ -0,0 +1,937 @@ +/* + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509V3_H +# define HEADER_X509V3_H + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward reference */ +struct v3_ext_method; +struct v3_ext_ctx; + +/* Useful typedefs */ + +typedef void *(*X509V3_EXT_NEW)(void); +typedef void (*X509V3_EXT_FREE) (void *); +typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); +typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); +typedef STACK_OF(CONF_VALUE) * + (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, + STACK_OF(CONF_VALUE) *extlist); +typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, + STACK_OF(CONF_VALUE) *values); +typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, + void *ext); +typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); +typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, + BIO *out, int indent); +typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); + +/* V3 extension structure */ + +struct v3_ext_method { + int ext_nid; + int ext_flags; +/* If this is set the following four fields are ignored */ + ASN1_ITEM_EXP *it; +/* Old style ASN1 calls */ + X509V3_EXT_NEW ext_new; + X509V3_EXT_FREE ext_free; + X509V3_EXT_D2I d2i; + X509V3_EXT_I2D i2d; +/* The following pair is used for string extensions */ + X509V3_EXT_I2S i2s; + X509V3_EXT_S2I s2i; +/* The following pair is used for multi-valued extensions */ + X509V3_EXT_I2V i2v; + X509V3_EXT_V2I v2i; +/* The following are used for raw extensions */ + X509V3_EXT_I2R i2r; + X509V3_EXT_R2I r2i; + void *usr_data; /* Any extension specific data */ +}; + +typedef struct X509V3_CONF_METHOD_st { + char *(*get_string) (void *db, const char *section, const char *value); + STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); + void (*free_string) (void *db, char *string); + void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); +} X509V3_CONF_METHOD; + +/* Context specific info */ +struct v3_ext_ctx { +# define CTX_TEST 0x1 +# define X509V3_CTX_REPLACE 0x2 + int flags; + X509 *issuer_cert; + X509 *subject_cert; + X509_REQ *subject_req; + X509_CRL *crl; + X509V3_CONF_METHOD *db_meth; + void *db; +/* Maybe more here */ +}; + +typedef struct v3_ext_method X509V3_EXT_METHOD; + +DEFINE_STACK_OF(X509V3_EXT_METHOD) + +/* ext_flags values */ +# define X509V3_EXT_DYNAMIC 0x1 +# define X509V3_EXT_CTX_DEP 0x2 +# define X509V3_EXT_MULTILINE 0x4 + +typedef BIT_STRING_BITNAME ENUMERATED_NAMES; + +typedef struct BASIC_CONSTRAINTS_st { + int ca; + ASN1_INTEGER *pathlen; +} BASIC_CONSTRAINTS; + +typedef struct PKEY_USAGE_PERIOD_st { + ASN1_GENERALIZEDTIME *notBefore; + ASN1_GENERALIZEDTIME *notAfter; +} PKEY_USAGE_PERIOD; + +typedef struct otherName_st { + ASN1_OBJECT *type_id; + ASN1_TYPE *value; +} OTHERNAME; + +typedef struct EDIPartyName_st { + ASN1_STRING *nameAssigner; + ASN1_STRING *partyName; +} EDIPARTYNAME; + +typedef struct GENERAL_NAME_st { +# define GEN_OTHERNAME 0 +# define GEN_EMAIL 1 +# define GEN_DNS 2 +# define GEN_X400 3 +# define GEN_DIRNAME 4 +# define GEN_EDIPARTY 5 +# define GEN_URI 6 +# define GEN_IPADD 7 +# define GEN_RID 8 + int type; + union { + char *ptr; + OTHERNAME *otherName; /* otherName */ + ASN1_IA5STRING *rfc822Name; + ASN1_IA5STRING *dNSName; + ASN1_TYPE *x400Address; + X509_NAME *directoryName; + EDIPARTYNAME *ediPartyName; + ASN1_IA5STRING *uniformResourceIdentifier; + ASN1_OCTET_STRING *iPAddress; + ASN1_OBJECT *registeredID; + /* Old names */ + ASN1_OCTET_STRING *ip; /* iPAddress */ + X509_NAME *dirn; /* dirn */ + ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, + * uniformResourceIdentifier */ + ASN1_OBJECT *rid; /* registeredID */ + ASN1_TYPE *other; /* x400Address */ + } d; +} GENERAL_NAME; + +typedef struct ACCESS_DESCRIPTION_st { + ASN1_OBJECT *method; + GENERAL_NAME *location; +} ACCESS_DESCRIPTION; + +typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; + +typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; + +typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; + +DEFINE_STACK_OF(GENERAL_NAME) +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; +DEFINE_STACK_OF(GENERAL_NAMES) + +DEFINE_STACK_OF(ACCESS_DESCRIPTION) + +typedef struct DIST_POINT_NAME_st { + int type; + union { + GENERAL_NAMES *fullname; + STACK_OF(X509_NAME_ENTRY) *relativename; + } name; +/* If relativename then this contains the full distribution point name */ + X509_NAME *dpname; +} DIST_POINT_NAME; +/* All existing reasons */ +# define CRLDP_ALL_REASONS 0x807f + +# define CRL_REASON_NONE -1 +# define CRL_REASON_UNSPECIFIED 0 +# define CRL_REASON_KEY_COMPROMISE 1 +# define CRL_REASON_CA_COMPROMISE 2 +# define CRL_REASON_AFFILIATION_CHANGED 3 +# define CRL_REASON_SUPERSEDED 4 +# define CRL_REASON_CESSATION_OF_OPERATION 5 +# define CRL_REASON_CERTIFICATE_HOLD 6 +# define CRL_REASON_REMOVE_FROM_CRL 8 +# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 +# define CRL_REASON_AA_COMPROMISE 10 + +struct DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + GENERAL_NAMES *CRLissuer; + int dp_reasons; +}; + +typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; + +DEFINE_STACK_OF(DIST_POINT) + +struct AUTHORITY_KEYID_st { + ASN1_OCTET_STRING *keyid; + GENERAL_NAMES *issuer; + ASN1_INTEGER *serial; +}; + +/* Strong extranet structures */ + +typedef struct SXNET_ID_st { + ASN1_INTEGER *zone; + ASN1_OCTET_STRING *user; +} SXNETID; + +DEFINE_STACK_OF(SXNETID) + +typedef struct SXNET_st { + ASN1_INTEGER *version; + STACK_OF(SXNETID) *ids; +} SXNET; + +typedef struct NOTICEREF_st { + ASN1_STRING *organization; + STACK_OF(ASN1_INTEGER) *noticenos; +} NOTICEREF; + +typedef struct USERNOTICE_st { + NOTICEREF *noticeref; + ASN1_STRING *exptext; +} USERNOTICE; + +typedef struct POLICYQUALINFO_st { + ASN1_OBJECT *pqualid; + union { + ASN1_IA5STRING *cpsuri; + USERNOTICE *usernotice; + ASN1_TYPE *other; + } d; +} POLICYQUALINFO; + +DEFINE_STACK_OF(POLICYQUALINFO) + +typedef struct POLICYINFO_st { + ASN1_OBJECT *policyid; + STACK_OF(POLICYQUALINFO) *qualifiers; +} POLICYINFO; + +typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; + +DEFINE_STACK_OF(POLICYINFO) + +typedef struct POLICY_MAPPING_st { + ASN1_OBJECT *issuerDomainPolicy; + ASN1_OBJECT *subjectDomainPolicy; +} POLICY_MAPPING; + +DEFINE_STACK_OF(POLICY_MAPPING) + +typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; + +typedef struct GENERAL_SUBTREE_st { + GENERAL_NAME *base; + ASN1_INTEGER *minimum; + ASN1_INTEGER *maximum; +} GENERAL_SUBTREE; + +DEFINE_STACK_OF(GENERAL_SUBTREE) + +struct NAME_CONSTRAINTS_st { + STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; + STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; +}; + +typedef struct POLICY_CONSTRAINTS_st { + ASN1_INTEGER *requireExplicitPolicy; + ASN1_INTEGER *inhibitPolicyMapping; +} POLICY_CONSTRAINTS; + +/* Proxy certificate structures, see RFC 3820 */ +typedef struct PROXY_POLICY_st { + ASN1_OBJECT *policyLanguage; + ASN1_OCTET_STRING *policy; +} PROXY_POLICY; + +typedef struct PROXY_CERT_INFO_EXTENSION_st { + ASN1_INTEGER *pcPathLengthConstraint; + PROXY_POLICY *proxyPolicy; +} PROXY_CERT_INFO_EXTENSION; + +DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) +DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) + +struct ISSUING_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + int onlyuser; + int onlyCA; + ASN1_BIT_STRING *onlysomereasons; + int indirectCRL; + int onlyattr; +}; + +/* Values in idp_flags field */ +/* IDP present */ +# define IDP_PRESENT 0x1 +/* IDP values inconsistent */ +# define IDP_INVALID 0x2 +/* onlyuser true */ +# define IDP_ONLYUSER 0x4 +/* onlyCA true */ +# define IDP_ONLYCA 0x8 +/* onlyattr true */ +# define IDP_ONLYATTR 0x10 +/* indirectCRL true */ +# define IDP_INDIRECT 0x20 +/* onlysomereasons present */ +# define IDP_REASONS 0x40 + +# define X509V3_conf_err(val) ERR_add_error_data(6, \ + "section:", (val)->section, \ + ",name:", (val)->name, ",value:", (val)->value) + +# define X509V3_set_ctx_test(ctx) \ + X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) +# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; + +# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ + 0,0,0,0, \ + 0,0, \ + (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ + (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ + NULL, NULL, \ + table} + +# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ + 0,0,0,0, \ + (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ + (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ + 0,0,0,0, \ + NULL} + +# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +/* X509_PURPOSE stuff */ + +# define EXFLAG_BCONS 0x1 +# define EXFLAG_KUSAGE 0x2 +# define EXFLAG_XKUSAGE 0x4 +# define EXFLAG_NSCERT 0x8 + +# define EXFLAG_CA 0x10 +/* Really self issued not necessarily self signed */ +# define EXFLAG_SI 0x20 +# define EXFLAG_V1 0x40 +# define EXFLAG_INVALID 0x80 +/* EXFLAG_SET is set to indicate that some values have been precomputed */ +# define EXFLAG_SET 0x100 +# define EXFLAG_CRITICAL 0x200 +# define EXFLAG_PROXY 0x400 + +# define EXFLAG_INVALID_POLICY 0x800 +# define EXFLAG_FRESHEST 0x1000 +/* Self signed */ +# define EXFLAG_SS 0x2000 + +# define KU_DIGITAL_SIGNATURE 0x0080 +# define KU_NON_REPUDIATION 0x0040 +# define KU_KEY_ENCIPHERMENT 0x0020 +# define KU_DATA_ENCIPHERMENT 0x0010 +# define KU_KEY_AGREEMENT 0x0008 +# define KU_KEY_CERT_SIGN 0x0004 +# define KU_CRL_SIGN 0x0002 +# define KU_ENCIPHER_ONLY 0x0001 +# define KU_DECIPHER_ONLY 0x8000 + +# define NS_SSL_CLIENT 0x80 +# define NS_SSL_SERVER 0x40 +# define NS_SMIME 0x20 +# define NS_OBJSIGN 0x10 +# define NS_SSL_CA 0x04 +# define NS_SMIME_CA 0x02 +# define NS_OBJSIGN_CA 0x01 +# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) + +# define XKU_SSL_SERVER 0x1 +# define XKU_SSL_CLIENT 0x2 +# define XKU_SMIME 0x4 +# define XKU_CODE_SIGN 0x8 +# define XKU_SGC 0x10 +# define XKU_OCSP_SIGN 0x20 +# define XKU_TIMESTAMP 0x40 +# define XKU_DVCS 0x80 +# define XKU_ANYEKU 0x100 + +# define X509_PURPOSE_DYNAMIC 0x1 +# define X509_PURPOSE_DYNAMIC_NAME 0x2 + +typedef struct x509_purpose_st { + int purpose; + int trust; /* Default trust ID */ + int flags; + int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); + char *name; + char *sname; + void *usr_data; +} X509_PURPOSE; + +# define X509_PURPOSE_SSL_CLIENT 1 +# define X509_PURPOSE_SSL_SERVER 2 +# define X509_PURPOSE_NS_SSL_SERVER 3 +# define X509_PURPOSE_SMIME_SIGN 4 +# define X509_PURPOSE_SMIME_ENCRYPT 5 +# define X509_PURPOSE_CRL_SIGN 6 +# define X509_PURPOSE_ANY 7 +# define X509_PURPOSE_OCSP_HELPER 8 +# define X509_PURPOSE_TIMESTAMP_SIGN 9 + +# define X509_PURPOSE_MIN 1 +# define X509_PURPOSE_MAX 9 + +/* Flags for X509V3_EXT_print() */ + +# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) +/* Return error for unknown extensions */ +# define X509V3_EXT_DEFAULT 0 +/* Print error for unknown extensions */ +# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) +/* ASN1 parse unknown extensions */ +# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) +/* BIO_dump unknown extensions */ +# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) + +/* Flags for X509V3_add1_i2d */ + +# define X509V3_ADD_OP_MASK 0xfL +# define X509V3_ADD_DEFAULT 0L +# define X509V3_ADD_APPEND 1L +# define X509V3_ADD_REPLACE 2L +# define X509V3_ADD_REPLACE_EXISTING 3L +# define X509V3_ADD_KEEP_EXISTING 4L +# define X509V3_ADD_DELETE 5L +# define X509V3_ADD_SILENT 0x10 + +DEFINE_STACK_OF(X509_PURPOSE) + +DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) + +DECLARE_ASN1_FUNCTIONS(SXNET) +DECLARE_ASN1_FUNCTIONS(SXNETID) + +int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); +int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, + int userlen); +int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, + int userlen); + +ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); +ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); +ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); + +DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) + +DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) +GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); +int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); + +ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, + STACK_OF(CONF_VALUE) *nval); +STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + ASN1_BIT_STRING *bits, + STACK_OF(CONF_VALUE) *extlist); +char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); +ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, + GENERAL_NAME *gen, + STACK_OF(CONF_VALUE) *ret); +int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, + GENERAL_NAMES *gen, + STACK_OF(CONF_VALUE) *extlist); +GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); + +DECLARE_ASN1_FUNCTIONS(OTHERNAME) +DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) +int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); +void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); +void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); +int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, + ASN1_OBJECT *oid, ASN1_TYPE *value); +int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, + ASN1_OBJECT **poid, ASN1_TYPE **pvalue); + +char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + const ASN1_OCTET_STRING *ia5); +ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); + +DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) +int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); + +DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) + +DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) +DECLARE_ASN1_FUNCTIONS(POLICYINFO) +DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) +DECLARE_ASN1_FUNCTIONS(USERNOTICE) +DECLARE_ASN1_FUNCTIONS(NOTICEREF) + +DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) +DECLARE_ASN1_FUNCTIONS(DIST_POINT) +DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) +DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) + +int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); + +int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); +int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); + +DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) +DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) + +DECLARE_ASN1_ITEM(POLICY_MAPPING) +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) +DECLARE_ASN1_ITEM(POLICY_MAPPINGS) + +DECLARE_ASN1_ITEM(GENERAL_SUBTREE) +DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) + +DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) +DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) + +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) +DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) + +GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, int gen_type, + const char *value, int is_nc); + +# ifdef HEADER_CONF_H +GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf); +GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf, + int is_nc); +void X509V3_conf_free(CONF_VALUE *val); + +X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, + const char *value); +X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, + const char *value); +int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, + STACK_OF(X509_EXTENSION) **sk); +int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509 *cert); +int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509_REQ *req); +int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509_CRL *crl); + +X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, + X509V3_CTX *ctx, int ext_nid, + const char *value); +X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *name, const char *value); +int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509 *cert); +int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509_REQ *req); +int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509_CRL *crl); + +int X509V3_add_value_bool_nf(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); +int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); +void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); +void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); +# endif + +char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); +STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); +void X509V3_string_free(X509V3_CTX *ctx, char *str); +void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); +void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, + X509_REQ *req, X509_CRL *crl, int flags); + +int X509V3_add_value(const char *name, const char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_uchar(const char *name, const unsigned char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_bool(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, + STACK_OF(CONF_VALUE) **extlist); +char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); +ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); +char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); +char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, + const ASN1_ENUMERATED *aint); +int X509V3_EXT_add(X509V3_EXT_METHOD *ext); +int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); +int X509V3_EXT_add_alias(int nid_to, int nid_from); +void X509V3_EXT_cleanup(void); + +const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); +const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); +int X509V3_add_standard_extensions(void); +STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); +void *X509V3_EXT_d2i(X509_EXTENSION *ext); +void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, + int *idx); + +X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); +int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, + int crit, unsigned long flags); + +#if OPENSSL_API_COMPAT < 0x10100000L +/* The new declarations are in crypto.h, but the old ones were here. */ +# define hex_to_string OPENSSL_buf2hexstr +# define string_to_hex OPENSSL_hexstr2buf +#endif + +void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, + int ml); +int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, + int indent); +#ifndef OPENSSL_NO_STDIO +int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); +#endif +int X509V3_extensions_print(BIO *out, const char *title, + const STACK_OF(X509_EXTENSION) *exts, + unsigned long flag, int indent); + +int X509_check_ca(X509 *x); +int X509_check_purpose(X509 *x, int id, int ca); +int X509_supported_extension(X509_EXTENSION *ex); +int X509_PURPOSE_set(int *p, int purpose); +int X509_check_issued(X509 *issuer, X509 *subject); +int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); +void X509_set_proxy_flag(X509 *x); +void X509_set_proxy_pathlen(X509 *x, long l); +long X509_get_proxy_pathlen(X509 *x); + +uint32_t X509_get_extension_flags(X509 *x); +uint32_t X509_get_key_usage(X509 *x); +uint32_t X509_get_extended_key_usage(X509 *x); +const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); +const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); +const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); +const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); + +int X509_PURPOSE_get_count(void); +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_by_sname(const char *sname); +int X509_PURPOSE_get_by_id(int id); +int X509_PURPOSE_add(int id, int trust, int flags, + int (*ck) (const X509_PURPOSE *, const X509 *, int), + const char *name, const char *sname, void *arg); +char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); +char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); +int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); +void X509_PURPOSE_cleanup(void); +int X509_PURPOSE_get_id(const X509_PURPOSE *); + +STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); +STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); +void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); +STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); +/* Flags for X509_check_* functions */ + +/* + * Always check subject name for host match even if subject alt names present + */ +# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 +/* Disable wildcard matching for dnsName fields and common name. */ +# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 +/* Wildcards must not match a partial label. */ +# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 +/* Allow (non-partial) wildcards to match multiple labels. */ +# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 +/* Constraint verifier subdomain patterns to match a single labels. */ +# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* Never check the subject CN */ +# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 +/* + * Match reference identifiers starting with "." to any sub-domain. + * This is a non-public flag, turned on implicitly when the subject + * reference identity is a DNS name. + */ +# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername); +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); + +ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); +ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); +int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, + unsigned long chtype); + +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); +DEFINE_STACK_OF(X509_POLICY_NODE) + +#ifndef OPENSSL_NO_RFC3779 +typedef struct ASRange_st { + ASN1_INTEGER *min, *max; +} ASRange; + +# define ASIdOrRange_id 0 +# define ASIdOrRange_range 1 + +typedef struct ASIdOrRange_st { + int type; + union { + ASN1_INTEGER *id; + ASRange *range; + } u; +} ASIdOrRange; + +typedef STACK_OF(ASIdOrRange) ASIdOrRanges; +DEFINE_STACK_OF(ASIdOrRange) + +# define ASIdentifierChoice_inherit 0 +# define ASIdentifierChoice_asIdsOrRanges 1 + +typedef struct ASIdentifierChoice_st { + int type; + union { + ASN1_NULL *inherit; + ASIdOrRanges *asIdsOrRanges; + } u; +} ASIdentifierChoice; + +typedef struct ASIdentifiers_st { + ASIdentifierChoice *asnum, *rdi; +} ASIdentifiers; + +DECLARE_ASN1_FUNCTIONS(ASRange) +DECLARE_ASN1_FUNCTIONS(ASIdOrRange) +DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) +DECLARE_ASN1_FUNCTIONS(ASIdentifiers) + +typedef struct IPAddressRange_st { + ASN1_BIT_STRING *min, *max; +} IPAddressRange; + +# define IPAddressOrRange_addressPrefix 0 +# define IPAddressOrRange_addressRange 1 + +typedef struct IPAddressOrRange_st { + int type; + union { + ASN1_BIT_STRING *addressPrefix; + IPAddressRange *addressRange; + } u; +} IPAddressOrRange; + +typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; +DEFINE_STACK_OF(IPAddressOrRange) + +# define IPAddressChoice_inherit 0 +# define IPAddressChoice_addressesOrRanges 1 + +typedef struct IPAddressChoice_st { + int type; + union { + ASN1_NULL *inherit; + IPAddressOrRanges *addressesOrRanges; + } u; +} IPAddressChoice; + +typedef struct IPAddressFamily_st { + ASN1_OCTET_STRING *addressFamily; + IPAddressChoice *ipAddressChoice; +} IPAddressFamily; + +typedef STACK_OF(IPAddressFamily) IPAddrBlocks; +DEFINE_STACK_OF(IPAddressFamily) + +DECLARE_ASN1_FUNCTIONS(IPAddressRange) +DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) +DECLARE_ASN1_FUNCTIONS(IPAddressChoice) +DECLARE_ASN1_FUNCTIONS(IPAddressFamily) + +/* + * API tag for elements of the ASIdentifer SEQUENCE. + */ +# define V3_ASID_ASNUM 0 +# define V3_ASID_RDI 1 + +/* + * AFI values, assigned by IANA. It'd be nice to make the AFI + * handling code totally generic, but there are too many little things + * that would need to be defined for other address families for it to + * be worth the trouble. + */ +# define IANA_AFI_IPV4 1 +# define IANA_AFI_IPV6 2 + +/* + * Utilities to construct and extract values from RFC3779 extensions, + * since some of the encodings (particularly for IP address prefixes + * and ranges) are a bit tedious to work with directly. + */ +int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); +int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, + ASN1_INTEGER *min, ASN1_INTEGER *max); +int X509v3_addr_add_inherit(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi); +int X509v3_addr_add_prefix(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *a, const int prefixlen); +int X509v3_addr_add_range(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *min, unsigned char *max); +unsigned X509v3_addr_get_afi(const IPAddressFamily *f); +int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, + unsigned char *min, unsigned char *max, + const int length); + +/* + * Canonical forms. + */ +int X509v3_asid_is_canonical(ASIdentifiers *asid); +int X509v3_addr_is_canonical(IPAddrBlocks *addr); +int X509v3_asid_canonize(ASIdentifiers *asid); +int X509v3_addr_canonize(IPAddrBlocks *addr); + +/* + * Tests for inheritance and containment. + */ +int X509v3_asid_inherits(ASIdentifiers *asid); +int X509v3_addr_inherits(IPAddrBlocks *addr); +int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); +int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); + +/* + * Check whether RFC 3779 extensions nest properly in chains. + */ +int X509v3_asid_validate_path(X509_STORE_CTX *); +int X509v3_addr_validate_path(X509_STORE_CTX *); +int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, + ASIdentifiers *ext, + int allow_inheritance); +int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, + IPAddrBlocks *ext, int allow_inheritance); + +#endif /* OPENSSL_NO_RFC3779 */ + +DEFINE_STACK_OF(ASN1_STRING) + +/* + * Admission Syntax + */ +typedef struct NamingAuthority_st NAMING_AUTHORITY; +typedef struct ProfessionInfo_st PROFESSION_INFO; +typedef struct Admissions_st ADMISSIONS; +typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; +DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) +DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) +DECLARE_ASN1_FUNCTIONS(ADMISSIONS) +DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) +DEFINE_STACK_OF(ADMISSIONS) +DEFINE_STACK_OF(PROFESSION_INFO) +typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; + +const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( + const NAMING_AUTHORITY *n); +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( + const NAMING_AUTHORITY *n); +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( + const NAMING_AUTHORITY *n); +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, + ASN1_OBJECT* namingAuthorityId); +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, + ASN1_IA5STRING* namingAuthorityUrl); +void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, + ASN1_STRING* namingAuthorityText); + +const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_admissionAuthority( + ADMISSION_SYNTAX *as, GENERAL_NAME *aa); +const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_contentsOfAdmissions( + ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); +const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); +const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); +const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); +void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); +const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_addProfessionInfo( + PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); +const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_namingAuthority( + PROFESSION_INFO *pi, NAMING_AUTHORITY *na); +const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionItems( + PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); +const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionOIDs( + PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); +const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_registrationNumber( + PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/thrid-party/openssl/openssl/x509v3err.h b/thrid-party/openssl/openssl/x509v3err.h new file mode 100644 index 000000000..5f25442f1 --- /dev/null +++ b/thrid-party/openssl/openssl/x509v3err.h @@ -0,0 +1,162 @@ +/* + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_X509V3ERR_H +# define HEADER_X509V3ERR_H + +# ifndef HEADER_SYMHACKS_H +# include +# endif + +# ifdef __cplusplus +extern "C" +# endif +int ERR_load_X509V3_strings(void); + +/* + * X509V3 function codes. + */ +# define X509V3_F_A2I_GENERAL_NAME 164 +# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 +# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 +# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 +# define X509V3_F_BIGNUM_TO_STRING 167 +# define X509V3_F_COPY_EMAIL 122 +# define X509V3_F_COPY_ISSUER 123 +# define X509V3_F_DO_DIRNAME 144 +# define X509V3_F_DO_EXT_I2D 135 +# define X509V3_F_DO_EXT_NCONF 151 +# define X509V3_F_GNAMES_FROM_SECTNAME 156 +# define X509V3_F_I2S_ASN1_ENUMERATED 121 +# define X509V3_F_I2S_ASN1_IA5STRING 149 +# define X509V3_F_I2S_ASN1_INTEGER 120 +# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 +# define X509V3_F_LEVEL_ADD_NODE 168 +# define X509V3_F_NOTICE_SECTION 132 +# define X509V3_F_NREF_NOS 133 +# define X509V3_F_POLICY_CACHE_CREATE 169 +# define X509V3_F_POLICY_CACHE_NEW 170 +# define X509V3_F_POLICY_DATA_NEW 171 +# define X509V3_F_POLICY_SECTION 131 +# define X509V3_F_PROCESS_PCI_VALUE 150 +# define X509V3_F_R2I_CERTPOL 130 +# define X509V3_F_R2I_PCI 155 +# define X509V3_F_S2I_ASN1_IA5STRING 100 +# define X509V3_F_S2I_ASN1_INTEGER 108 +# define X509V3_F_S2I_ASN1_OCTET_STRING 112 +# define X509V3_F_S2I_SKEY_ID 115 +# define X509V3_F_SET_DIST_POINT_NAME 158 +# define X509V3_F_SXNET_ADD_ID_ASC 125 +# define X509V3_F_SXNET_ADD_ID_INTEGER 126 +# define X509V3_F_SXNET_ADD_ID_ULONG 127 +# define X509V3_F_SXNET_GET_ID_ASC 128 +# define X509V3_F_SXNET_GET_ID_ULONG 129 +# define X509V3_F_TREE_INIT 172 +# define X509V3_F_V2I_ASIDENTIFIERS 163 +# define X509V3_F_V2I_ASN1_BIT_STRING 101 +# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 +# define X509V3_F_V2I_AUTHORITY_KEYID 119 +# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 +# define X509V3_F_V2I_CRLD 134 +# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 +# define X509V3_F_V2I_GENERAL_NAMES 118 +# define X509V3_F_V2I_GENERAL_NAME_EX 117 +# define X509V3_F_V2I_IDP 157 +# define X509V3_F_V2I_IPADDRBLOCKS 159 +# define X509V3_F_V2I_ISSUER_ALT 153 +# define X509V3_F_V2I_NAME_CONSTRAINTS 147 +# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 +# define X509V3_F_V2I_POLICY_MAPPINGS 145 +# define X509V3_F_V2I_SUBJECT_ALT 154 +# define X509V3_F_V2I_TLS_FEATURE 165 +# define X509V3_F_V3_GENERIC_EXTENSION 116 +# define X509V3_F_X509V3_ADD1_I2D 140 +# define X509V3_F_X509V3_ADD_VALUE 105 +# define X509V3_F_X509V3_EXT_ADD 104 +# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 +# define X509V3_F_X509V3_EXT_I2D 136 +# define X509V3_F_X509V3_EXT_NCONF 152 +# define X509V3_F_X509V3_GET_SECTION 142 +# define X509V3_F_X509V3_GET_STRING 143 +# define X509V3_F_X509V3_GET_VALUE_BOOL 110 +# define X509V3_F_X509V3_PARSE_LIST 109 +# define X509V3_F_X509_PURPOSE_ADD 137 +# define X509V3_F_X509_PURPOSE_SET 141 + +/* + * X509V3 reason codes. + */ +# define X509V3_R_BAD_IP_ADDRESS 118 +# define X509V3_R_BAD_OBJECT 119 +# define X509V3_R_BN_DEC2BN_ERROR 100 +# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 +# define X509V3_R_DIRNAME_ERROR 149 +# define X509V3_R_DISTPOINT_ALREADY_SET 160 +# define X509V3_R_DUPLICATE_ZONE_ID 133 +# define X509V3_R_ERROR_CONVERTING_ZONE 131 +# define X509V3_R_ERROR_CREATING_EXTENSION 144 +# define X509V3_R_ERROR_IN_EXTENSION 128 +# define X509V3_R_EXPECTED_A_SECTION_NAME 137 +# define X509V3_R_EXTENSION_EXISTS 145 +# define X509V3_R_EXTENSION_NAME_ERROR 115 +# define X509V3_R_EXTENSION_NOT_FOUND 102 +# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 +# define X509V3_R_EXTENSION_VALUE_ERROR 116 +# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 +# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 +# define X509V3_R_INVALID_ASNUMBER 162 +# define X509V3_R_INVALID_ASRANGE 163 +# define X509V3_R_INVALID_BOOLEAN_STRING 104 +# define X509V3_R_INVALID_EXTENSION_STRING 105 +# define X509V3_R_INVALID_INHERITANCE 165 +# define X509V3_R_INVALID_IPADDRESS 166 +# define X509V3_R_INVALID_MULTIPLE_RDNS 161 +# define X509V3_R_INVALID_NAME 106 +# define X509V3_R_INVALID_NULL_ARGUMENT 107 +# define X509V3_R_INVALID_NULL_NAME 108 +# define X509V3_R_INVALID_NULL_VALUE 109 +# define X509V3_R_INVALID_NUMBER 140 +# define X509V3_R_INVALID_NUMBERS 141 +# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 +# define X509V3_R_INVALID_OPTION 138 +# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 +# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 +# define X509V3_R_INVALID_PURPOSE 146 +# define X509V3_R_INVALID_SAFI 164 +# define X509V3_R_INVALID_SECTION 135 +# define X509V3_R_INVALID_SYNTAX 143 +# define X509V3_R_ISSUER_DECODE_ERROR 126 +# define X509V3_R_MISSING_VALUE 124 +# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 +# define X509V3_R_NO_CONFIG_DATABASE 136 +# define X509V3_R_NO_ISSUER_CERTIFICATE 121 +# define X509V3_R_NO_ISSUER_DETAILS 127 +# define X509V3_R_NO_POLICY_IDENTIFIER 139 +# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 +# define X509V3_R_NO_PUBLIC_KEY 114 +# define X509V3_R_NO_SUBJECT_DETAILS 125 +# define X509V3_R_OPERATION_NOT_DEFINED 148 +# define X509V3_R_OTHERNAME_ERROR 147 +# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 +# define X509V3_R_POLICY_PATH_LENGTH 156 +# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 +# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 +# define X509V3_R_SECTION_NOT_FOUND 150 +# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 +# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 +# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 +# define X509V3_R_UNKNOWN_EXTENSION 129 +# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 +# define X509V3_R_UNKNOWN_OPTION 120 +# define X509V3_R_UNSUPPORTED_OPTION 117 +# define X509V3_R_UNSUPPORTED_TYPE 167 +# define X509V3_R_USER_TOO_LONG 132 + +#endif diff --git a/thrid-party/ton/include/auto/tl/tonlib_api.h b/thrid-party/ton/include/auto/tl/tonlib_api.h new file mode 100644 index 000000000..e1bb22ba5 --- /dev/null +++ b/thrid-party/ton/include/auto/tl/tonlib_api.h @@ -0,0 +1,2285 @@ +#pragma once + +#include "tl/TlObject.h" + +#include "td/utils/int_types.h" + +#include +#include "td/utils/SharedSlice.h" + +#include +#include +#include +#include + +namespace td { +class TlStorerToString; +} // namespace td + +namespace ton { +namespace tonlib_api{ +using BaseObject = ::ton::TlObject; + +template +using object_ptr = ::ton::tl_object_ptr; + +template +object_ptr make_object(Args &&... args) { + return object_ptr(new Type(std::forward(args)...)); +} + +template +object_ptr move_object_as(FromType &&from) { + return object_ptr(static_cast(from.release())); +} + +std::string to_string(const BaseObject &value); + +template +std::string to_string(const object_ptr &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +class accountAddress; + +class bip39Hints; + +class config; + +class data; + +class error; + +class exportedEncryptedKey; + +class exportedKey; + +class exportedPemKey; + +class fees; + +class InputKey; + +class key; + +class KeyStoreType; + +class LogStream; + +class logTags; + +class logVerbosityLevel; + +class ok; + +class options; + +class sendGramsResult; + +class SyncState; + +class unpackedAccountAddress; + +class Update; + +class generic_AccountState; + +class internal_transactionId; + +class liteServer_info; + +class query_fees; + +class query_info; + +class raw_accountState; + +class raw_initialAccountState; + +class raw_message; + +class raw_transaction; + +class raw_transactions; + +class smc_info; + +class smc_MethodId; + +class smc_runResult; + +class testGiver_accountState; + +class testWallet_accountState; + +class testWallet_initialAccountState; + +class tvm_cell; + +class tvm_numberDecimal; + +class tvm_slice; + +class tvm_StackEntry; + +class uninited_accountState; + +class wallet_accountState; + +class wallet_initialAccountState; + +class Object; + +class Object: public TlObject { + public: +}; + +class Function: public TlObject { + public: +}; + +class accountAddress final : public Object { + public: + std::string account_address_; + + accountAddress(); + + explicit accountAddress(std::string const &account_address_); + + static const std::int32_t ID = 755613099; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class bip39Hints final : public Object { + public: + std::vector words_; + + bip39Hints(); + + explicit bip39Hints(std::vector &&words_); + + static const std::int32_t ID = 1012243456; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class config final : public Object { + public: + std::string config_; + std::string blockchain_name_; + bool use_callbacks_for_network_; + bool ignore_cache_; + + config(); + + config(std::string const &config_, std::string const &blockchain_name_, bool use_callbacks_for_network_, bool ignore_cache_); + + static const std::int32_t ID = -1538391496; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class data final : public Object { + public: + td::SecureString bytes_; + + data(); + + explicit data(td::SecureString &&bytes_); + + static const std::int32_t ID = -414733967; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class error final : public Object { + public: + std::int32_t code_; + std::string message_; + + error(); + + error(std::int32_t code_, std::string const &message_); + + static const std::int32_t ID = -1679978726; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportedEncryptedKey final : public Object { + public: + td::SecureString data_; + + exportedEncryptedKey(); + + explicit exportedEncryptedKey(td::SecureString &&data_); + + static const std::int32_t ID = 2024406612; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportedKey final : public Object { + public: + std::vector word_list_; + + exportedKey(); + + explicit exportedKey(std::vector &&word_list_); + + static const std::int32_t ID = -1449248297; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportedPemKey final : public Object { + public: + td::SecureString pem_; + + exportedPemKey(); + + explicit exportedPemKey(td::SecureString &&pem_); + + static const std::int32_t ID = 1425473725; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class fees final : public Object { + public: + std::int64_t in_fwd_fee_; + std::int64_t storage_fee_; + std::int64_t gas_fee_; + std::int64_t fwd_fee_; + + fees(); + + fees(std::int64_t in_fwd_fee_, std::int64_t storage_fee_, std::int64_t gas_fee_, std::int64_t fwd_fee_); + + static const std::int32_t ID = 1676273340; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class InputKey: public Object { + public: +}; + +class inputKeyRegular final : public InputKey { + public: + object_ptr key_; + td::SecureString local_password_; + + inputKeyRegular(); + + inputKeyRegular(object_ptr &&key_, td::SecureString &&local_password_); + + static const std::int32_t ID = -555399522; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class inputKeyFake final : public InputKey { + public: + + inputKeyFake(); + + static const std::int32_t ID = -1074054722; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class key final : public Object { + public: + std::string public_key_; + td::SecureString secret_; + + key(); + + key(std::string const &public_key_, td::SecureString &&secret_); + + static const std::int32_t ID = -1978362923; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class KeyStoreType: public Object { + public: +}; + +class keyStoreTypeDirectory final : public KeyStoreType { + public: + std::string directory_; + + keyStoreTypeDirectory(); + + explicit keyStoreTypeDirectory(std::string const &directory_); + + static const std::int32_t ID = -378990038; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class keyStoreTypeInMemory final : public KeyStoreType { + public: + + keyStoreTypeInMemory(); + + static const std::int32_t ID = -2106848825; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class LogStream: public Object { + public: +}; + +class logStreamDefault final : public LogStream { + public: + + logStreamDefault(); + + static const std::int32_t ID = 1390581436; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class logStreamFile final : public LogStream { + public: + std::string path_; + std::int64_t max_file_size_; + + logStreamFile(); + + logStreamFile(std::string const &path_, std::int64_t max_file_size_); + + static const std::int32_t ID = -1880085930; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class logStreamEmpty final : public LogStream { + public: + + logStreamEmpty(); + + static const std::int32_t ID = -499912244; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class logTags final : public Object { + public: + std::vector tags_; + + logTags(); + + explicit logTags(std::vector &&tags_); + + static const std::int32_t ID = -1604930601; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class logVerbosityLevel final : public Object { + public: + std::int32_t verbosity_level_; + + logVerbosityLevel(); + + explicit logVerbosityLevel(std::int32_t verbosity_level_); + + static const std::int32_t ID = 1734624234; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class ok final : public Object { + public: + + ok(); + + static const std::int32_t ID = -722616727; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class options final : public Object { + public: + object_ptr config_; + object_ptr keystore_type_; + + options(); + + options(object_ptr &&config_, object_ptr &&keystore_type_); + + static const std::int32_t ID = -1924388359; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class sendGramsResult final : public Object { + public: + std::int64_t sent_until_; + std::string body_hash_; + + sendGramsResult(); + + sendGramsResult(std::int64_t sent_until_, std::string const &body_hash_); + + static const std::int32_t ID = 426872238; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class SyncState: public Object { + public: +}; + +class syncStateDone final : public SyncState { + public: + + syncStateDone(); + + static const std::int32_t ID = 1408448777; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class syncStateInProgress final : public SyncState { + public: + std::int32_t from_seqno_; + std::int32_t to_seqno_; + std::int32_t current_seqno_; + + syncStateInProgress(); + + syncStateInProgress(std::int32_t from_seqno_, std::int32_t to_seqno_, std::int32_t current_seqno_); + + static const std::int32_t ID = 107726023; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class unpackedAccountAddress final : public Object { + public: + std::int32_t workchain_id_; + bool bounceable_; + bool testnet_; + std::string addr_; + + unpackedAccountAddress(); + + unpackedAccountAddress(std::int32_t workchain_id_, bool bounceable_, bool testnet_, std::string const &addr_); + + static const std::int32_t ID = 1892946998; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class Update: public Object { + public: +}; + +class updateSendLiteServerQuery final : public Update { + public: + std::int64_t id_; + std::string data_; + + updateSendLiteServerQuery(); + + updateSendLiteServerQuery(std::int64_t id_, std::string const &data_); + + static const std::int32_t ID = -1555130916; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class updateSyncState final : public Update { + public: + object_ptr sync_state_; + + updateSyncState(); + + explicit updateSyncState(object_ptr &&sync_state_); + + static const std::int32_t ID = 1204298718; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_AccountState: public Object { + public: +}; + +class generic_accountStateRaw final : public generic_AccountState { + public: + object_ptr account_state_; + + generic_accountStateRaw(); + + explicit generic_accountStateRaw(object_ptr &&account_state_); + + static const std::int32_t ID = -1387096685; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_accountStateTestWallet final : public generic_AccountState { + public: + object_ptr account_state_; + + generic_accountStateTestWallet(); + + explicit generic_accountStateTestWallet(object_ptr &&account_state_); + + static const std::int32_t ID = -1041955397; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_accountStateWallet final : public generic_AccountState { + public: + object_ptr account_state_; + + generic_accountStateWallet(); + + explicit generic_accountStateWallet(object_ptr &&account_state_); + + static const std::int32_t ID = 942582925; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_accountStateTestGiver final : public generic_AccountState { + public: + object_ptr account_state_; + + generic_accountStateTestGiver(); + + explicit generic_accountStateTestGiver(object_ptr &&account_state_); + + static const std::int32_t ID = 1134654598; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_accountStateUninited final : public generic_AccountState { + public: + object_ptr account_state_; + + generic_accountStateUninited(); + + explicit generic_accountStateUninited(object_ptr &&account_state_); + + static const std::int32_t ID = -908702008; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class internal_transactionId final : public Object { + public: + std::int64_t lt_; + std::string hash_; + + internal_transactionId(); + + internal_transactionId(std::int64_t lt_, std::string const &hash_); + + static const std::int32_t ID = -989527262; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class liteServer_info final : public Object { + public: + std::int64_t now_; + std::int32_t version_; + std::int64_t capabilities_; + + liteServer_info(); + + liteServer_info(std::int64_t now_, std::int32_t version_, std::int64_t capabilities_); + + static const std::int32_t ID = -1250165133; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_fees final : public Object { + public: + object_ptr source_fees_; + object_ptr destination_fees_; + + query_fees(); + + query_fees(object_ptr &&source_fees_, object_ptr &&destination_fees_); + + static const std::int32_t ID = 725267759; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_info final : public Object { + public: + std::int64_t id_; + std::int64_t valid_until_; + std::string body_hash_; + + query_info(); + + query_info(std::int64_t id_, std::int64_t valid_until_, std::string const &body_hash_); + + static const std::int32_t ID = 1588635915; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_accountState final : public Object { + public: + std::int64_t balance_; + std::string code_; + std::string data_; + object_ptr last_transaction_id_; + std::string frozen_hash_; + std::int64_t sync_utime_; + + raw_accountState(); + + raw_accountState(std::int64_t balance_, std::string const &code_, std::string const &data_, object_ptr &&last_transaction_id_, std::string const &frozen_hash_, std::int64_t sync_utime_); + + static const std::int32_t ID = 1205935434; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_initialAccountState final : public Object { + public: + std::string code_; + std::string data_; + + raw_initialAccountState(); + + raw_initialAccountState(std::string const &code_, std::string const &data_); + + static const std::int32_t ID = 777456197; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_message final : public Object { + public: + std::string source_; + std::string destination_; + std::int64_t value_; + std::int64_t fwd_fee_; + std::int64_t ihr_fee_; + std::int64_t created_lt_; + std::string body_hash_; + std::string message_; + + raw_message(); + + raw_message(std::string const &source_, std::string const &destination_, std::int64_t value_, std::int64_t fwd_fee_, std::int64_t ihr_fee_, std::int64_t created_lt_, std::string const &body_hash_, std::string const &message_); + + static const std::int32_t ID = -906281442; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_transaction final : public Object { + public: + std::int64_t utime_; + std::string data_; + object_ptr transaction_id_; + std::int64_t fee_; + std::int64_t storage_fee_; + std::int64_t other_fee_; + object_ptr in_msg_; + std::vector> out_msgs_; + + raw_transaction(); + + raw_transaction(std::int64_t utime_, std::string const &data_, object_ptr &&transaction_id_, std::int64_t fee_, std::int64_t storage_fee_, std::int64_t other_fee_, object_ptr &&in_msg_, std::vector> &&out_msgs_); + + static const std::int32_t ID = 1887601793; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_transactions final : public Object { + public: + std::vector> transactions_; + object_ptr previous_transaction_id_; + + raw_transactions(); + + raw_transactions(std::vector> &&transactions_, object_ptr &&previous_transaction_id_); + + static const std::int32_t ID = -2063931155; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_info final : public Object { + public: + std::int64_t id_; + + smc_info(); + + explicit smc_info(std::int64_t id_); + + static const std::int32_t ID = 1134270012; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_MethodId: public Object { + public: +}; + +class smc_methodIdNumber final : public smc_MethodId { + public: + std::int32_t number_; + + smc_methodIdNumber(); + + explicit smc_methodIdNumber(std::int32_t number_); + + static const std::int32_t ID = -1541162500; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_methodIdName final : public smc_MethodId { + public: + std::string name_; + + smc_methodIdName(); + + explicit smc_methodIdName(std::string const &name_); + + static const std::int32_t ID = -249036908; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_runResult final : public Object { + public: + std::int64_t gas_used_; + std::vector> stack_; + std::int32_t exit_code_; + + smc_runResult(); + + smc_runResult(std::int64_t gas_used_, std::vector> &&stack_, std::int32_t exit_code_); + + static const std::int32_t ID = 1413805043; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testGiver_accountState final : public Object { + public: + std::int64_t balance_; + std::int32_t seqno_; + object_ptr last_transaction_id_; + std::int64_t sync_utime_; + + testGiver_accountState(); + + testGiver_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); + + static const std::int32_t ID = 860930426; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_accountState final : public Object { + public: + std::int64_t balance_; + std::int32_t seqno_; + object_ptr last_transaction_id_; + std::int64_t sync_utime_; + + testWallet_accountState(); + + testWallet_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); + + static const std::int32_t ID = 305698744; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_initialAccountState final : public Object { + public: + std::string public_key_; + + testWallet_initialAccountState(); + + explicit testWallet_initialAccountState(std::string const &public_key_); + + static const std::int32_t ID = -1231516227; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_cell final : public Object { + public: + std::string bytes_; + + tvm_cell(); + + explicit tvm_cell(std::string const &bytes_); + + static const std::int32_t ID = -859530316; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_numberDecimal final : public Object { + public: + std::string number_; + + tvm_numberDecimal(); + + explicit tvm_numberDecimal(std::string const &number_); + + static const std::int32_t ID = 1172477619; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_slice final : public Object { + public: + std::string bytes_; + + tvm_slice(); + + explicit tvm_slice(std::string const &bytes_); + + static const std::int32_t ID = -1069968387; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_StackEntry: public Object { + public: +}; + +class tvm_stackEntrySlice final : public tvm_StackEntry { + public: + object_ptr slice_; + + tvm_stackEntrySlice(); + + explicit tvm_stackEntrySlice(object_ptr &&slice_); + + static const std::int32_t ID = 1395485477; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_stackEntryCell final : public tvm_StackEntry { + public: + object_ptr cell_; + + tvm_stackEntryCell(); + + explicit tvm_stackEntryCell(object_ptr &&cell_); + + static const std::int32_t ID = 1303473952; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_stackEntryNumber final : public tvm_StackEntry { + public: + object_ptr number_; + + tvm_stackEntryNumber(); + + explicit tvm_stackEntryNumber(object_ptr &&number_); + + static const std::int32_t ID = 1358642622; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class tvm_stackEntryUnsupported final : public tvm_StackEntry { + public: + + tvm_stackEntryUnsupported(); + + static const std::int32_t ID = 378880498; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class uninited_accountState final : public Object { + public: + std::int64_t balance_; + object_ptr last_transaction_id_; + std::string frozen_hash_; + std::int64_t sync_utime_; + + uninited_accountState(); + + uninited_accountState(std::int64_t balance_, object_ptr &&last_transaction_id_, std::string const &frozen_hash_, std::int64_t sync_utime_); + + static const std::int32_t ID = -918880075; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_accountState final : public Object { + public: + std::int64_t balance_; + std::int32_t seqno_; + object_ptr last_transaction_id_; + std::int64_t sync_utime_; + + wallet_accountState(); + + wallet_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); + + static const std::int32_t ID = -1919815977; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_initialAccountState final : public Object { + public: + std::string public_key_; + + wallet_initialAccountState(); + + explicit wallet_initialAccountState(std::string const &public_key_); + + static const std::int32_t ID = -1079249978; + std::int32_t get_id() const final { + return ID; + } + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class addLogMessage final : public Function { + public: + std::int32_t verbosity_level_; + std::string text_; + + addLogMessage(); + + addLogMessage(std::int32_t verbosity_level_, std::string const &text_); + + static const std::int32_t ID = 1597427692; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class changeLocalPassword final : public Function { + public: + object_ptr input_key_; + td::SecureString new_local_password_; + + changeLocalPassword(); + + changeLocalPassword(object_ptr &&input_key_, td::SecureString &&new_local_password_); + + static const std::int32_t ID = -401590337; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class close final : public Function { + public: + + close(); + + static const std::int32_t ID = -1187782273; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class createNewKey final : public Function { + public: + td::SecureString local_password_; + td::SecureString mnemonic_password_; + td::SecureString random_extra_seed_; + + createNewKey(); + + createNewKey(td::SecureString &&local_password_, td::SecureString &&mnemonic_password_, td::SecureString &&random_extra_seed_); + + static const std::int32_t ID = -1861385712; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class decrypt final : public Function { + public: + td::SecureString encrypted_data_; + td::SecureString secret_; + + decrypt(); + + decrypt(td::SecureString &&encrypted_data_, td::SecureString &&secret_); + + static const std::int32_t ID = 357991854; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class deleteAllKeys final : public Function { + public: + + deleteAllKeys(); + + static const std::int32_t ID = 1608776483; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class deleteKey final : public Function { + public: + object_ptr key_; + + deleteKey(); + + explicit deleteKey(object_ptr &&key_); + + static const std::int32_t ID = -1579595571; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class encrypt final : public Function { + public: + td::SecureString decrypted_data_; + td::SecureString secret_; + + encrypt(); + + encrypt(td::SecureString &&decrypted_data_, td::SecureString &&secret_); + + static const std::int32_t ID = -1821422820; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportEncryptedKey final : public Function { + public: + object_ptr input_key_; + td::SecureString key_password_; + + exportEncryptedKey(); + + exportEncryptedKey(object_ptr &&input_key_, td::SecureString &&key_password_); + + static const std::int32_t ID = 218237311; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportKey final : public Function { + public: + object_ptr input_key_; + + exportKey(); + + explicit exportKey(object_ptr &&input_key_); + + static const std::int32_t ID = -1622353549; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class exportPemKey final : public Function { + public: + object_ptr input_key_; + td::SecureString key_password_; + + exportPemKey(); + + exportPemKey(object_ptr &&input_key_, td::SecureString &&key_password_); + + static const std::int32_t ID = -643259462; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_createSendGramsQuery final : public Function { + public: + object_ptr private_key_; + object_ptr source_; + object_ptr destination_; + std::int64_t amount_; + std::int32_t timeout_; + bool allow_send_to_uninited_; + std::string message_; + + generic_createSendGramsQuery(); + + generic_createSendGramsQuery(object_ptr &&private_key_, object_ptr &&source_, object_ptr &&destination_, std::int64_t amount_, std::int32_t timeout_, bool allow_send_to_uninited_, std::string const &message_); + + static const std::int32_t ID = 208206338; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_getAccountState final : public Function { + public: + object_ptr account_address_; + + generic_getAccountState(); + + explicit generic_getAccountState(object_ptr &&account_address_); + + static const std::int32_t ID = -657000446; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class generic_sendGrams final : public Function { + public: + object_ptr private_key_; + object_ptr source_; + object_ptr destination_; + std::int64_t amount_; + std::int32_t timeout_; + bool allow_send_to_uninited_; + std::string message_; + + generic_sendGrams(); + + generic_sendGrams(object_ptr &&private_key_, object_ptr &&source_, object_ptr &&destination_, std::int64_t amount_, std::int32_t timeout_, bool allow_send_to_uninited_, std::string const &message_); + + static const std::int32_t ID = -553513162; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class getBip39Hints final : public Function { + public: + std::string prefix_; + + getBip39Hints(); + + explicit getBip39Hints(std::string const &prefix_); + + static const std::int32_t ID = -1889640982; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class getLogStream final : public Function { + public: + + getLogStream(); + + static const std::int32_t ID = 1167608667; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class getLogTagVerbosityLevel final : public Function { + public: + std::string tag_; + + getLogTagVerbosityLevel(); + + explicit getLogTagVerbosityLevel(std::string const &tag_); + + static const std::int32_t ID = 951004547; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class getLogTags final : public Function { + public: + + getLogTags(); + + static const std::int32_t ID = -254449190; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class getLogVerbosityLevel final : public Function { + public: + + getLogVerbosityLevel(); + + static const std::int32_t ID = 594057956; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class importEncryptedKey final : public Function { + public: + td::SecureString local_password_; + td::SecureString key_password_; + object_ptr exported_encrypted_key_; + + importEncryptedKey(); + + importEncryptedKey(td::SecureString &&local_password_, td::SecureString &&key_password_, object_ptr &&exported_encrypted_key_); + + static const std::int32_t ID = 656724958; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class importKey final : public Function { + public: + td::SecureString local_password_; + td::SecureString mnemonic_password_; + object_ptr exported_key_; + + importKey(); + + importKey(td::SecureString &&local_password_, td::SecureString &&mnemonic_password_, object_ptr &&exported_key_); + + static const std::int32_t ID = -1607900903; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class importPemKey final : public Function { + public: + td::SecureString local_password_; + td::SecureString key_password_; + object_ptr exported_key_; + + importPemKey(); + + importPemKey(td::SecureString &&local_password_, td::SecureString &&key_password_, object_ptr &&exported_key_); + + static const std::int32_t ID = 76385617; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class init final : public Function { + public: + object_ptr options_; + + init(); + + explicit init(object_ptr &&options_); + + static const std::int32_t ID = -2014661877; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class kdf final : public Function { + public: + td::SecureString password_; + td::SecureString salt_; + std::int32_t iterations_; + + kdf(); + + kdf(td::SecureString &&password_, td::SecureString &&salt_, std::int32_t iterations_); + + static const std::int32_t ID = -1667861635; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class liteServer_getInfo final : public Function { + public: + + liteServer_getInfo(); + + static const std::int32_t ID = 1435327470; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class onLiteServerQueryError final : public Function { + public: + std::int64_t id_; + object_ptr error_; + + onLiteServerQueryError(); + + onLiteServerQueryError(std::int64_t id_, object_ptr &&error_); + + static const std::int32_t ID = -677427533; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class onLiteServerQueryResult final : public Function { + public: + std::int64_t id_; + std::string bytes_; + + onLiteServerQueryResult(); + + onLiteServerQueryResult(std::int64_t id_, std::string const &bytes_); + + static const std::int32_t ID = 2056444510; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class options_setConfig final : public Function { + public: + object_ptr config_; + + options_setConfig(); + + explicit options_setConfig(object_ptr &&config_); + + static const std::int32_t ID = 646497241; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class options_validateConfig final : public Function { + public: + object_ptr config_; + + options_validateConfig(); + + explicit options_validateConfig(object_ptr &&config_); + + static const std::int32_t ID = -1146765779; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class packAccountAddress final : public Function { + public: + object_ptr account_address_; + + packAccountAddress(); + + explicit packAccountAddress(object_ptr &&account_address_); + + static const std::int32_t ID = -1388561940; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_estimateFees final : public Function { + public: + std::int64_t id_; + bool ignore_chksig_; + + query_estimateFees(); + + query_estimateFees(std::int64_t id_, bool ignore_chksig_); + + static const std::int32_t ID = -957002175; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_forget final : public Function { + public: + std::int64_t id_; + + query_forget(); + + explicit query_forget(std::int64_t id_); + + static const std::int32_t ID = -1211985313; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_getInfo final : public Function { + public: + std::int64_t id_; + + query_getInfo(); + + explicit query_getInfo(std::int64_t id_); + + static const std::int32_t ID = -799333669; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class query_send final : public Function { + public: + std::int64_t id_; + + query_send(); + + explicit query_send(std::int64_t id_); + + static const std::int32_t ID = 925242739; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_createAndSendMessage final : public Function { + public: + object_ptr destination_; + std::string initial_account_state_; + std::string data_; + + raw_createAndSendMessage(); + + raw_createAndSendMessage(object_ptr &&destination_, std::string const &initial_account_state_, std::string const &data_); + + static const std::int32_t ID = -772224603; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_createQuery final : public Function { + public: + object_ptr destination_; + std::string init_code_; + std::string init_data_; + std::string body_; + + raw_createQuery(); + + raw_createQuery(object_ptr &&destination_, std::string const &init_code_, std::string const &init_data_, std::string const &body_); + + static const std::int32_t ID = -1928557909; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_getAccountAddress final : public Function { + public: + object_ptr initital_account_state_; + + raw_getAccountAddress(); + + explicit raw_getAccountAddress(object_ptr &&initital_account_state_); + + static const std::int32_t ID = -521283849; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_getAccountState final : public Function { + public: + object_ptr account_address_; + + raw_getAccountState(); + + explicit raw_getAccountState(object_ptr &&account_address_); + + static const std::int32_t ID = 663706721; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_getTransactions final : public Function { + public: + object_ptr account_address_; + object_ptr from_transaction_id_; + + raw_getTransactions(); + + raw_getTransactions(object_ptr &&account_address_, object_ptr &&from_transaction_id_); + + static const std::int32_t ID = 935377269; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class raw_sendMessage final : public Function { + public: + std::string body_; + + raw_sendMessage(); + + explicit raw_sendMessage(std::string const &body_); + + static const std::int32_t ID = -1789427488; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class runTests final : public Function { + public: + std::string dir_; + + runTests(); + + explicit runTests(std::string const &dir_); + + static const std::int32_t ID = -2039925427; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class setLogStream final : public Function { + public: + object_ptr log_stream_; + + setLogStream(); + + explicit setLogStream(object_ptr &&log_stream_); + + static const std::int32_t ID = -1364199535; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class setLogTagVerbosityLevel final : public Function { + public: + std::string tag_; + std::int32_t new_verbosity_level_; + + setLogTagVerbosityLevel(); + + setLogTagVerbosityLevel(std::string const &tag_, std::int32_t new_verbosity_level_); + + static const std::int32_t ID = -2095589738; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class setLogVerbosityLevel final : public Function { + public: + std::int32_t new_verbosity_level_; + + setLogVerbosityLevel(); + + explicit setLogVerbosityLevel(std::int32_t new_verbosity_level_); + + static const std::int32_t ID = -303429678; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_getCode final : public Function { + public: + std::int64_t id_; + + smc_getCode(); + + explicit smc_getCode(std::int64_t id_); + + static const std::int32_t ID = -2115626088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_getData final : public Function { + public: + std::int64_t id_; + + smc_getData(); + + explicit smc_getData(std::int64_t id_); + + static const std::int32_t ID = -427601079; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_getState final : public Function { + public: + std::int64_t id_; + + smc_getState(); + + explicit smc_getState(std::int64_t id_); + + static const std::int32_t ID = -214390293; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_load final : public Function { + public: + object_ptr account_address_; + + smc_load(); + + explicit smc_load(object_ptr &&account_address_); + + static const std::int32_t ID = -903491521; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class smc_runGetMethod final : public Function { + public: + std::int64_t id_; + object_ptr method_; + std::vector> stack_; + + smc_runGetMethod(); + + smc_runGetMethod(std::int64_t id_, object_ptr &&method_, std::vector> &&stack_); + + static const std::int32_t ID = -255261270; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class sync final : public Function { + public: + + sync(); + + static const std::int32_t ID = -1617065525; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testGiver_getAccountAddress final : public Function { + public: + + testGiver_getAccountAddress(); + + static const std::int32_t ID = -540100768; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testGiver_getAccountState final : public Function { + public: + + testGiver_getAccountState(); + + static const std::int32_t ID = 267738275; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testGiver_sendGrams final : public Function { + public: + object_ptr destination_; + std::int32_t seqno_; + std::int64_t amount_; + std::string message_; + + testGiver_sendGrams(); + + testGiver_sendGrams(object_ptr &&destination_, std::int32_t seqno_, std::int64_t amount_, std::string const &message_); + + static const std::int32_t ID = -1785750375; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_getAccountAddress final : public Function { + public: + object_ptr initital_account_state_; + + testWallet_getAccountAddress(); + + explicit testWallet_getAccountAddress(object_ptr &&initital_account_state_); + + static const std::int32_t ID = -1557748223; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_getAccountState final : public Function { + public: + object_ptr account_address_; + + testWallet_getAccountState(); + + explicit testWallet_getAccountState(object_ptr &&account_address_); + + static const std::int32_t ID = 654082364; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_init final : public Function { + public: + object_ptr private_key_; + + testWallet_init(); + + explicit testWallet_init(object_ptr &&private_key_); + + static const std::int32_t ID = -1417409140; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class testWallet_sendGrams final : public Function { + public: + object_ptr private_key_; + object_ptr destination_; + std::int32_t seqno_; + std::int64_t amount_; + std::string message_; + + testWallet_sendGrams(); + + testWallet_sendGrams(object_ptr &&private_key_, object_ptr &&destination_, std::int32_t seqno_, std::int64_t amount_, std::string const &message_); + + static const std::int32_t ID = 573748322; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class unpackAccountAddress final : public Function { + public: + std::string account_address_; + + unpackAccountAddress(); + + explicit unpackAccountAddress(std::string const &account_address_); + + static const std::int32_t ID = -682459063; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_getAccountAddress final : public Function { + public: + object_ptr initital_account_state_; + + wallet_getAccountAddress(); + + explicit wallet_getAccountAddress(object_ptr &&initital_account_state_); + + static const std::int32_t ID = -1004103180; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_getAccountState final : public Function { + public: + object_ptr account_address_; + + wallet_getAccountState(); + + explicit wallet_getAccountState(object_ptr &&account_address_); + + static const std::int32_t ID = 462294850; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_init final : public Function { + public: + object_ptr private_key_; + + wallet_init(); + + explicit wallet_init(object_ptr &&private_key_); + + static const std::int32_t ID = -395706309; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +class wallet_sendGrams final : public Function { + public: + object_ptr private_key_; + object_ptr destination_; + std::int32_t seqno_; + std::int64_t valid_until_; + std::int64_t amount_; + std::string message_; + + wallet_sendGrams(); + + wallet_sendGrams(object_ptr &&private_key_, object_ptr &&destination_, std::int32_t seqno_, std::int64_t valid_until_, std::int64_t amount_, std::string const &message_); + + static const std::int32_t ID = 297317621; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr; + + void store(td::TlStorerToString &s, const char *field_name) const final; +}; + +} // namespace tonlib_api +} // namespace ton diff --git a/thrid-party/ton/include/td/utils/SharedSlice.h b/thrid-party/ton/include/td/utils/SharedSlice.h new file mode 100644 index 000000000..ab941cb58 --- /dev/null +++ b/thrid-party/ton/include/td/utils/SharedSlice.h @@ -0,0 +1,392 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "td/utils/Slice.h" + +#include +#include + +namespace td { + +namespace detail { +struct SharedSliceHeader { + explicit SharedSliceHeader(size_t size) : refcnt_{1}, size_{size} { + } + + void inc() { + refcnt_.fetch_add(1, std::memory_order_relaxed); + } + + bool dec() { + return refcnt_.fetch_sub(1, std::memory_order_acq_rel) == 1; + } + + bool is_unique() const { + // NB: race if std::memory_order_relaxed is used + // reader may see a change by a new writer + return refcnt_.load(std::memory_order_acquire) == 1; + } + + size_t size() const { + return size_; + } + + private: + std::atomic refcnt_; + size_t size_; +}; + +struct UniqueSliceHeader { + explicit UniqueSliceHeader(size_t size) : size_{size} { + } + + void inc() { + } + + bool dec() { + return true; + } + + bool is_unique() const { + return true; + } + + size_t size() const { + return size_; + } + + private: + size_t size_; +}; + +template +class UnsafeSharedSlice { + public: + UnsafeSharedSlice() = default; + UnsafeSharedSlice clone() const { + if (is_null()) { + return UnsafeSharedSlice(); + } + header()->inc(); + return UnsafeSharedSlice(ptr_.get()); + } + + bool is_null() const { + return !ptr_; + } + + bool is_unique() const { + if (is_null()) { + return true; + } + return header()->is_unique(); + } + + MutableSlice as_mutable_slice() { + if (is_null()) { + return MutableSlice(); + } + return MutableSlice(ptr_.get() + sizeof(HeaderT), header()->size()); + } + + Slice as_slice() const { + if (is_null()) { + return Slice(); + } + return Slice(ptr_.get() + sizeof(HeaderT), header()->size()); + } + + size_t size() const { + if (is_null()) { + return 0; + } + return header()->size(); + } + + static UnsafeSharedSlice create(size_t size) { + static_assert(std::is_standard_layout::value, "HeaderT must have statdard layout"); + auto ptr = std::make_unique(size + sizeof(HeaderT)); + auto header_ptr = new (ptr.get()) HeaderT(size); + CHECK(reinterpret_cast(header_ptr) == ptr.get()); + + return UnsafeSharedSlice(std::move(ptr)); + } + + static UnsafeSharedSlice create(Slice slice) { + auto res = create(slice.size()); + res.as_mutable_slice().copy_from(slice); + return res; + } + + void clear() { + ptr_.reset(); + } + + private: + explicit UnsafeSharedSlice(char *ptr) : ptr_(ptr) { + } + explicit UnsafeSharedSlice(std::unique_ptr from) : ptr_(from.release()) { + } + + HeaderT *header() const { + return reinterpret_cast(ptr_.get()); + } + + struct Destructor { + void operator()(char *ptr) { + auto header = reinterpret_cast(ptr); + if (header->dec()) { + if (zero_on_destruct) { + MutableSlice(ptr, sizeof(HeaderT) + header->size()).fill_zero_secure(); + } + std::default_delete()(ptr); + } + } + }; + + std::unique_ptr ptr_; +}; +} // namespace detail + +class BufferSlice; + +class UniqueSharedSlice; + +class SharedSlice { + using Impl = detail::UnsafeSharedSlice; + + public: + SharedSlice() = default; + + explicit SharedSlice(Slice slice) : impl_(Impl::create(slice.size())) { + impl_.as_mutable_slice().copy_from(slice); + } + + explicit SharedSlice(UniqueSharedSlice from); + + SharedSlice(const char *ptr, size_t size) : SharedSlice(Slice(ptr, size)) { + } + + SharedSlice clone() const { + return SharedSlice(impl_.clone()); + } + + Slice as_slice() const { + return impl_.as_slice(); + } + + BufferSlice clone_as_buffer_slice() const; + + operator Slice() const { + return as_slice(); + } + + // like in std::string + const char *data() const { + return as_slice().data(); + } + + char operator[](size_t at) const { + return as_slice()[at]; + } + + bool empty() const { + return size() == 0; + } + + size_t size() const { + return impl_.size(); + } + + // like in std::string + size_t length() const { + return size(); + } + + void clear() { + impl_.clear(); + } + + private: + friend class UniqueSharedSlice; + explicit SharedSlice(Impl impl) : impl_(std::move(impl)) { + } + Impl impl_; +}; + +class UniqueSharedSlice { + using Impl = detail::UnsafeSharedSlice; + + public: + UniqueSharedSlice() = default; + + explicit UniqueSharedSlice(size_t size) : impl_(Impl::create(size)) { + } + explicit UniqueSharedSlice(Slice slice) : impl_(Impl::create(slice)) { + } + + UniqueSharedSlice(const char *ptr, size_t size) : UniqueSharedSlice(Slice(ptr, size)) { + } + explicit UniqueSharedSlice(SharedSlice from) : impl_() { + if (from.impl_.is_unique()) { + impl_ = std::move(from.impl_); + } else { + impl_ = Impl::create(from.as_slice()); + } + } + + UniqueSharedSlice copy() const { + return UniqueSharedSlice(as_slice()); + } + + Slice as_slice() const { + return impl_.as_slice(); + } + + MutableSlice as_mutable_slice() { + return impl_.as_mutable_slice(); + } + + operator Slice() const { + return as_slice(); + } + + // like in std::string + char *data() { + return as_mutable_slice().data(); + } + const char *data() const { + return as_slice().data(); + } + char operator[](size_t at) const { + return as_slice()[at]; + } + + bool empty() const { + return size() == 0; + } + + size_t size() const { + return impl_.size(); + } + + // like in std::string + size_t length() const { + return size(); + } + + void clear() { + impl_.clear(); + } + + private: + friend class SharedSlice; + explicit UniqueSharedSlice(Impl impl) : impl_(std::move(impl)) { + } + Impl impl_; +}; + +inline SharedSlice::SharedSlice(UniqueSharedSlice from) : impl_(std::move(from.impl_)) { +} + +template +class UniqueSliceImpl { + using Impl = detail::UnsafeSharedSlice; + + public: + UniqueSliceImpl() = default; + + explicit UniqueSliceImpl(size_t size) : impl_(Impl::create(size)) { + } + UniqueSliceImpl(size_t size, char c) : impl_(Impl::create(size)) { + std::memset(as_mutable_slice().data(), c, size); + } + explicit UniqueSliceImpl(Slice slice) : impl_(Impl::create(slice)) { + } + + UniqueSliceImpl(const char *ptr, size_t size) : UniqueSliceImpl(Slice(ptr, size)) { + } + + UniqueSliceImpl copy() const { + return UniqueSliceImpl(as_slice()); + } + + Slice as_slice() const { + return impl_.as_slice(); + } + + MutableSlice as_mutable_slice() { + return impl_.as_mutable_slice(); + } + + operator Slice() const { + return as_slice(); + } + + // like in std::string + char *data() { + return as_mutable_slice().data(); + } + const char *data() const { + return as_slice().data(); + } + char operator[](size_t at) const { + return as_slice()[at]; + } + + bool empty() const { + return size() == 0; + } + + size_t size() const { + return impl_.size(); + } + + // like in std::string + size_t length() const { + return size(); + } + + void clear() { + impl_.clear(); + } + + private: + explicit UniqueSliceImpl(Impl impl) : impl_(std::move(impl)) { + } + Impl impl_; +}; + +using UniqueSlice = UniqueSliceImpl; +using SecureString = UniqueSliceImpl; + +inline MutableSlice as_mutable_slice(UniqueSharedSlice &unique_shared_slice) { + return unique_shared_slice.as_mutable_slice(); +} + +inline MutableSlice as_mutable_slice(UniqueSlice &unique_slice) { + return unique_slice.as_mutable_slice(); +} + +inline MutableSlice as_mutable_slice(SecureString &secure_string) { + return secure_string.as_mutable_slice(); +} + +} // namespace td diff --git a/thrid-party/ton/include/td/utils/Slice-decl.h b/thrid-party/ton/include/td/utils/Slice-decl.h new file mode 100644 index 000000000..5f86c3379 --- /dev/null +++ b/thrid-party/ton/include/td/utils/Slice-decl.h @@ -0,0 +1,224 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "td/utils/common.h" + +#include + +namespace td { + +class Slice; + +class MutableSlice { + char *s_; + size_t len_; + + struct private_tag {}; + + public: + MutableSlice(); + MutableSlice(char *s, size_t len); + MutableSlice(unsigned char *s, size_t len); + MutableSlice(string &s); + template + explicit MutableSlice(T s, std::enable_if_t::value, private_tag> = {}); + MutableSlice(char *s, char *t); + MutableSlice(unsigned char *s, unsigned char *t); + template + constexpr MutableSlice(char (&a)[N]) = delete; + + bool empty() const; + size_t size() const; + + MutableSlice &remove_prefix(size_t prefix_len); + MutableSlice &remove_suffix(size_t suffix_len); + MutableSlice &truncate(size_t size); + + MutableSlice copy() const; + + char *data() const; + char *begin() const; + unsigned char *ubegin() const; + char *end() const; + unsigned char *uend() const; + + string str() const; + MutableSlice substr(size_t from) const; + MutableSlice substr(size_t from, size_t size) const; + size_t find(char c) const; + size_t rfind(char c) const; + void fill(char c); + void fill_zero(); + void fill_zero_secure(); + + void copy_from(Slice from); + + char &back(); + char &operator[](size_t i); + + static const size_t npos = string::npos; +}; + +class Slice { + const char *s_; + size_t len_; + + struct private_tag {}; + + public: + Slice(); + Slice(const MutableSlice &other); + Slice(const char *s, size_t len); + Slice(const unsigned char *s, size_t len); + Slice(const string &s); + template + explicit Slice(T s, std::enable_if_t>::value, private_tag> = {}); + template + explicit Slice(T s, std::enable_if_t>::value, private_tag> = {}); + Slice(const char *s, const char *t); + Slice(const unsigned char *s, const unsigned char *t); + + template + constexpr Slice(char (&a)[N]) = delete; + + template + constexpr Slice(const char (&a)[N]) : s_(a), len_(N - 1) { + } + + Slice &operator=(string &&s) = delete; + + template + constexpr Slice &operator=(char (&a)[N]) = delete; + + template + constexpr Slice &operator=(const char (&a)[N]) { + s_ = a; + len_ = N - 1; + return *this; + } + + bool empty() const; + size_t size() const; + + Slice &remove_prefix(size_t prefix_len); + Slice &remove_suffix(size_t suffix_len); + Slice &truncate(size_t size); + + Slice copy() const; + + const char *data() const; + const char *begin() const; + const unsigned char *ubegin() const; + const char *end() const; + const unsigned char *uend() const; + + string str() const; + Slice substr(size_t from) const; + Slice substr(size_t from, size_t size) const; + size_t find(char c) const; + size_t rfind(char c) const; + + char back() const; + char operator[](size_t i) const; + + static const size_t npos = string::npos; +}; + +bool operator==(const Slice &a, const Slice &b); +bool operator!=(const Slice &a, const Slice &b); +bool operator<(const Slice &a, const Slice &b); + +class MutableCSlice : public MutableSlice { + struct private_tag {}; + + MutableSlice &remove_suffix(size_t suffix_len) = delete; + MutableSlice &truncate(size_t size) = delete; + + public: + MutableCSlice() = delete; + MutableCSlice(string &s) : MutableSlice(s) { + } + template + explicit MutableCSlice(T s, std::enable_if_t::value, private_tag> = {}) : MutableSlice(s) { + } + MutableCSlice(char *s, char *t); + + template + constexpr MutableCSlice(char (&a)[N]) = delete; + + const char *c_str() const { + return begin(); + } +}; + +class CSlice : public Slice { + struct private_tag {}; + + Slice &remove_suffix(size_t suffix_len) = delete; + Slice &truncate(size_t size) = delete; + + public: + explicit CSlice(const MutableSlice &other) : Slice(other) { + } + CSlice(const MutableCSlice &other) : Slice(other.begin(), other.size()) { + } + CSlice(const string &s) : Slice(s) { + } + template + explicit CSlice(T s, std::enable_if_t>::value, private_tag> = {}) + : Slice(s) { + } + template + explicit CSlice(T s, std::enable_if_t>::value, private_tag> = {}) + : Slice(s) { + } + CSlice(const char *s, const char *t); + + template + constexpr CSlice(char (&a)[N]) = delete; + + template + constexpr CSlice(const char (&a)[N]) : Slice(a) { + } + + CSlice() : CSlice("") { + } + + CSlice &operator=(string &&s) = delete; + + template + constexpr CSlice &operator=(char (&a)[N]) = delete; + + template + constexpr CSlice &operator=(const char (&a)[N]) { + this->Slice::operator=(a); + return *this; + } + + const char *c_str() const { + return begin(); + } +}; + +struct SliceHash { + std::size_t operator()(Slice slice) const; +}; + +} // namespace td diff --git a/thrid-party/ton/include/td/utils/Slice.h b/thrid-party/ton/include/td/utils/Slice.h new file mode 100644 index 000000000..2bd02c89f --- /dev/null +++ b/thrid-party/ton/include/td/utils/Slice.h @@ -0,0 +1,339 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "td/utils/common.h" +#include "td/utils/Slice-decl.h" + +#include +#include + +namespace td { + +inline MutableSlice::MutableSlice() : s_(const_cast("")), len_(0) { +} + +inline MutableSlice::MutableSlice(char *s, size_t len) : s_(s), len_(len) { + CHECK(s_ != nullptr); +} + +inline MutableSlice::MutableSlice(unsigned char *s, size_t len) : s_(reinterpret_cast(s)), len_(len) { + CHECK(s_ != nullptr); +} + +inline MutableSlice::MutableSlice(string &s) : s_(&s[0]), len_(s.size()) { +} + +template +MutableSlice::MutableSlice(T s, std::enable_if_t::value, private_tag>) : s_(s) { + CHECK(s_ != nullptr); + len_ = std::strlen(s_); +} + +inline MutableSlice::MutableSlice(char *s, char *t) : MutableSlice(s, t - s) { +} + +inline MutableSlice::MutableSlice(unsigned char *s, unsigned char *t) : MutableSlice(s, t - s) { +} + +inline size_t MutableSlice::size() const { + return len_; +} + +inline MutableSlice &MutableSlice::remove_prefix(size_t prefix_len) { + CHECK(prefix_len <= len_); + s_ += prefix_len; + len_ -= prefix_len; + return *this; +} +inline MutableSlice &MutableSlice::remove_suffix(size_t suffix_len) { + CHECK(suffix_len <= len_); + len_ -= suffix_len; + return *this; +} + +inline MutableSlice &MutableSlice::truncate(size_t size) { + if (len_ > size) { + len_ = size; + } + return *this; +} + +inline MutableSlice MutableSlice::copy() const { + return *this; +} + +inline bool MutableSlice::empty() const { + return len_ == 0; +} + +inline char *MutableSlice::data() const { + return s_; +} + +inline char *MutableSlice::begin() const { + return s_; +} + +inline unsigned char *MutableSlice::ubegin() const { + return reinterpret_cast(s_); +} + +inline char *MutableSlice::end() const { + return s_ + len_; +} + +inline unsigned char *MutableSlice::uend() const { + return reinterpret_cast(s_) + len_; +} + +inline string MutableSlice::str() const { + return string(begin(), size()); +} + +inline MutableSlice MutableSlice::substr(size_t from) const { + CHECK(from <= len_); + return MutableSlice(s_ + from, len_ - from); +} +inline MutableSlice MutableSlice::substr(size_t from, size_t size) const { + CHECK(from <= len_); + return MutableSlice(s_ + from, min(size, len_ - from)); +} + +inline size_t MutableSlice::find(char c) const { + for (size_t pos = 0; pos < len_; pos++) { + if (s_[pos] == c) { + return pos; + } + } + return npos; +} + +inline size_t MutableSlice::rfind(char c) const { + for (size_t pos = len_; pos-- > 0;) { + if (s_[pos] == c) { + return pos; + } + } + return npos; +} + +inline void MutableSlice::copy_from(Slice from) { + CHECK(size() >= from.size()); + std::memcpy(ubegin(), from.ubegin(), from.size()); +} + +inline char &MutableSlice::back() { + CHECK(1 <= len_); + return s_[len_ - 1]; +} + +inline char &MutableSlice::operator[](size_t i) { + return s_[i]; +} + +inline Slice::Slice() : s_(""), len_(0) { +} + +inline Slice::Slice(const MutableSlice &other) : s_(other.begin()), len_(other.size()) { +} + +inline Slice::Slice(const char *s, size_t len) : s_(s), len_(len) { + CHECK(s_ != nullptr); +} + +inline Slice::Slice(const unsigned char *s, size_t len) : s_(reinterpret_cast(s)), len_(len) { + CHECK(s_ != nullptr); +} + +inline Slice::Slice(const string &s) : s_(s.c_str()), len_(s.size()) { +} + +template +Slice::Slice(T s, std::enable_if_t>::value, private_tag>) : s_(s) { + CHECK(s_ != nullptr); + len_ = std::strlen(s_); +} + +template +Slice::Slice(T s, std::enable_if_t>::value, private_tag>) : s_(s) { + CHECK(s_ != nullptr); + len_ = std::strlen(s_); +} + +inline Slice::Slice(const char *s, const char *t) : s_(s), len_(t - s) { + CHECK(s_ != nullptr); +} + +inline Slice::Slice(const unsigned char *s, const unsigned char *t) + : s_(reinterpret_cast(s)), len_(t - s) { + CHECK(s_ != nullptr); +} + +inline size_t Slice::size() const { + return len_; +} + +inline Slice &Slice::remove_prefix(size_t prefix_len) { + CHECK(prefix_len <= len_); + s_ += prefix_len; + len_ -= prefix_len; + return *this; +} + +inline Slice &Slice::remove_suffix(size_t suffix_len) { + CHECK(suffix_len <= len_); + len_ -= suffix_len; + return *this; +} + +inline Slice &Slice::truncate(size_t size) { + if (len_ > size) { + len_ = size; + } + return *this; +} + +inline Slice Slice::copy() const { + return *this; +} + +inline bool Slice::empty() const { + return len_ == 0; +} + +inline const char *Slice::data() const { + return s_; +} + +inline const char *Slice::begin() const { + return s_; +} + +inline const unsigned char *Slice::ubegin() const { + return reinterpret_cast(s_); +} + +inline const char *Slice::end() const { + return s_ + len_; +} + +inline const unsigned char *Slice::uend() const { + return reinterpret_cast(s_) + len_; +} + +inline string Slice::str() const { + return string(begin(), size()); +} + +inline Slice Slice::substr(size_t from) const { + CHECK(from <= len_); + return Slice(s_ + from, len_ - from); +} +inline Slice Slice::substr(size_t from, size_t size) const { + CHECK(from <= len_); + return Slice(s_ + from, min(size, len_ - from)); +} + +inline size_t Slice::find(char c) const { + for (size_t pos = 0; pos < len_; pos++) { + if (s_[pos] == c) { + return pos; + } + } + return npos; +} + +inline size_t Slice::rfind(char c) const { + for (size_t pos = len_; pos-- > 0;) { + if (s_[pos] == c) { + return pos; + } + } + return npos; +} + +inline char Slice::back() const { + CHECK(1 <= len_); + return s_[len_ - 1]; +} + +inline char Slice::operator[](size_t i) const { + return s_[i]; +} + +inline bool operator==(const Slice &a, const Slice &b) { + return a.size() == b.size() && std::memcmp(a.data(), b.data(), a.size()) == 0; +} + +inline bool operator!=(const Slice &a, const Slice &b) { + return !(a == b); +} + +inline bool operator<(const Slice &a, const Slice &b) { + auto x = std::memcmp(a.data(), b.data(), td::min(a.size(), b.size())); + if (x == 0) { + return a.size() < b.size(); + } + return x < 0; +} + +inline MutableCSlice::MutableCSlice(char *s, char *t) : MutableSlice(s, t) { + CHECK(*t == '\0'); +} + +inline CSlice::CSlice(const char *s, const char *t) : Slice(s, t) { + CHECK(*t == '\0'); +} + +inline std::size_t SliceHash::operator()(Slice slice) const { + // simple string hash + std::size_t result = 0; + constexpr std::size_t MUL = 123456789; + for (auto c : slice) { + result = result * MUL + c; + } + return result; +} + +inline Slice as_slice(Slice slice) { + return slice; +} + +inline MutableSlice as_slice(MutableSlice slice) { + return slice; +} + +inline Slice as_slice(const string &str) { + return str; +} + +inline MutableSlice as_slice(string &str) { + return str; +} + +inline MutableSlice as_mutable_slice(MutableSlice slice) { + return slice; +} + +inline MutableSlice as_mutable_slice(string &str) { + return str; +} + +} // namespace td diff --git a/thrid-party/ton/include/td/utils/check.h b/thrid-party/ton/include/td/utils/check.h new file mode 100644 index 000000000..938323236 --- /dev/null +++ b/thrid-party/ton/include/td/utils/check.h @@ -0,0 +1,44 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#define TD_DUMMY_CHECK(condition) ((void)(condition)) + +#define CHECK(condition) \ + if (!(condition)) { \ + ::td::detail::process_check_error(#condition, __FILE__, __LINE__); \ + } + +// clang-format off +#ifdef NDEBUG + #define DCHECK TD_DUMMY_CHECK +#else + #define DCHECK CHECK +#endif +// clang-format on + +#define UNREACHABLE() ::td::detail::process_check_error("Unreachable", __FILE__, __LINE__) + +namespace td { +namespace detail { + +[[noreturn]] void process_check_error(const char *message, const char *file, int line); + +} // namespace detail +} // namespace td diff --git a/thrid-party/ton/include/td/utils/common.h b/thrid-party/ton/include/td/utils/common.h new file mode 100644 index 000000000..dcfb76774 --- /dev/null +++ b/thrid-party/ton/include/td/utils/common.h @@ -0,0 +1,130 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "td/utils/config.h" +#include "td/utils/port/platform.h" + +// clang-format off +#if TD_WINDOWS + #ifndef NTDDI_VERSION + #define NTDDI_VERSION 0x06020000 + #endif + #ifndef WINVER + #define WINVER 0x0602 + #endif + #ifndef _WIN32_WINNT + #define _WIN32_WINNT 0x0602 + #endif + #ifndef NOMINMAX + #define NOMINMAX + #endif + #ifndef UNICODE + #define UNICODE + #endif + #ifndef _UNICODE + #define _UNICODE + #endif + #ifndef _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS + #endif + + #include + #include + + #include + #include + #undef ERROR +#endif +// clang-format on + +#include "td/utils/check.h" +#include "td/utils/int_types.h" +#include "td/utils/unique_ptr.h" + +#include +#include + +#define TD_DEBUG + +#define TD_DEFINE_STR_IMPL(x) #x +#define TD_DEFINE_STR(x) TD_DEFINE_STR_IMPL(x) +#define TD_CONCAT_IMPL(x, y) x##y +#define TD_CONCAT(x, y) TD_CONCAT_IMPL(x, y) + +// clang-format off +#if TD_WINDOWS + #define TD_DIR_SLASH '\\' +#else + #define TD_DIR_SLASH '/' +#endif +// clang-format on + +#if TD_USE_ASAN +#include +#define TD_LSAN_IGNORE(x) __lsan_ignore_object(x) +#else +#define TD_LSAN_IGNORE(x) (void)(x) +#endif + +namespace td { + +inline bool likely(bool x) { +#if TD_CLANG || TD_GCC || TD_INTEL + return __builtin_expect(x, 1); +#else + return x; +#endif +} + +inline bool unlikely(bool x) { +#if TD_CLANG || TD_GCC || TD_INTEL + return __builtin_expect(x, 0); +#else + return x; +#endif +} + +// replace std::max and std::min to not have to include everywhere +// as a side bonus, accept parameters by value, so constexpr variables aren't required to be instantiated +template +T max(T a, T b) { + return a < b ? b : a; +} + +template +T min(T a, T b) { + return a < b ? a : b; +} + +using string = std::string; + +template +using vector = std::vector; + +struct Unit {}; + +struct Auto { + template + operator ToT() const { + return ToT(); + } +}; + +} // namespace td diff --git a/thrid-party/ton/include/td/utils/config.h b/thrid-party/ton/include/td/utils/config.h new file mode 100644 index 000000000..bb671cfa2 --- /dev/null +++ b/thrid-party/ton/include/td/utils/config.h @@ -0,0 +1,9 @@ +#pragma once + +#define TD_HAVE_OPENSSL 1 +#define TD_HAVE_ZLIB 1 +#define TD_HAVE_CRC32C 1 +#define TD_HAVE_COROUTINES 0 +#define TD_HAVE_ABSL 0 +#define TD_HAVE_GETOPT 1 +#define TD_FD_DEBUG 0 diff --git a/thrid-party/ton/include/td/utils/int_types.h b/thrid-party/ton/include/td/utils/int_types.h new file mode 100644 index 000000000..b7fb0115c --- /dev/null +++ b/thrid-party/ton/include/td/utils/int_types.h @@ -0,0 +1,57 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "td/utils/port/platform.h" + +#include +#include + +namespace td { + +#if !TD_WINDOWS +using size_t = std::size_t; +#endif + +using int8 = std::int8_t; +using int16 = std::int16_t; +using uint16 = std::uint16_t; +using int32 = std::int32_t; +using uint32 = std::uint32_t; +using int64 = std::int64_t; +using uint64 = std::uint64_t; + +static_assert(sizeof(std::uint8_t) == sizeof(unsigned char), "Unsigned char expected to be 8-bit"); +using uint8 = unsigned char; + +#if TD_MSVC +#pragma warning(push) +#pragma warning(disable : 4309) +#endif + +static_assert(static_cast(128) == -128 || static_cast(128) == 128, + "Unexpected cast to char implementation-defined behaviour"); +static_assert(static_cast(256) == 0, "Unexpected cast to char implementation-defined behaviour"); +static_assert(static_cast(-256) == 0, "Unexpected cast to char implementation-defined behaviour"); + +#if TD_MSVC +#pragma warning(pop) +#endif + +} // namespace td diff --git a/thrid-party/ton/include/td/utils/port/platform.h b/thrid-party/ton/include/td/utils/port/platform.h new file mode 100644 index 000000000..821685e29 --- /dev/null +++ b/thrid-party/ton/include/td/utils/port/platform.h @@ -0,0 +1,128 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +// clang-format off + +/*** Platform macros ***/ +#if defined(_WIN32) || defined(_WINDOWS) // _WINDOWS is defined by CMake + #if defined(__cplusplus_winrt) + #define TD_WINRT 1 + #endif + #if defined(__cplusplus_cli) + #define TD_CLI 1 + #endif + #define TD_WINDOWS 1 +#elif defined(__APPLE__) + #include "TargetConditionals.h" + #if TARGET_OS_IPHONE + // iOS/watchOS/tvOS + #if TARGET_OS_IOS + #define TD_DARWIN_IOS 1 + #elif TARGET_OS_TV + #define TD_DARWIN_TV_OS 1 + #elif TARGET_OS_WATCH + #define TD_DARWIN_WATCH_OS 1 + #else + #warning "Probably unsupported Apple iPhone platform. Feel free to try to compile" + #endif + #elif TARGET_OS_MAC + // Other kinds of macOS + #define TD_DARWIN_MAC 1 + #else + #warning "Probably unsupported Apple platform. Feel free to try to compile" + #endif + #define TD_DARWIN 1 +#elif defined(ANDROID) || defined(__ANDROID__) + #define TD_ANDROID 1 +#elif defined(TIZEN_DEPRECATION) + #define TD_TIZEN 1 +#elif defined(__linux__) + #define TD_LINUX 1 +#elif defined(__FreeBSD__) + #define TD_FREEBSD 1 +#elif defined(__OpenBSD__) + #define TD_OPENBSD 1 +#elif defined(__NetBSD__) + #define TD_NETBSD 1 +#elif defined(__CYGWIN__) + #define TD_CYGWIN 1 +#elif defined(__EMSCRIPTEN__) + #define TD_EMSCRIPTEN 1 +#elif defined(__unix__) // all unices not caught above + #warning "Probably unsupported Unix platform. Feel free to try to compile" + #define TD_CYGWIN 1 +#else + #error "Probably unsupported platform. Feel free to remove the error and try to recompile" +#endif + +#if defined(__ICC) || defined(__INTEL_COMPILER) + #define TD_INTEL 1 +#elif defined(__clang__) + #define TD_CLANG 1 +#elif defined(__GNUC__) || defined(__GNUG__) + #define TD_GCC 1 +#elif defined(_MSC_VER) + #define TD_MSVC 1 +#else + #warning "Probably unsupported compiler. Feel free to try to compile" +#endif + +#if TD_GCC || TD_CLANG || TD_INTEL + #define TD_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) + #define TD_ATTRIBUTE_FORMAT_PRINTF(from, to) __attribute__((format(printf, from, to))) +#else + #define TD_WARN_UNUSED_RESULT + #define TD_ATTRIBUTE_FORMAT_PRINTF(from, to) +#endif + +#if TD_MSVC + #define TD_UNUSED __pragma(warning(suppress : 4100)) +#elif TD_CLANG || TD_GCC || TD_INTEL + #define TD_UNUSED __attribute__((unused)) +#else + #define TD_UNUSED +#endif + +#define TD_HAVE_ATOMIC_SHARED_PTR 1 + +// No atomic operations on std::shared_ptr in libstdc++ before 5.0 +// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57250 +#ifdef __GLIBCXX__ + #undef TD_HAVE_ATOMIC_SHARED_PTR +#endif + +// Also no atomic operations on std::shared_ptr when clang __has_feature(cxx_atomic) is defined and zero +#if defined(__has_feature) + #if !__has_feature(cxx_atomic) + #undef TD_HAVE_ATOMIC_SHARED_PTR + #endif +#endif + +#ifdef TD_HAVE_ATOMIC_SHARED_PTR // unfortunately we can't check for __GLIBCXX__ here, it is not defined yet + #undef TD_HAVE_ATOMIC_SHARED_PTR +#endif + +#define TD_CONCURRENCY_PAD 128 + +#if !TD_WINDOWS && defined(__SIZEOF_INT128__) +#define TD_HAVE_INT128 1 +#endif + +// clang-format on diff --git a/thrid-party/ton/include/td/utils/unique_ptr.h b/thrid-party/ton/include/td/utils/unique_ptr.h new file mode 100644 index 000000000..eed4cb65e --- /dev/null +++ b/thrid-party/ton/include/td/utils/unique_ptr.h @@ -0,0 +1,117 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include +#include +#include + +namespace td { + +// const-correct and compiler-friendly (g++ RAM and CPU usage 10 times less than for std::unique_ptr) +// replacement for std::unique_ptr +template +class unique_ptr final { + public: + using pointer = T *; + using element_type = T; + + unique_ptr() noexcept = default; + unique_ptr(const unique_ptr &other) = delete; + unique_ptr &operator=(const unique_ptr &other) = delete; + unique_ptr(unique_ptr &&other) noexcept : ptr_(other.release()) { + } + unique_ptr &operator=(unique_ptr &&other) noexcept { + reset(other.release()); + return *this; + } + ~unique_ptr() { + reset(); + } + + unique_ptr(std::nullptr_t) noexcept { + } + explicit unique_ptr(T *ptr) noexcept : ptr_(ptr) { + } + template ::value>> + unique_ptr(unique_ptr &&other) noexcept : ptr_(static_cast(other.release())) { + } + template ::value>> + unique_ptr &operator=(unique_ptr &&other) noexcept { + reset(static_cast(other.release())); + return *this; + } + void reset(T *new_ptr = nullptr) noexcept { + delete ptr_; + ptr_ = new_ptr; + } + T *release() noexcept { + auto res = ptr_; + ptr_ = nullptr; + return res; + } + T *get() noexcept { + return ptr_; + } + const T *get() const noexcept { + return ptr_; + } + T *operator->() noexcept { + return ptr_; + } + const T *operator->() const noexcept { + return ptr_; + } + T &operator*() noexcept { + return *ptr_; + } + const T &operator*() const noexcept { + return *ptr_; + } + explicit operator bool() const noexcept { + return ptr_ != nullptr; + } + + private: + T *ptr_{nullptr}; +}; + +template +bool operator==(std::nullptr_t, const unique_ptr &p) { + return !p; +} +template +bool operator==(const unique_ptr &p, std::nullptr_t) { + return !p; +} +template +bool operator!=(std::nullptr_t, const unique_ptr &p) { + return static_cast(p); +} +template +bool operator!=(const unique_ptr &p, std::nullptr_t) { + return static_cast(p); +} + +template +unique_ptr make_unique(Args &&... args) { + return unique_ptr(new Type(std::forward(args)...)); +} + +} // namespace td diff --git a/thrid-party/ton/include/tl/TlObject.h b/thrid-party/ton/include/tl/TlObject.h new file mode 100644 index 000000000..b98996b04 --- /dev/null +++ b/thrid-party/ton/include/tl/TlObject.h @@ -0,0 +1,177 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +/** + * \file + * Contains declarations of a base class for all TL-objects and some helper methods + */ + +#include +#include +#include +#include + +namespace td { +class TlStorerCalcLength; + +class TlStorerUnsafe; + +class TlStorerToString; +} // namespace td +namespace ton { +/** + * This class is a base class for all TL-objects. + */ +class TlObject { + public: + /** + * Returns identifier uniquely determining TL-type of the object. + */ + virtual std::int32_t get_id() const = 0; + + /** + * Appends object to the storer serializing object to a buffer of fixed length. + * \param[in] s Storer to which object will be appended. + */ + virtual void store(td::TlStorerUnsafe &s) const { + } + + /** + * Appends object to the storer calculating TL-length of the serialized object. + * \param[in] s Storer to which object will be appended. + */ + virtual void store(td::TlStorerCalcLength &s) const { + } + + /** + * Helper function for to_string method. Appends string representation of the object to the storer. + * \param[in] s Storer to which object string representation will be appended. + * \param[in] field_name Object field_name if applicable. + */ + virtual void store(td::TlStorerToString &s, const char *field_name) const = 0; + + /** + * Default constructor. + */ + TlObject() = default; + + /** + * Deleted copy constructor. + */ + TlObject(const TlObject &) = delete; + + /** + * Deleted copy assignment operator. + */ + TlObject &operator=(const TlObject &) = delete; + + /** + * Default move constructor. + */ + TlObject(TlObject &&) = default; + + /** + * Default move assignment operator. + */ + TlObject &operator=(TlObject &&) = default; + + /** + * Virtual desctructor. + */ + virtual ~TlObject() = default; +}; + +/** + * A smart wrapper to store a pointer to a TL-object. + */ +template +using tl_object_ptr = std::unique_ptr; + +/** + * A function to create a dynamically allocated TL-object. Can be treated as an analogue of std::make_unique. + * Examples of usage: + * \code + * auto get_auth_state_request = td::create_tl_object(); + * auto send_message_request = td::create_tl_object(chat_id, 0, false, false, nullptr, + * td::create_tl_object("Hello, world!!!", false, true, {}, nullptr)); + * \endcode + * + * \tparam Type Type of a TL-object to construct. + * \param[in] args Arguments to pass to the object constructor. + * \return Wrapped pointer to the created TL-object. + */ +template +tl_object_ptr create_tl_object(Args &&... args) { + return tl_object_ptr(new Type(std::forward(args)...)); +} + +/** + * A function to downcast a wrapped pointer to TL-object to a pointer to its subclass. + * It is undefined behaviour to cast an object to the wrong type. + * Examples of usage: + * \code + * td::tl_object_ptr auth_state = ...; + * switch (auth_state->get_id()) { + * case td::td_api::authStateWaitPhoneNumber::ID: { + * auto state = td::move_tl_object_as(auth_state); + * // use state + * break; + * } + * case td::td_api::authStateWaitCode::ID: { + * auto state = td::move_tl_object_as(auth_state); + * // use state + * break; + * } + * case td::td_api::authStateWaitPassword::ID: { + * auto state = td::move_tl_object_as(auth_state); + * // use state + * break; + * } + * case td::td_api::authStateOk::ID: { + * auto state = td::move_tl_object_as(auth_state); + * // use state + * break; + * } + * case td::td_api::authStateLoggingOut::ID: { + * auto state = td::move_tl_object_as(auth_state); + * // use state + * break; + * } + * } + * \endcode + * + * \tparam ToT Type of a TL-object to move to. + * \tparam FromT Type of a TL-object to move from, auto-deduced. + * \param[in] from Wrapped pointer to a TL-object. + */ +template +tl_object_ptr move_tl_object_as(tl_object_ptr &from) { + return tl_object_ptr(static_cast(from.release())); +} + +/** + * \overload + */ +template +tl_object_ptr move_tl_object_as(tl_object_ptr &&from) { + return tl_object_ptr(static_cast(from.release())); +} + +} // namespace ton diff --git a/thrid-party/ton/include/tonlib/Client.h b/thrid-party/ton/include/tonlib/Client.h new file mode 100644 index 000000000..42da243ef --- /dev/null +++ b/thrid-party/ton/include/tonlib/Client.h @@ -0,0 +1,52 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once +#include "auto/tl/tonlib_api.h" + +namespace tonlib_api = ton::tonlib_api; + +namespace tonlib { +class Client final { + public: + Client(); + struct Request { + std::uint64_t id; + tonlib_api::object_ptr function; + }; + + void send(Request&& request); + + struct Response { + std::uint64_t id; + tonlib_api::object_ptr object; + }; + + Response receive(double timeout); + + static Response execute(Request&& request); + + ~Client(); + Client(Client&& other); + Client& operator=(Client&& other); + + private: + class Impl; + std::unique_ptr impl_; +}; +} // namespace tonlib diff --git a/thrid-party/ton/include/tonlib/tonlib_client_json.h b/thrid-party/ton/include/tonlib/tonlib_client_json.h new file mode 100644 index 000000000..0e08d7845 --- /dev/null +++ b/thrid-party/ton/include/tonlib/tonlib_client_json.h @@ -0,0 +1,39 @@ +/* + This file is part of TON Blockchain Library. + + TON Blockchain Library is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + TON Blockchain Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with TON Blockchain Library. If not, see . + + Copyright 2017-2019 Telegram Systems LLP +*/ +#pragma once + +#include "tonlib/tonlibjson_export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +TONLIBJSON_EXPORT void *tonlib_client_json_create(); + +TONLIBJSON_EXPORT void tonlib_client_json_send(void *client, const char *request); + +TONLIBJSON_EXPORT const char *tonlib_client_json_receive(void *client, double timeout); + +TONLIBJSON_EXPORT const char *tonlib_client_json_execute(void *client, const char *request); + +TONLIBJSON_EXPORT void tonlib_client_json_destroy(void *client); + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/thrid-party/ton/include/tonlib/tonlibjson_export.h b/thrid-party/ton/include/tonlib/tonlibjson_export.h new file mode 100644 index 000000000..72cf92e45 --- /dev/null +++ b/thrid-party/ton/include/tonlib/tonlibjson_export.h @@ -0,0 +1,42 @@ + +#ifndef TONLIBJSON_EXPORT_H +#define TONLIBJSON_EXPORT_H + +#ifdef TONLIBJSON_STATIC_DEFINE +# define TONLIBJSON_EXPORT +# define TONLIBJSON_NO_EXPORT +#else +# ifndef TONLIBJSON_EXPORT +# ifdef tonlibjson_EXPORTS + /* We are building this library */ +# define TONLIBJSON_EXPORT __attribute__((visibility("default"))) +# else + /* We are using this library */ +# define TONLIBJSON_EXPORT __attribute__((visibility("default"))) +# endif +# endif + +# ifndef TONLIBJSON_NO_EXPORT +# define TONLIBJSON_NO_EXPORT __attribute__((visibility("hidden"))) +# endif +#endif + +#ifndef TONLIBJSON_DEPRECATED +# define TONLIBJSON_DEPRECATED __attribute__ ((__deprecated__)) +#endif + +#ifndef TONLIBJSON_DEPRECATED_EXPORT +# define TONLIBJSON_DEPRECATED_EXPORT TONLIBJSON_EXPORT TONLIBJSON_DEPRECATED +#endif + +#ifndef TONLIBJSON_DEPRECATED_NO_EXPORT +# define TONLIBJSON_DEPRECATED_NO_EXPORT TONLIBJSON_NO_EXPORT TONLIBJSON_DEPRECATED +#endif + +#if 0 /* DEFINE_NO_DEPRECATED */ +# ifndef TONLIBJSON_NO_DEPRECATED +# define TONLIBJSON_NO_DEPRECATED +# endif +#endif + +#endif /* TONLIBJSON_EXPORT_H */ diff --git a/thrid-party/ton/lib/libadnllite.a b/thrid-party/ton/lib/libadnllite.a new file mode 100644 index 0000000000000000000000000000000000000000..8bc8819689d95a791550ac97cc1ee30cacd2505b GIT binary patch literal 289504 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%0DlQo^#CM&P6krGTb+#e0e=trc3>0I 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 Y%I6u|E~liNH0Pw4lOj$MvkxEs0j&y;K>z>% literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/liblite-client-common.a b/thrid-party/ton/lib/liblite-client-common.a new file mode 100644 index 0000000000000000000000000000000000000000..6ab239f4204362f81f3e1d0007da9c27711af19e GIT binary patch literal 31216 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 literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libsmc-envelope.a b/thrid-party/ton/lib/libsmc-envelope.a new file mode 100644 index 0000000000000000000000000000000000000000..713cfe9201cc8632932f4843a04c9d8203723ce2 GIT binary patch literal 229912 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 IvcaMM2JSE8EC2ui literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libtdactor.a b/thrid-party/ton/lib/libtdactor.a new file mode 100644 index 0000000000000000000000000000000000000000..500958738c3a7e51560980f53c825516191330f2 GIT binary patch literal 112592 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 WdI#(E2OofAlK!(BTJpK4{C@#lI_IVU literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libtddb.a b/thrid-party/ton/lib/libtddb.a new file mode 100644 index 0000000000000000000000000000000000000000..3dbf57ebdd7239f5fcf19a81453fd985a472c3d7 GIT binary patch literal 223488 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 bpG8}rjt0L_8RGpfsb?Jd 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

*~_FxE-*W|8^WtRl# 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 V^S}lkG#|`G3wpg*ul^kV{XYQ1S>*r# literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libtdutils.a b/thrid-party/ton/lib/libtdutils.a new file mode 100644 index 0000000000000000000000000000000000000000..1edceb9eac0008ca4fe6642e8c30d1b29a216cce GIT binary patch literal 967488 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�o_tRa_PdVMbjQDrUZA2$1} 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

;YZwGu-&KXLJYpp)8Yzc z3>ZaTpTtGTMx5=j!UedUJP7jA7oVCxJ7?`efL;VpCb(O(8Ds}Ocgwpq@ynXxzMBRP z)3+b@_{SfxT04C1@((R}ZP7CGd9foh@^-|dlL%KX@J+AGb+=4}@bq;NT=n#Y&t2d< z?c7|z0QlXNJ?;l4mlWj(Z}AuZ&3$buy!t{wLKr_JI2!FV6I9u>>FGCBf2Uu{DH&>iD&2}Ha0uCS!D||nZdw?QC!Xyb1by9Rp zsR*CcSwkpEz>We94|9KxjEF=<6!%HClus{V(e~nI>{inXi&|iXGp*@W-GLF&u>~E8 zcEO`?`-R2a?d9eR?2JSefH7w|)S01qKpsxm(VuqhY-EY|pgxX=qP9k?eyQQ!Z; zCE~6sGcY#SKmPqH^TVptz}Rf!$Yobe4~)%me`^IxFfwx(`d&1Rd(dQeY(q*SazE~< zHSf-`l>>bK3SQvzKKlHj_6hrC(tZu?xfv;9NOJ#KUViq6&t%q4?=9`C%tdCqt>$$u zBamlB8eEnJba7{w;f8b^3^FBK(0Ve3wbx=vUGbJ zQP$^gLny@A9jmrw`H*N}P;XyJE+r;YFERorA@w4A>LrjSFCKO=;^-ixSK=*r4Y;}O z8_TMJB(Ojy>K@+8Thh33jqAv5w!}7;)w*+W#ai9kE_Dyj@P(@kUwA&SF3tyd_v~z# z@jsvM9@rrx;&wlitO{)a;@Z+8+&*UXR`|Q@;NZ!E=Mr3UYXY1_8_Ww}t}bn>s6}92 z0%TzHE46slxz>=|z{FHm{VyDgTZA@2B|`F~iy}qlHpPLe9U)>M6*0Vp*!?qkZ*QvA zDMlF?6|fwv&N3Id^@TS;A{9Vi=+o^t%+jAlx!}J7?`0_HS-CLdzry2-Y{<954f%*6 zpE2kti(pZtqAY^PqJ$_RwOJOTz<&kaWii4G3072ZEUTpuAsC6a1OzLE*0O;?Te7=bcv>u$+HG*s^aYfY|UwAYy zS)T{+QS)>o0Ax+xaum`>1973ps)X8{;H|Zb+9SI)Y zE$?Hv5Rvxu;H}_ESzA4^E0O+4puiIa?97wE2Q2WQ6h@%e!A<_&D9}k}PJ#j5)T@xo zj(3m^5tZ)HZRsbw@6P+EbJ4y}vO?2De|-%i=ldJ|WM}65$b2+TV_>3wywt{1xqJ9|U?m>;Tk(w`+y#bk#s? zl~!NaZr<(E$^uly1Ot7y7Mgj+KakCTnCIP^X0)ZIe<#iSO=@~L&HP>J27E|OOK(Xx zUrtN^EDbjvbM;q>zFSW=M@`OrIo0^JnR!>L@n~xLUsKH|QopJ_h`2|ZgA3Dln`WDt z{s+@UBI4=0^;k38cn1=GCnf#|rGX|PMgt|_jCeSte_C*#)G zs^E$hx#NvX>MmWrs)lJm6I_kTIqpm#*9rGVFwx?(3HE$A|AV_0m9)ffhv@cz?j+qy zwZj4xzC$g19)*Mb-pExtevGSp{)q7QdndTZDV}CWkU_3Zh;s@Ioa1l$0M!r=^U23WU|K%AZmd%^yoPDL+20GDkRd9-is&TV~NG z(m&rUIF9Q@yv^<_~z|1%AQqXMB zOF*%7$~zB~{(PWVy5^k)imEcQNYT?2{TvfChW`a9j_Bomn~P=8Rz-h?`oVB*pp36c zQ6DJ7se3_r2T;#w-Ye@{-mgK2z)ZckjPF)ZhL3>K-{s2w0!4YQjQ)Pl+5@^4l>E$A z=7V5@<{hBS&sI?K^$SIRqU<*-^Nor&D*IK+e5semUMY-pdx>Yt_3Ck zt3b(5EhzaeSLUh8d<-bVxfP`zE7aY*H&LcI(mL}gMR&^jkoQ|q#`Aq;4krrh5FGboxoPNvECPe2*&R#1k!5_A;I3qdI-^q|7tujpBz z^v{_L{d+*kC*uR_;@lLL+{4;oMv@tumHj4A+BYftMrB{G>}!?%0%c#V>`RorN6{Qm zrh~dF;sX)sAa0tgd`NT{{&l~@bACKOr1w#FDYNe1eyz;9Kl_m~>;5aE%(}n27U}T( zjDE%lb4RQn<%q}gH@e@|=Ye!T>Q(+Xq5ktBuR>2Ygv#fuFx#Rxe(x~nf*-s4pAp7x zX18iL^H`JJ{Hept^N)7-`yK96;b?bX<8WtvvAgr#ZnmE<=%?>kt1}iGvD3sHhS>gEVpR^u#(w~*gc@ofUGF|qWQ zfkSa;!I%5c(Ldg4iO~zLc+%uerZgSdvCuj z@2UN4j%sREpWeEY-r0(Y)@>z8@t-c_PZw)=NDny8&7Rk<(13p9oyVV_qq3> zBQ`wv$HP6(Wi$`)+*qj`TQf7<^VxJphf_RQ}pF3lc3V`?+<)&GN@gX~aFQ^yN zrQ*3t@#UI&xP9&w_!zck(TW0i#8Xp~sCRLbv^GkFEBHD?@~4cP3nV->H7dR$Y3+=! zTgB&5p}G;DUCfH@Se# zdK}Qew{+1n*7(a4{Hy%c%6Xr-yuu}!`6F`KEeRse-jB_#GYvNrz;}raV(I@uZLG1I? zH*XkixLaR9EfVlk8GthsY=YJ@YEaIoNI9b-wG=H;R8)A_=PPrrq8>##<6=0GTTquY z^A}q?8HpBZR{`F1u%yZEsmMW;60#UnMA=y(?(AFPGl4J1R&7DYPAB$f>XFa`oG$I4 zzwMZnLK`RNIbQXZgWJ##!OVSkQ5~S-1R!)0dJFd0a9Q63bXedO&)=)U5K;^KFx`cS z_BeRqJ_x;ns!b#8h_quX6S{78o@f! z>lE`k8>;+npf7g9k@@ND4=6vHfbt3@D>_I8mwQU}u{|a18-0KUBKZ9bWCu%1Fe`qd zli)my@`@DB0kI*f=fLG6=~6_OQ&CSu7=hWS5{p7qyX+qqh+N(zyv1!3_DzYi_&;6G z27S4DR>^u+sj6^6z*t5&wJhyEXFU+fV@`x^NK`k)6+hjBYwmniIi zp%wiMvHf3dMYZ-;ba#PhCij8tn65J}axYp@`efle1jNybMoO3Wn9(oaim=bl`eij= z?J|O6o373=f>WtWYUh4W5HRP1nj2w1&k9}O3RMG}G9T(!BQqCEo>Rzkh2|OdUzhf8 zp*PsU$%JgNk(n1r`zL8{+3f43J$sKG9DRiUO^TmvBZysP$qC>S?fC?d+F^ zI=U#5ta9WL7!m>#h^DTzx@z3@8m3#|M+Z*VI4~yo~Be z;yOuoAA0Dh3Vk)!S<68qUfo58MYWy?rodYvc{>@rNf!0+za(V<5+Bw$9y z`h#y0p-;n=qHx?SoTIcbqt0Ry*x=6o7WEBEgBQkd;f2`~H;ecmtk;|iIO>vG_xO@( z{FmTAAO9ZwXS>Hk@Tsaw>?vdCUzUw#4JBkBtsfSls_z&GAQXXQ}& zke@4oe5>j*Bp&}X;}4zU!!#=P$r5_z@NvlH3(rQcG7De5@I4b>F=58oKMNn{DzZ10 z<&Dk|jT-s$L}ej5uKPvS=DHfcle4MEy?4@Ba(s_dg>qtN0^# z%NDdcS@DmogYcss|4-I!E3`LOz0n~)bE@bnzdIfs;`hM1s1NZGOU@TXe_`3{xc)fm z>|K^_8t6N&#^ILo`Kz;USc;xuDSEV8{#5g)gg^QG@$e@bKj`bc+n}F<9ort9GQp?q zF1~|y2pYLRA76#A@=^NkB87j*W&VWq4vw4K{~JFdlU7)Iwkh#K6V9UMpV$G5cImTu zeFqkuyxHHhz8i1X;f-pKF^zGz5`7pW-8Rl;+^u&Ar}Z7>K(1fvbFb=L>b@ksYaGrN zxWAs>4GMi*OWjv>fPM2l_kxc1+}R_0gmZ4!d+x74@}A|Mu+zs)X+BNBL`^Q>_f%wSxUk;2)XjWlk4zUasr>cJ74^a#GAsNF<;==l z+Ucw;rXj4evPL+?vXZo@-K|?NW$L*LKlb{LzEGb4)WJ|Kiu;YLvd!X{59PwLD&@^+ zsRef)BjyjrkLLS};K2++MNSnEG+^@JViP_PRFvC<4>exwsib; zV#rqMcoS@q=FN2cK`hN>(sAxs;n;Kv9IL^(OmmiWw4~!=I>y#MJv>$bZWl_&3OdFX zKt02yKyD}R-a)rb$={(TG_D`E`okdEcj@ku&X#vE^x zj%P^6d+BJ!9Gj%$Z0Wd}jk8s~1^g_oXA{``zT?fB8>r}|Uw zWvRhWA6F8mbH%tA@2prq7jmdukSxvM+~|eTiR3F;e-l{6fXhWd*${$DqHEw=87_#{ ziJ%GD2>i>9Et`#PM69tvi;8YU1GGCix8=@Xr_7{-_B@VGMC=EM`L5C%yP4u`J`02F zajdm+e^u%|$b^MZ#f90+2bh5C#d4SmLbjjGV!=436_s*KW0!AN5RxvU#PI>l10w0m z8AKiqE#1z^No=e3E*>vMg}((pb{s|Dp})&KKnGmxkl%gtJE#FJ3mV|M(Uo^a2TAR2 zJLA3!zrh$XZ85-2D#TIo70ylKqdX)}mJ8iy6m+-pEl#q^_iJ`jRQ66Sv@3cHNFuXD#9SK3*T1-)@vjW1O3+Y6)mHZ@{dtg*)ZGaAl6~w94$N@ahFs zr>)NQ7w>mBw~=94#99YBrVRCJ%77aIJQ>UhoG&tekk$OkL2LXIxIV$7!+x^|Z}dtP z&S7DPgU8b1e5_%yw#7hS%SEm)e15h+vIJ8BtFMi+eKKp$rXb(Vz3qEB0m}#i9^zVt%t};LHj}LbH z%$i)^_!oVtHDCt+(`#}NLD$;bP}*51iPHWH7>gg1kA72ZFL<}|$T|Ku;lIf}UWgk+ zh+3@__CRHy6%l%J!K-djdeR_wmh2j!kmR!`h$Q!c#LwHKcYzL9aDl34k(tt(-mi$&deJ#jcMc9nBku?sn^$NC;+6+u2t@V55y6Isss@r1hOffmPubAXQ>2Wkaxlm$5WGfX5rFUtFEtH7U17&9&p#@OO zQ^e)aQp>$+7ne&^mc-@KPC>82V&ZGwc1%2n?iCif-B>6+!DZ1y)^;I4Bxe=u)C;AZ zSSbC2j4O7jfkw@)#iW3<>qz-<53jzUwQ;e8RUFF!YW;S;<#D$X^9vp7w&p9jE@}~+ zR&|BW@nBAjT|~Q>!Z1JxjRWW-MW?lwEMmlTw-%dm5hf1t`EcnWx;6%qdWgN?VaZm@ za&`}qnGYf3oc|n)8Wx*$^rV8Z=Jor`V1a#YfyD%u7ji)nIM=?Ic$z6-F%docFzlkU zOl0ue$V1O}C?n3;?+~0~${Y!9RYLY|K~}dgtLROfv5R*81BQlvI?-{3OT;D|(usw$ zwE_xN2@baI)(6D$B!MN{d_qme3yxqiE*rL`PjBl9MD$6`JQzw$x(rE2n^6Rh<%l9! z0b-kiHZfC?nLDN9xpa(8LB&LJhjb~Viv`a@Tw)^mgmgKcF7e4HziqxDT}-+pP9#5< zE^p$ax_u&vFsH~GvYRy|woHh=2A4iqq3-;WF0qMq^pWU=J$I1#gb~u7_rMHJ^QNit zO%Og7aP{_pNvE6%Ap#|_wN|uH2aV>+d16AU$1v5SM5<~&IW&4a{Hap@(zC!GYH?Tl zx&OZ&y@uib&^8|Eh;98279x)iJo;XWb3RlgzF74M-$I2vnm{%xSQ~!P_AwKJ>6(vC z5O?!XbQC^w54y}PJLv8Y9Z+*zbRAptXoo>TPL=h+gXd8(_rQ0!Zi~=!_be-Fc;QxY z@PG$;{o`Ntsju9iF4#a3^dJ(e`BSLld{e$1(=a@ec6@2upsL7f6BkH=6QV_!wshn2 z2vp3!(W^7>3;od-s)W_!W>p9ZI%}YG628Pt*$T;fpQU@sIRU^eKJ*n`BB|K0Erl_D zkAM1BX20PIe@MJ=kFa@nk!_AFe3Aw6((^0CLlc_ml~@&^nO*}D|7O+0iKX(;EIriH zL+sO4v|i*#o#lvLBBG666dj`5mTg|)Dbl#yl4kC@5K+t5xY<$uf zDJ-Kks(P$9#WxK=m>&CaT@<^R59Vu$Ve8xO7%F?&x* zj)@~V9!hXe$poXbB$x8XD=s!e3?W=-1V=~N_VH-b5g5+PrqD2muco+R7j#EQ^4ha9 z1`trL2hnV^<0YtT%z$(k^99B}l2y?*)t7ZGzCx1od8r4ox9{9scPqMK)EjIjTKZ{eH6V^+$sH<6*`3zc6k$hlBfhx2@0$Z$Ov|TbKiZAu%q(B9h?a5T|4d*Zz)* zjmrk({RPoA_D5i^XR$@TWI0Yca6P^FrvHZW^ zKQI46{=YByKEnJ9i6_s$aQYAAKZc{gd+R(L<8GoioUL_rF<)p}xD+36U6^BGA?6P) zLp`oNR09*&wQ)<>3SaKALX{rgRL#UeKaXaz8~k)L3EU-?(|jZ!@2BJqI3 z!nj$C20DhjA-GeDy^Juf=KcxUh{cC&2%XN6!dVy+3Z8ek+0x)dKlB`0vE$PGtq6yn z_%@IocVX0#EFY%w#w$14IRvS9H=?$!MUJp`K5e|{#uD#o<4rn#FQ4msT(9Pd3AGuP zK|y20>Oh%uVUA_2>YNf6De9WGKe8_07slF)qbs@)TzicK_i0|i-aZt|KH-K;$WNSm z%4*FxGopWq1;D<|1k0Sez)GE4VukQOeXh0kZy3#Pz;!Ih@M|FPy%%Io2>asFnuWWf z=f_1R+rJpN5;>?5vX3s%UZt1VNWm(*RC>Vhk*NI;2i`={SB1AliFMaP`Zq^_2-u){q z2yyRzFW&U}hWG9{4flno;NJbk=*^xF9N*hlmP-p?h&SvH1V=_s(*6scSC$-U-xS58 zr;K0j9{ymARdE3fd=LLs>_mvd|hE|^&9hf z&iCRFKYDT_@IlU1_#kqR?S1#^vTRQCuzEr#L-88#m%6X6ba7rZ6B~OQa1fxrYc}7y z@VVPxyl-u;-~5{|bZ$1ZEJsI+7*yQ`I!-Kba2L8ivn*FcVVOI5dJ8dih?qL8;+>Zx zJQrEE*;-`g+b)sU-+?6bP@!Eai6fq_ss8zVv9^&tv+7@=#GOqP(>~oTV+3$)Qk&n=v>>@PKG(tp2;mC@9U6ea~6v2n= z`oic2LuEEd4Y-ydJ`3^TzYOmc)i9%b1v*Noth#h#MQvMItvLR3Boj7W-`U>P`Jbzk z^t{MuKKf(Hwyl?4m#`F32Wpbdq|^tT!wkVfPwqJ5UJTjyrX2lrn(=7Li9ispA;$twYVU#Zewfu;1Au|2JLuV&AP-$O}3e@-#(HitZtVmxj7fW3cPN)7ow!5ld{ zv(A{BzR;Y0reR!>-e#H`@S#y=Oki2eaX+4BJZByS-N}DUalMjeJeG1kbszuCd?d~2 zN<)bsOiRBm-TY^oEnJ;>k#U(}TsE{d%eefw7c-6DrDQ&zY227P^qx%P+O(X#E@N~0 z&^KMiyXomKyUg1%(l=+Czs)FU&oo;HEq~5s^bVQ?KexLk!Ox?a=}%>vKgi1N$})eE zg-`KH?BM?hbvWPZGfSyur2J^8HNRlUgQ>;~rVEJRubCx4IY>$WU8?zu6r6y2D&=di zy*rf_ucxNplm;EsCmT>7%~vgxlg(pJ9+YQz({D1(n)HpP*^qv%X*Q0r^Hpq~POU@v z>9?ksh0{lrWg;I>EB5)-!)y~6!X7RT=%D#zfFlrj%9-Q7rEXwp&UB> z4b!~SOn=Gz|JZx?_^7I@Z+wO%Fd%ZGB1Y>aC@QI96E4aKY61zI12Yf>6fYPMgYd{D zCTAd4!DtfYbR3)ZY2RvVTl&}w?PFW)Qz_bu2_gwQX+KqP&@=vOQf3ofd>cpe(TS}slq4zoZAQZe>foLrvv=W>^uJF z2IR!D{O=6N`B|3#;DDSTX8G&0KxmhiXZpV~b10sYS(WoszyB}(oVefrj6dgfzyC!) zHnLOg4BIHt0fFa@G-}jC`@R=VkqNmpZ`J5hj z-|wHA^S0mL=+D{f_dnpzc`-#=^9zba>m+s{>JPyQ(caSO|m zPW6L+{OEtUaK`J9_`YJg(3LLHuw&{9T6N~**<~xL?3?>EsN!Ce^%b2r_B@!Z{QB}` z*X3VdxnwzvK;vcbWp@4&7@DoT{=$46v}|QxLCaQFMQqrQ{< zaYKbq{XQ>cEvCl4{=y4a;=*<{Y{xENwqluGGdW_dwDFYpibb_B)J#YN7kp%w<=<16sdjw#|0o8U4o*7x|9y9OiP#5N1%8t@d4A4lDh& z>UTaGXWmLs31+!r@!d!F0^i6=Hah6o*W>C*J332o!M(!Qzloe)R(aTfnm{Wn*Hpla z4z20v?9f=(FR~YDKF~b)Kl_`Tkv!Aw2GazBYka%Rrwk&bnaR!QV7@gN&b{__-22mY z@aMNp16Oot7yg!K>7Qze=8+q2goP5mAS3_rV|5JIjs;IZ@%7GMGOq3?obSKz29fim4x?~f3Z|NGyVONeuIQRhy44*58D*{Fn#E={>>8p zW6;TKPwGL*f8hv~+;=N#?hPN03v&EAa2Ct23IEZ4CCY(6b0xe=Z2PBjKQbzqJOZbK}bU2kG`f9%pHXOe1k$dfZ)k%2MxjK9wfH(X(H++l^ ze>DUD&m_F+YdV}g&s)Fz^R<5+rknf@;J=qXrEWMEMELH+e=mP7m2m1E@;jV8vf5_s zQ{bZ<<`-Bc4_~`>#4_x34cF0n*&}0fvdoQJb$%kZp;nWG||80kfM>hW_;`!QiJt)uB=hA6<{lL3(?#ce9jJJ$G3T?GP;&c2^ z-yz~-z2Woi(D`#b;1{^DOMAHK#J(K!r{-3n#6J>zh611z#sJ=e(e~b7$se_** zGW^_l8TDnm3`hQ(BtG5hbK?uW$w%Koyf%r)afx5xf%nt#$guy%bWbB);j=m#d4ONw z!$YSdowBoizS`$>I*w!f0xxHz^WZlg@%Ko4j%zCZQyKC5un)K#=?Y)e<#4>~Go7XF z_K`lNh+qDSjxXb1ioQCzk`v5#qQsMNu+MnkVfhlTKY7A(|AcsXM-cBV#PdnKe8DH# z{^Dl4T#veTzpU%QagtwPQU<*;_=V~2N4h%6pW`RLz&RP|`k?czNVoJgT^`3(^|^eO zQI2YV5Tkalj?ZzHU%<#H$78o~JmPmse2%*+epW{O40+3PmXqkO>vHz1R48XqM!M3ceZRDD!@#s7%E;SC+k@tR-Y{fzj1&?|co>i?Eb$8lVx%fw6g zl6Z|r{O-T$_#D^y^=cQ1ui78++y1WObDUT4&&a5E2EA1KBVARe)W=Pi*)AFBh~INa zXU26p&I|YjGU?`#li83ldGF}>ck1Z9=_dVu0OrNhVGr>W%qs{#5crP3mjSVbGo}^r zQox7A{R45=05aW;0%`4m?yCik0=yLNfq%E3Y;Wx7$D1koR3A*{U#cUcsYPff4jh&1>Pj^20-Rl0m%Gj0y6ys zagP*t0Fe0{JV(d-8z9{;i+iiM9~JljAnSb}AnWmMfi@uNbR{6mn+kXq;F;n!#NCd0 zFZ16HNc{c+NW6X`{@)Y#UE;n?;2MFe1l}O90+9I310+7P1dat{z9Yo_R)NNACm{VF z1Y~}M+N>);I9PU2Z*DAG2a4YzH0$l|LX*9JzLTX z{GGsG3A_(br3YmC34p|_1;m>U_y<4>@V9^r|FQUgPvAEN-X*Xakm;ua5|2TEtlzt5 z>hymBWc_%(kNJHMko8;*$nsVSTq5uqK$brjkogr0JPVNNvjI;Bd>)O@c6bVKAlhM@ zz=r@s@c*f}e<<#lxNir%5#h_k{~Gb12N;I`MDagI{6~rVM8MeyA1dyiGjzEh0kXUf zaqklNzW`aky8#yiHUhFyU{1}y| zKkpdQzf<5Iz{T+2CGcl}EN25C%V_}oH^7B}Y@fX&eZFGAX8~sd-V4b1HX!l&H$djM z7?60I5?&l(a3hBJya>p0{tC!;-6Zaf zfY_=SbHBK62W0%k;=T-!^)~@o{}O={#s55UpDplI@gFYkqXlM*|0k#Fd_ENT4j}XI z5cf+0+r@voxE~X^S^OUq_s<00C;s0Q_j-W~0Z9)F@LIs}fTYW*fTY9wr)c;SK=zvv zfW&7gAnThWa32<@bhiU8K=}6oA@asd24w#l3Yd-XPtiHE06!GC5s>j?fR_M%9gz9d z077()840)$@Kba?w$DC5wr3oW_&qJ|-vbh_UjZ`x0|LJ<{!QX`1Xcl}ier`ng7jm~ z24wnEBz%NG-W?&IJ_3lYHl_iP`OgPL*B`_C4RZl`!GZW)2T1&`0z?*LO2j`1I3Mn> z0W$q)fhPbm9&asxlw)21voZZnz$*Z^0v+8 ziT7!M-u&I+zH5b{5~N0V3EL!0Ga;;K%hFNK-?n*o+$9$;kq542b_<1 zPXUq++XVhm{2vncuLS-?{J$seCV|v#WNiurs?V59ioB5qsY zQt`i5+*b&kDgGtmzEI$K;y+5=k;pU3KYy#q-1n*#qEkbLncK=R2i z0LdTU0%U)(5G7;I1%wD6b2K3N=H6qpd|8vL<&FV}Az@6bq5U@s zTr02?kl}AarIB*!X+X-QZ31rtJOkmY0h#|iK+2~}09lWTfCWr{w3bhQ0K5wB-vKTH z{5Bx#RRzd)T>{8-6#|cz@Xv?pc+Ufp9!~+14)+3*|C<2G|Me2S3Xu6;4aj)=j?(Ve z1>OZndASsj=@$Yr{Tx8%e+eMdp99GBe;K0PzY$m@aHPQ2!8*SRfjt53{yiY``xPMb zX#ixuzZLKbz?I^z0A&5=0kZzH1eS^aByo=y$oB#kBmM|L=EF7CzX8Sv!L}{n9{|IE z4+4e&e+ou5cvi`8VV&|d@&0Dj{mj5pNl`& z(DeVVzvv zB)z{2$b7#6NP6D@I1Ti^9B>)j(dD0U?Hb z7XpHfsa-N`KIqG;l>=S}cQGJQn<)N;;-4@6dE%cd{yy>V2A!Et7a;TL0AxOU#J^qq zo5g>N_-_*b4dQ>V_&14vo%q*^f0g(z6#x0+UoQT|;y+RR3&lTQ{PV;=SNwhA-;pKw z0}8@LI7u48$C^uHGn{|54%hU?&82T1=~K>Qn6g+JH9e<2|Kiv{Kj%mc)~fw}l| z9pcf!cpdmdNd9GbJ0QcG#eajqI)MuX77NT5=o8oh{=(0JdjM5_fGR)n-ypC~U@aiy zRRJ>ILh&yam@klg%y{Hu#sg60V0foHJZvaD5y90fn1ykLZdVWBNsJ?OyXW?kB-}m6 zeqX}fbLnZ4pL>q{H#fg=EZOIKP~7f0@txv!&xJ>e+dT&!C;7SOs?SKcdyZNoZueaD zcsKocUETn3yXT&-2)^z)=O4uFo@@S8-0nH%x5Vw9TjmQs?m6XSl7Bvg62JSz?Vdw& z{3iX}bH^6^=DQ(vN9*{D0qEY4uiaxIXy{%jZjMiMyXU#9UH92KKIJCE-Sc+pJJa3q zRUKa7mRF?RzmW9q`RUW}R`E~J;Q{n-RUQQ*z6I!ybl07!-B(I}9iz1SGbz7mjCMaO z@!j*=<${lU9z0Oh4{Lnj!H;sB@2u1zUw+(&rh6gs;rA_ZYZquKZdbpAd-5th+KJ!C z_)oX1UvjmS*9^JKkMjqHyZRS#RUhC3Jo&vU;jaD%D!*o5xwv^-hvBY1&rjU?2>;xPdJ#Wvn(>>C z|8%z_9zU`H-LAgOvr@jR-*M?6oxiJ(!0}eK_eho8_a4g|ROj1-!I0mFj1PCSxSwZu zpw9Pqad$8rZucF4zpD7)PYE9neEAN}Cc*!B@(cXjcM`6}Z=jI;CLz7o{XjJLEa~IuBhhoCq?5cYwc>jlEKH1DyvgisoLNH zrOHK_p5v+`D>LF16;VxAkV%CVjfWoR;u}krFJHBoPc4n7I;&eDAauS~^9D^DiBn%1fc<^+>}{On8 zy#hA2kkNYaLMl=3zB9JaeK>4URTbaTTtq%kVRVFVd@1gc)swgUi-|Q-T8D8Bf&DHotI+~eBFmPe`z}ulqSiR|q$_F`Evb|=6jajf zii#>%)i+Q?a;qQH6d^6y1CAQXo~ac=;mm!(x!4 z0_d+;wi2D!2aR>5F%SOHTJ?yT@m`t4C|h}bGLrhOt2yz8uS;JCn)19FBKAoG@US9b z+Vf!7xshE$7abv?Q{^q2b3PtD6Fe<&Dc?Yo`nXPwknUnNYZg_NU51y$+@gyzUs)?E zf{=pXT~e`lB_CBgRMgD3*cLBOPvB)wEqyXxVN*!;@ddY{<*RO} zSS2j0sNmtg302@*Tem_w6RWq}=3YLl2*cUp+S*0eEn8j0p{-^axvQq8!oInR*D98* z>MLf^1&Rs#iU!tqIa;Tjldd!mewwS^!%K_BIEpAmg?RhU9oc)cShAVZhVwqUjvG;B z8f2b&LXcuLH%3u9VbHsK$3fSSp{{pW(KxmM$Si_{`Oa09PM>pVYUrl`)38?oN>cYL zhef)6(P#Cvv{#P`rV8mxFoQj3_4RBaBw}WNLd0=>zuV_Zir&5COU?evCX(*RLZs+LnR2wkM&hT7VSs>+Lm`+roJAZO9P5>o_q#^&ReA$D*<0g6FH~`d!Bp%nwUa z-$oqL-9wKr_`ai?5BKT$b>VyuOWuAz_5R->-cNMvQFR zw9UuUnZ`^Fa7<*^!E;VZpm-420jz#+J|U1v`1!s>F+V}QEqIUMWNVlw;%^IHXTL@%C>}JmCZ07)}S&?+M) z(fAO;t@?GvFn)9{dKwHCm^1*ijs}3_J&S7fo<-s|k9`a)dMyl&?d@ddc++RTdCt_) zW)P2KOxvm~kX#L7rN@E&gL7bGA^4J!%-r*&-&_)YAyu z*GfzDwrj{a9Q{ihkVs}j`$^hLx8>Z)5UXIXy%?q}R^7P=F1`k`3$`nElrAxzYompW zdz80P)uOFgSd;E#t&F?A%_?ZZd<#4zgfSX^1c$PY56fo}ENVfyq(a|3@BVnra z*3{2CRY<|7b`i1xSxs0EE1yp@(ZT;V?%-y#>3<2Cj5f38gRb~LX?~t@*X^pP1? zH~|)NVI*Z7EuntBq;6dvY~u2ir)2w`?I_mo7Dnf4( z38v9!IYR{TKlBb?n- zUSD}V$aj+Yh`J7)Us(&+aPtw|NLIIQ;Tmc_5?)lB&n-5%vbPtX4$}25)V=}~NfnrB zPs(Fv8MPd(Fd!9OGJ`T-Be}k+$#us5EPn*An(a+wxyD@-(NobQFnzpjw8u83b^Bk) zkiKG{ulg;kRWU8yF5!tA2%muMv5WRYjKG@AGXSZl9F)P^0ocz*$QFi71@$#Ld^zC* zo#sajNtvjn!P^5mq=6x&;5?m%@3l#qe`ClN;G#lcYbth;t<#h<| zp%`*W8aVXWFDtLRta{QS)jsWu9mGikT5vT$ zs?E{U13uWW$+PD)G)KPQX9sFP)jL=p-D^8~a)EwF(i3#|(8KLS@tF|(4bAqckdOH! z>hZ9egM^o2)VP!*i*ZK*Vx%O?Kp0q51X7jkS%@KzWJ)Wi7n#m;heKum(WG^{HKWbg znsT;Y)XGEaE$DgOeGdVFxnPUrdv9iRI$j4%xix>payb6e3Q_E_WZwW2dKxl~pZbfh zIX^93ih+~%=e0eke2^CQzIF!4$1vVM4?P^VUhyu}9xECe6`-}%S*g@0--_C!Fhb28 z1!I06*kj`pkRlb~U$*x(gn}KG+${$=CyPE^m4mPn7s`t$Kk`WghT9v+wm4a8Ihj{oD8Y5QC;_ig+Bqj>Nu~IS7Nk zYu{@!9OyO00KM&ddCD(WWvD+%{^ENV;Hl_oChT`LzHBty4gz)c%p4uL1*VeG=CCg3 ziXPe(L@y~qlXs9`qs60Xi*zLI)+u_n7Uv_i>gO9!b>-jK9C?w}?m*DH;fEfCUw5d` z-lphWIhyKZN%NwveKOa6=$)v1@7(f<{=~X-H{_j{*=7b@8PBF zfAZ-iR;9Q7&vtjh3R2=XY=B})1(DyT8WHwClhdk9`=7}GjyWFtpPaUR3HCo>@)Mm# zWtKz{s0o39ZPNZIrVw9-A<$%gsE-%|{?RY_z4uC+`f1>%~mBe!tYzZ!3Mn zhtc;mahOrmv)Rts@AKO=w9(AhD%l647ZFLt@d)1?icX+gdf;QEoC>q}_WZ|qkZ*f2 z-kH~l%$QnQyOuV+S*4X4`9>m!3FJMPOoB5`0eEyhI;F}NW4znjJ(#2#Hr2y9mm0!K zt8@z<&vf_vV1a**kL$W`4LI(z!M^Wj9rwv#->a;~o$x7pSH5?F$GZb^{tT;M1Lh<%>G{Di{(&)n&d<{9 zW5Mrx{+tKX{L1{3wXLxiXlv|#WoryC72Y`@=l5Cu`v>GasBD1!G|T_~fO)XfkQLaO z<$o_L=kqN8haM|q${yW$Ia~ey%W@v|``6_BPFX?wm0J|+Gwh5JZ#@O|E) zj3rUG!Mo+?bC+Q5!pvQ+=_MTWua?zRtc)yQemLVxhcwZYG$?h%7MD~+SYx8KD%j0} zp(Y@p&nRi6iN~})V7BVU(FOUp-kMKc3!Ws6E;z3SdIr#|prI~Blw$Q)EGc=b?^;)K z$uVV7O{Mrv^!iOzsu>b;fg6%K*46oc*?&2Q^?sRdH|&f0yXpQhuUb{Z-zAyEk z`El0(pW8jP3x5|%_-|C8zr+pLAp6g`(Es6gCQ^Fs#%z*sPW1R;dzxSG{3RT#s6NB1 z4ijD{;ao%aWtVD`gi{Xp72YM`PXIHo-I_MRzg;%we~t9s`n@ILu3f3$Biw7(rrWJQ zH#YI*K!SPcKU5f{9QzRbp2UBz-J7`*p06~3p%AQM^`>9pVZw_g`~{@<;%B@03!dWa z)joxX372*~tX-ZexwlU~<9b;cXg+?PapOhs7t(5%qy{f@C)3SkxuAE`ksqE&?)iRU-$)PXT%q~8pP`w z#IOBOqrv{eFEB16eg@yLobMoR`A0e(`xU>y)QofRjmLBXX5*gD>jGiB*EbsBI{>F3ocHq>|IdII!~HN|DUP;& z19%GjzYjPW{th71tphB9`({9~!FkZ5}X901PI_4=rTooDfC&07862BDxABg|m;{P?k za}e)rK(O(cZRlv^(;7hHwG5E?Unj5>5a)hl0)R}%0TAM5Ob3X;bkx&^uJoASi<@?u z=+Ap~j6Xu$`;ln@+%Ew#{2@S=_X|M$JAQ+}`^5j7;$AQCHt~;$d!@ii@xNN!a|O;6 z{}ORuD6mNU&lY#Sz!Sv(XmJk|xEVwuzW*VRdg^rdKvuB7)d12xU*H5lj6q{Y0GY?XX^8iG+iOD*rCP zskr9R2?)_LtOF1-Y#8?_aWp)v9S~i7SQ{X^-mqrClK{5><^gU3JQZ+*zwBFfTsi2ihmVgKHN(I&jefu$oTUCM*)@tP6RXoaRffB7;rcs{Cvj)76KB# z(SXD+ACUOv0TRDlK>Sws2yqTQtQd3!$p+>N^xiWoL%2`;I}nNSngwnFM9{!ZfQ+|6 z{O=Wi&S~ghC;q%&!uVC_9#6b6~T;4Fc-~)&i>X z0Ex#!@t-gLq$B-{#Xnyl>BMxT6T<;iIaD`*JN%mfJQ2ZNXIw+K-aCgIl&Il%A@ z;x3eMcfLva!ft(gyF~7MobrX??mYbzDbJmk4-vOJ5C5CQcjw*B;&$iRzZSPU zFFqN0^WKbWuyiHl5AWHy>zUo?r*tnwI(~luZgjizaqg4Qov$bZnIvv^zW+<+m*exf z`Y1m^9_n6@%FTxj5S`v#zm$o)PRi>7J($0{{@`Y*6)E4<$N7NxqWxTbnqtt4 z_n4Y7zVTD{z~JZVE8T(LNRs@PAV07B{6XpN-N4Tq&ikrf_glcv>*h(l*G;;6-PLe- z-Tn-G7G|WMn&D&g~pKm{f*O-YyX>{0Yi@xfNQra(r1?85FTqgzJ~^FX z_i#gGQ8li7=xZ@hzQa`rTy>~jhD$OPSLr()diSz-1DBo8y~aolV@|*PNaKEyt2fs{ zIdln>L-iG$KCj;NtE=4WVvSd6TB~gz;^vDYL=|t9tX@`aM;0w-C8r4A4^{ayimtLdj-F~Jpq;FQRc zC6(2eEn1_pQ>psu%0-^nD|qcddRQt^TF>xYV<<=Dw99Q;i(MoCrQhn%w;B4VfR|YP z1`GAQ@Tl z95Shwvx+8!tyvZG%AxyPRx!uAsw~z1{R)sT^G3**UC1GCRP?@3QPlhP#1UO)DC&Jp zq4$-9qCUKM|3F{t>w{;LWA=HAS1rH(yhFw<>aYK%(jM782i{XC%ujvEdkW+8^CuJ* zAwUNg6&9X9UipnX9{}INAttUK)nr^y*!9V~2RTK>v`NjAFx}HO2=eg*AJ)3QHq5d5 z`}TZGhg2~Ge6AaL`uHEyFZCVi{e)fXbbRKAskG1hE>43vf$McY0e3+vs~0WD%@}@} z`v2{c57(Leito_*X&2Uj?hk>uX0mv(=R!|rejSqE{W6&>M}CJO3-A&AxZ!~>GrwEw zl(*J#$IpM%r{^c+)RFKPBk3XUJKSBTqn;@EeTMwJUnZ`|?~wN$es;S~E!p{wZ}jHY z`#1AD)O~`Dl3yLxFZ}Y5AM3dACun2klTOaV-6t5mUMF(xcibD*`E7VW^D&mQOLYwW zcNBo)1-Vavy*=gLi1_*VP5N+eq7Ci}z%9ST-aa;TxGd&g20!jm@IUrDxkswf0eqn^ z^L_zTBR_*o>}*s_Q)W-Q!82=wiH8+z~41hN^a((Qv09q-yETvbOx^uk>db zziq}N$9PdPc^|>-X|sY)7!3`;YGy37!dGH!F5Q*4(Qls#<-uKe_Oo{qSmt-Gk;&vvWl2_ZDe3!;*QjSoRj5n45&g7;PrcU587 zCW$gl^KkIJnhSMp#5h-uid7P+v8!XvWjK zo1o0r%(~-u6Mk>tZ*>P`IawEGeSC;JG?zfkrzW17w$~M&e zn;8wG=DY|K-egASZ84ql04R}xsaaokZ{CvDvQ5|X4|jz;5!jP?~a#dgr6wQLLNqKh*cPeCAY z4@DJW?9yZv#(aS)B#utQ0&g1wr61NJZ=;~G3IMrofa+tNu79d^Vh=Mksj?eYPQLCs z(~LGUeJI#v7p5qJ{u`U$xxX09H`t8UYTkpA8F}w-X7ta@Es+I1&XDsklWSr{BTdY+ zgmq(v=cY0|bbf1_B(uo9N%FGbwaq$Xrvv(Rwca}z&UPqtqO_jK1&QVANo<7^mH$pL zW8YP@a9$I%bi`qasfZ}a>egv+N!N87t3i4MT;kz(fP$82f|~Iod>AoUnrQ*O9Rai zo{vX9NDMZEdyK|za9B9H#ta2NwDG|28D{D}IKT>S4;fRs(56NMhizcq z7Q%HTE4XuYu0lBJt=#FGLPlPCwqHEh`$Lx=MVdwhKec{;kpF{Kg<#oex z6)NOx$IJ5}=W(ex-b7wCG3?w>9Cp^2Vf1%MGffmUz4!VJdKAQFVk1-#AGjGf#U?xp z@aUXm(eoRM&UhZiw?!q2X*bDRcH&d*aU@w zJMFQ6U>1&uh#ox29%B-%S z%|hZf`z)$Mi@ZsksM@Q($G`d{GkOzVY;M7zje>!M=iTzyMaSyW_SB-ZYu(aP)yj1j z{WXYb)DTSdAbl4iZ78||eK@>6Rp%x%sstlA9m7(c$^lcMdFTXd{g^S?h82xqHZ(7g zI7-n66Q~en!(J&41BK4{VGg9>;6IIq0t~N7{zGO%N109==2@n*b$^TB&f)Em0Q}eb ziubqr?J!CJ$v=qL$XNNzRAt6)9py*-$n;1^joN=fixuray17IB7Y-j5DKmRoP{GK% z@t-0j$?rgJ_j}0BekgH_<2`$+dsaD z${>xY*(f!q;twf4Ua z08Xg0C$n3BHB}n<*Nk1+xxYk@r#HLf=}TsCL3`vah)J-|+AS()Gxp~~;Ebt8lepJz zGGh%DV;f4i)v|9|8bX5UxsC# zS^x0~HA7?BgV&dB3dJH1B?>^yT(kboE?{FhyA(E@1MsG7{Zkm~7NF}g|Brz+MVgYZ zPnynCDr(90>{CG>)ju(pVdvKsavq01ePqxQPVE!8^)xkC&E)ii9~VXKT-*eZfzO@( zbK*S}{;qJCiRounNY8|f1{+dNPc*vh^Smu|==RB+55><#KIowpdHWy7Jz^!VC_yS9 z?r=XY_>?^?ae6qm=0tOM0LIFs8=EoOc%)ml8J$DncCnIVmm+^9+iJ0BP(HI+q8YnIiME-M*-Eti7YZ)g zA^FWcN{P2=BHrGMV@D_@PdPEu^6l43zDZX0!)$W%dtG}2D_ay}QMXF>!( zo*b$_V?7#jBIs{=E{sObL%x|3jDD&tNHG3p2_e)ZAHTU;C_3`~q4Ia-7t>3=m5^U6 zAiw@$pM&r^4Q>d%5t98sh!tlRkas`K*lO) z6IP3=t0O;?M2f~J%s6>zoCj3z_L;ap8(;>*F;S~NR#J1a6B&}YC^WK- z!`cK3SN$=+MaG#wW4s_dAW z|El&@C>V`51Es`I6VfUWR6UXDQnwz~t^a*9%sUd3(&}Y2-ifk+C$mvPqo3MYK_KRx zw7B~Smq@+r>r$Ov&-ePCe`W3`xI&Z08hX`O5HlJVv(9&Oi($LS`?URqa@>dwMK2CT zR|Ue2?-~vN&K?sB_kDGCK|$&I`irzQ^CQ^!BqjUO;awlUUG zD%R`qzaZ9Qg}_TUC5^z;Vw19XG`z4|R-7*|j}T!2F#`c}19@gobM2rHP2;Q0iQ~DC zu{&Ph;Wr1jDX$NW`ORi*4g`H10i{l-4g(!(&->6azWO{&$mGt-x5s{HT)EpgZ|j|tx>^Q`J&q-$Bx zTOe79@!f6K;B6lo*S4rieQ4w!{rXbOUq&OBYjz{MbGMq0AR)gxv#5nWUB-DWrZIJ& z75t}VO#P?Z{Nd=z0OT-Qtkb?Eqp4m@VT(No7(#H4O5BJMBs}u7R3jRV7hvR$--kce z$ktSf$WALZjZ-lU2*+8@wYf7K)Ek@Ikl_VNhHE~t4L0!6ZUe&{3gmrDN0yZ}&~);w z9<&0+OAJ=(rfbPHB@0~R72DAR+IbNb;@}o7nK8;Linz5ij!NF&eb#hfgrmL{5RCuSRWMZW zvsOqJuCWQHBGRMWKuLD9&Bt+TX^0uE!HRTFAOVvnHGZ}7O3utVs45l>!{7);3vBJi zz`CWz=1C>kHKH*mdq^mHOCS`zF*h;D+WmegcB3CVEZC2&#O^O<({(74tI=us8~yg6 zaCFJ&#Goe2*=Ftj2X+B)gku>~UgUyl62eb_O@l($6d3GVT$ngh))VXU%^q0bdQV}4 zko*+2vA!y5Mqb9Z@%J;eS#3;dDcS*XeQ%3pSg(bn<98DG#t5o|)hULW4>?#G4b8wU z99!i#HcusbFymEIh%sq2@I8Sim1iq*yw7vWf;h)XsShYM5_@S9&3?&>-Ug|81s0iG z*Q}!PlUrRp7jX(_M%Un|Z4S1FXBO)okHbP*bveP!4~y66VE9Bn((6g=CYZrI`vi#5 zT(y40YOw?>R_tU11GG!@I2J)hV<{?R-oB0Ol{S05sAMr&VuA^fI;W#e9lfO1NF)so zW$>%AKlfLw;CW6D?%~}W%h{>e_fxCobL>~lMs2RZ5YZkgfY`_3W$+0IYP5H_ecg&s z6h}QfLIpTM_&6)%k8@$((uuQ#jm+p#V9f8dP{CGYz|`hr=)U}LmVo{11tKfq$c9>f}%?bx!HSXa$9mk`ugq&SG zAOV#c-bHs{z9Ec92imRJ(Cwju*Kxj)6^fN$gJf68`NXR4&Nl8i3lXhY_E9+Y-4?Kd zEj1_L*ADP9qI}F)!B*oAKO%*l7OVdC&#ajBnXcXd%sQOb`nR*N{WR35{}i}lMTDt( z<4SA~#eac6A?HbC6kny1gO#7bgkh5zoBTWwPL2a6xicDW55u^X^8sjN>8jzp(DkZ;x40}uTO;hII<{x9J8_xtXFd7OLY|F8;nSp`pr zc=DRC>OYxSy&%;EY4^u+2H}{W=igWt;zuripi`8>l8`eU)`Ut&<>N;_e~iWt>I94` z#E(M$n1~+}t@_qt$c|#vGV*JjAfwsWovha2ICe@N{h)YKh?Ssh48_JjZWZhcH||(> zDyF=O%6jL{@)K38wVT7yGG8K_zbt0~8gDI5!Xvq9=SJB6h`&4#t%e=CvQ0%V$Jc@> zP3KdbU~LIIZB~5;TDusn&4V$tc8jx1wRZQ=n%trts-^Enqs0G=KNvkP5cXBO-< zWA+8u!b;JK^LAQ)(&C0h}`IghSoxUB) zccJpFqHmXR%+NNp7B)J!XGb;wANzdp?$f!J|0yVByqaqsfZdVg{wzu=>@sqP79wpC z(-t8eB`o%ToV~MRlOGQUTO#=`qu_K7TNnx5B*r(Fam=m5pV_fd+cM(BfAM)w4@!Kc ziZd+`U@Hi40xU0a-sdfUH;gugc5g6_$!WFRV7V>UwWvy)U->&k_L)YS?6t&25*uC#{7+o+1-eJ9lUiG8xPIk4@Dd zsnFZn!q~`w={GVNBnKES{vWDohwq|iI5w@@DrhfrT1p^CN_r>`2HB?87=!l7 zkZvcp>i&Zx(3Z$Q%mN(jJqbaBVL<0tJtw)pg7Yz$9E(oDbR8#O(J2tF(@}vbm_tv; z(ZQ5_Ks3jc(SV}?3jr}wO_>Nd5ffw__-!o?;rQlZ)42r$^)tpjLzL9}B5EMt&}jzfWfFp3RO^@ldYPct4A9F2y=H)3 zG|o8#^fE!O8K9R5dNnJ0!CGha!*M_I3^^YrMS6*+lb1M8mDIlpp{~1m7-qa0*P^0v zPR+nyZ8Kt}?a8hlj@jeT)ir;iQ|F>ngTHryNq6Of<cu4TRo3Q-bDIc;BKRF5SpIMjKeO=DFfH^*vDBdZ-6yk#9${A74SNCdKXZiZS+u3tlgE zo@{w1t7j`>53gS94AHDQ&`;yLfw1L@{954kiP`cFME+LiS;Y%I6#3Za0x#fP-52K} z_G3U0!VdP>=1%G<>H+1mKcjU1EEf!L5UqGHmu>P{zVa+YqZ}j)94u76O1ytoPG2&? z!E)uR#QSGe^d%o01Rp>dt$wSL?=NGr8XNvOC-mllml=P!YVYBQKB5clJpwTy(b3)^ zNS|ZbqtjI*W?&vf0Uo~&l6*#N_>&ZJV1;<_GmdhCnuyekeo7PKj}tmwt+04X-FS=<9*%@VBMMxBo40O#ky7Ng-4RzF(aZB9b3EDl88 zL0}hR84XV`Bvy{O`;%H-(Tv^HX%=jE4z#?V1$M_w0$bz<_9p9VMo;4OAFMq;z#`C= z0gldZoAn3tsv}KibgUUHj6kwg1CPQ8L>u<-@dIN^bsm3Ez~!U7$a9Hl*pG0kbUr%1 z-R|*VI=ju|!Sps-Mv_QAcPl)CEq1o$Ov99z>@?B4=)g1|jP^$2EpE1APl<+BBTEu1 zl$ugyGxm}rrzB>AZx5h^tU6rf_Tckc$>{ zN9#|h55Lnq{CP_*lo{-^EoUuuI-dYPtZ37lx{){Ik0N1eG*aVr!9L6RD;JO0w)Ar? za@Q|e`lAp%{0uAj{F<*~m(pta42opiph(sMo{-M6MMvs64I#!|w9=uqp$8K?qTE z2P=6f;X=-7?NSCqsRshgc_D-)V3IJp>PF*RoEiU-98~lc=7P_}ZvpDqP%tsRLSLmU zkB9;)kqH=}8=A367L3zELOLg57d}*gRV+_J)MEQjt|E5G_-zNY+aQ0i;-H%I@a>SP z5Dt-zsxzqF{o7Fjnw1;}cEil>Nu|F>ouJ)i+SAtKt*OJp2Mt z51zYXhn+_)Kot&`Q2>Qpv35!QR7DD{mD-N5lu9a&J1I``6KAXaARuW4ch>|km0=eF z>#1;z1g_>Kl&izRzZrMDffhk1sy`1gpEV0UHL+6=T3p$H)9xCmZGhqHo981F2p#-q zXWy#O3q@52Pt2YX8~=8Cyl|5@hL^hB@(8|Oa|~9>q=Tz-lo+y_xONa%E8>7Dw3(>-tAONCpUH_P@NYfa&pBzVZ_ zgwXbC#zK=2MQ@}EshZCmjiDd>7RDG0mTQb*Ef=SzXR1webkiNBK;l5+?8KRtvkizw zX2r>B;wVY1!7oL4G@G5ch5pU~#ycxJR;2b0nsHDeM}rL;Yc4Tx9LE0C0fp#U2lu+v(C4P@%};GEU;1R3W6#obnRj=6ni` z-$k>i8C2q(17N92%kCcg;h??gb;BO(V=Pzg6r&nsTLePq^Tg>^Y#r9foP^A4>f8+~K_3Sp zucqox`DDh-PBmAE6@v^)?>})$a=#i|Yx`CDZ;{H>2Xa1Ac{=+-1$xhyJG<^sWg5T5 zG`Bm)xbvK$;F;S$W*;){xrh!-gATlnC00%-HukO_%9due78fP?2kyq;NCJoU>k;jolKoF08YfF-o9ttF!jU*8MV_Xx^FGcxu*hh~i32x=jVaHm zP3mzNq?y)e_!t$Wc!vT{F5o5>Y&0t0Se0Kf1!c(qBrw+J;4c;Ebfi=D#EG_AiaFs8aNcW0%dqRr18mH;qTzt$%)bq9gcWv+b3X}g=Vq}wtpR12cmUUl} z-sHVIzlYh6V#er-P4s9u3v+X6^;5&qbyP47`=}hBubC!sT8dt+kPmLS-2tuFaI`Xz zcHn6=tVXX#a-(53eh_n#UHy)&PDu#b&>|YfdIrURf@W+bW%Q< z(JQ<9mQO$o2N}ypLA@B~T%VZ66z(M8Ni6Wq{<1ny&n5@)#s)c)4m3-<=^ekQMrf>$ z;BRQs3Y@54gKDU>jkRb6?1+!@qyM5Ol=*c3g!mYQsR-pqTCwi<6oGuy3m7#%t^Z$a z%z9ieK=zS8#6RQS0_0f)^3shKc?k-4HUI6Amq%2dRLsWvCJ~oE>@#aeCrf)Ieh*6H ze3s=22Sr|^JVJSUIKAMAqX!~A;<#LmqZy1uT-f2_6HY{A#35Ik&J=j#z6(Yo)8Prm z0G5aykjTaHQ&fQ{5BFurzITILd9^FazD@8z{eydr`lt#64#DS*hPNP_!c3L8RE>{c z7Fy(yGGp_oQDNur*6#O8_HXlJTN1;2D2n|-sJuniaC|`pT$&%JhKS?51EP$FRJ(9K z5H_=AJY;)o9TSd+H$SWt?RERQ-jO&KwlzOUtV_!0f2F)hAUK53&ERER?DjPI={Ijm zoZ&?`y}j{(5Ze2-nkdq@<0u9T?``M}4)`*OkDh{I8}e!Nwm?Gt5El1VnHS=5sR?iQ zr0N_Qhy1rdQ1+mZ>a*f4$QS&Lev^u0@AaZr%DLhjRxC6MbGF(BkfrGe%OC9_!MO?# zm#NdX$BR?=j7W^v{11F2uKmUminC<-WWPJ27%LOUC+Wd(dfV{c0*T;*dc~U3N4VlK z9%wP{xF2?s6XPN7z)8)Rd|~ZV)(i&PwFPYKD`>+s5GhvgOyrueqxm$0xj6fF97pza zV41Vjv+Jw`DV8>AzH#K?iX2EYIKt7jVA^?*i8DGm;x=x8ryjK9_wi>ef)&xcW^9^c z`UBaFt*72uGL{vaSBPN5Y++2beb!gZd4-s6mYF>6QpN5&U+hP6HIc%vLGL7A z*A{B@<#l96#h~C@{hRXNwGHx^mKQroIgk(s3g_FLG{zwNqliPM3hQmGA z{=^oCLy9e#S9`@4=hd#*l6iG}6|!nti9h`RJ^bH>|L@@caIkZVWi#|MvHw2Wa=MMp zgRmio3XBLxYXewxoyCq7!9tRPCNZ3c2)o~R{q4>WF7aSf2ogjz#<=;5UD{1{sgg>= zOw4srU+COc`4dA;ReSpb%boI;I8QW!W=MlMzm00{H8y9Vcvz^Y2qey=3fTdrLUyp^ z&+Lw+#?($XQsiZK#`~IHQN5rB%HM%?kOS^k-IlA6H?SX?00Ou96-xVHTtkm6PK&4P zb!E`2T2B);Ma|fAa-IXzW9NbcNxK=vas`J=4rCSj1TM0|n=2YjZD+%qL0r(ZLt%#P zff|L;U1kTMeuEAKbc}|7BIhu~v$1)YV)p%TW1}AB7^=0A(eQH=$94l|hC*dy z3YDMWXFo-;)+|bD?J25{T5o}P@Wq?(7ken+9I17~5L5@dThK;GYqK9CHoMSG!Y(%{ zc3Gv7$}P2p@e9!zDLF$9BHAx{gexLOUPMH0 z`5>-QZ!oH!0CFOT-{E9$>0gqf=PF4mJy-2epjP8Y71LVD31LjPQ!7iHmayMa8XoYj zC_6dHDuMbUW`bHGDIMBUoNuwJ*pyhC8+LXw%gAswn@AkXO&#&G|KT0|!_GdOf7yd- zhs7tO8_|qOJvXwbm?x3|>V4`Z!lYQ@MhkWPk~=M~jio6@c0@yR+We;akY2Be6U;6%_{$r4C%sU%h=o?1feqmq~dduo~7??5GS-NVkV z9hA5VHLRJ3@pcoZ>00WlX}T-wq~e&uQ?F51Tus!q;3ZX(l2__oQs0sV-pF8icRi-| z+dccS6QRh8mQ^f|3)>DfdmMczRsstiYFIj+Mt?vf%1ziofC4TCMcm1t;S^s(R`2bp)q7iNeB$a|#wU024leI&e2T!@0JwZOyE88BvTh@! zZpZ58*S_{Up=b@-zSy5O*=>)+-yZX zuqIb5ei~}S)A@QDpYN~xvbuWxCWf6f7wge(YO?udvjXjr>b_8vhg)w9xvY)uyPvBk z@h5Au`xb+9%kJ-ztDFTWQz zXM^+6i@mBXz2~nun1FE<+?M?`6kAn@CucFc7drcQ#;03 z&-w_;v`^@ceum<7mt%06%KhiW$kb@b^{1NIB-!U>y_pCtDBhmnT-08`UNKQ`B0>uY z9bV=m_SD*GSWlMa!K~GmPT0ZP7`Z+E0N5i{0QM6wG+?yD@;E6MB5kP%*f0BM%^&;g zE1CKXaAVrSi5~_@y}!Jqbt+UJlCooFzP<)Ob2N7T@?7I+Nn2^!cAC=v_z5RK&TF`z z!M!Z-%(Y#hR5RtqNigPsAu%xm^wG0(39%uzV0y^Ar)8gt6YLg}C>v+e?a1mBsC2oz zDv^9yfA6gxk-(XAF(v@3<1YPhhXw9yJ83tB3PQYuTe5$kKXNRL$l(Mg@ikm2!ST*O zzx^IZ{q4ZGby|QFP@a&D>$I>80%3gO$SY9 zpIPv++8s<9?Blj!$-__p?aska)4m4mar7tHXi6@s!B{xTFd9yVCpWf@%`^2f`BZqw zGWi6C#a3cjyBf@nWf&~bXj?a6^$k{Rnu$YQqhSr$y|wIV)*f8Hkz5b@DdqA0_+7Q) z;rJaY`@w_yr0uZ$J_CEZ?Ly9tokXjVdN}cy$@OZ#`0)IGz^Ff4$xyYC*6hx6Fhkga zac@)qJRjMJ`u=PDj#KofKsUAMbosr4{Ju%}T}g&CerE{z9VP~XZ$ccnn``9vhg^Pd z*8IMv7r(!f;`cQf{9XZm-|pdeJis{_{0`+#5;t*WN;v5A{!D@o!7e}ocY)S!D8XZ$ z_BJl*RL__$J!23KXmEQBz2i2wcOY|SPt_PTcfj;4yhYZw(Xyv;!=~)%`tE?yz#H`G z?fV1t7O;5y7!|S_!tQZw&%pE)jD~40jdK-j#V!W}&oUV-jBGi3R8Nn;pu$&Uhv)Lb zWb&8Xd0G4q3|3nbZtrM#gW59D#a(9X>dy2{nhQw!Q-D6^OWdT1oQTqr68Xg1lM^>` zwt{wfo0dpK)I{FK(xL{|O4L>Wc+NfCR4k{bBorGmC2`L-n;}FwBT?j%8A;+Oy{G(Y ziSeB$Fk)s%lK0RZ_}@ScUPVjg;deJ+uled+=!hJ!s3uZ@4K(gWY&8r1TWOG`4knD> z?uMx+Sr7e5tc1ca!}(^xht#%${CNoq#*?THe%D+Io&v4*$m5Jh=FU@J4o))Gj4=Jp zX0RPxjEhg(l#a&HBF&G8*{k170n5p2YcA z>lD#So}$>zY(*H#t>234;keH9TI5x$VDHS>`0HV4ZIE#XcT7?o-GBPlDWg?BtyA&^ zDvdrAS1j&{0t*Gs7g#RP6j&v2slbIA-m#t#pV@jxo%+F_Q)^87i3uJ9~*e9*Inke z!GB4h_-2_Ew?;J1GConilhw=#HKz)kOKODgmm=&s{& zrDqy{SE=pk<1jV8CFcij|Fx3c(u|&=JN8Qbi3MEn4CYXZF$ETGV9q-Zf(NV{vqYm$y85?>%n5~V{-gIv5g4n-= z`)j6iO&9)5?y}?_0bqa}C6-)pd8`YwJ_y2fnCC8JQ?Sb8ItSq0#?M{l-SVWILW;Bo26|#$- zN!UQ^v2u_=_bj}T9UVUk$~5`f?Y=qQI<=T|LQk5gV6*YkiQV zHuh^l$P0M8;WZLeWe8&pxxb@I6o!c0Bwt~{(T6%(zw^)0q38|hxvjWE^p<^+v3Ur_ zKdPN_x(N$Iyr&htEH^RCbS{pc2|j`C4fbz`CV0cmIA6SVR6Z}1M^4o9Z>GfnkP5Jm z<_+}Gu6`3PwP88Uv+I1A7v)ZhG37N95SJb!*n4kmfa;9b)WnhgLF%!`AQwJyW zwtyVC`ChiEc5vccoM#31)qI7UJ-ldwNxqsdCT>iw*O)czA@ag%&lAiZhKbcd5!Hoz zWjylcQC!3Zm;hSm$nIQ<29HrfAYJ_mif<1&SPHFeOJF}kIe2RU_W*SOZqsG#pt|yp z{oBMI#&@RW*;jJ?gT7jKbDj@I8hK4Tnv0ts_DNh9UR3w>JfD4PVnS+oQ}N4z*fVwk zLt&2_6z6Rp;E((YFT@9nY}0ghCf48=%np&^qL-pEVPy0s}n*q`Tb0?SOA1-|fA~FLny_5QsTD0lf@xCnsA@u@ zKhjk+aKaEEdUw`3C*KyF<7xsY>dfW3N7={InR6^2ub z*{9h}La2Vx%T{ol@m(Rc zkg|qm`;-#)1Sl-4@d({XbveKB9aJQHH{HhOawPTJa~hxmM74G^s&XDe!6JswqFQVW zq1Z4QLXhOTbK+DGa-(4+JnCv8QGOif5-mkBX89i~OV#}({jWF@uww&%DP?A6mOO_r zHk)}3Fk?3jQZ#-#Jep9d9|8-h(}WR-Kw$*Y;ov$PAeIBcVVZ8(gA}4+BC!hu!sG$n zT-8xehU2Fo|5VPXsuotrmF>h_t27J_v!MbxO({ZRaD`anF)4XbXUzKotf zy9ml&FUC*8R1lY>x5G3Ynu28kKz@M)&wvDqsvV#cg|VjW7Zh1wOm$D)&DzbDX4cI> zD%&q6Ns%ij4bVL+$^FLsy!BV+DKdefNWU*CR$1k~^ZMd4UNLmBmM1u0nFHC})8Ca; zP9e{^*sekYD9yS*dZxa6On0|z2u!9!FVNYqrwg1S!kz^#=f|=!lg*|RlUL|}t`6X| zl&>#9AIH6%sunMhKbQ((5po-kk0Wnl5QkLc+#P0~v?zrAHqPtR<&C2;_`43;G1pqL z?(EBe4NhIZIprZ(nBmp_2Hw;UMTdoBSHUjkvqr;j>2`L6gS)G7?-6%3tOFPX(W_5G z=Z2_$%2QnFXVh^P_fc&JEeNW1$|oGI?KP zwq7rK)1R2|2unqu(8xVZbw={O#)%>4C77A?VAyyqdI`{j342Ab1&r^`OuO%B%KjxBb(SD&Ufyk2wX z@Jb5`o5B*j=5?d~apYsw_heO{W5Hm1sIeQnL)e*vwKgdKpFtw_GM1M(21`tdQu`_m zg*C(A-L=#7YJ^7YM&Z4hLmIJbHk1*&ma>Mo>~pb}A5eXs+0$kke{QSacgg;jRQ=6o zJJ9d2oCMK6HSQP-Y9v4+xiRAjp)7T4$jdhkY!G)of%6#7NyF&9yzj284i$lTX|D~K z(Mcxsi!m_jyKEsoi~_QjI$ia!V28binlZHK(i~YGzYBRYzSwV0rg2wVYRW*J#)7S0 z6E96>be!3my_2Y^pQSqkp5M8i-+AhHeM>g)YPXRWN0Da`obTj@v8oD#70^Xsz*V})e(56U4p}pt@mOz=KAK4rK2xX`Ek*~(oPi{d!`@p_L^*0EYW7VKVH5zl$*K=*0Xkn#? zh0Jg;`>`B5Y2rA$#dHcKS0_&8n~*cSg(czstVXVJCE7I3hD^4n!fzxrl-i)Zki;sU zxXxXlqn!H5TY=9$d$PjkNo_xii#p| zs%NIEpVC+1e#-yl{qf!r|F1v(Z}#2fkJQIGw%O{97Fel;Rog|F zQm;f~cu<%{!wtlOeRVj{c(OAK2H`$%w0xU{zF?FX0n#L$xQ@38%@4mJ*b?AcH5WW1 zh6%6+jk9IVT#%}txQ&1h$ywdfTwA@dZ{+5A!4v?KBx?4zUh|n{a1fAoLzK(weWuyblaw z7gRobHhi!JiaVeOASeB%Tj1t=yXB*)4$GsFhli#*hW--| zyWIx7f+4soI*G%VmP1ovmuQN^(!%v=|Jz_{oGxyQBK_Bj1N({tZwtwXPd4WO#f9)U z(UH4UICdIQgb=o|yoV|DiCE-t1}{X%`H_Ad_A<5bJY)QU;#nUh$ni3*OY-TwSSs9k z0i|}FJ;M|cCf0eRH;pq4SfRu$i8irM3=kP$>UkY5UVclJ?_LP3&-wp*AgqR{znfYXVl4IU9bz0+c}13YWEB?XP+nNDo2B1veyRC!*M;>rSU4u}N6zTU`977k&uz!EeH zdy%*jbpv-^Z1_*Dci>5iAco1zlQihx(Cl^c#COB%98Yn@HMk6>HYI;31LhB>W80Lx zajcxn+Xdgiz6sYYu%CU<*@PXP^C7$x5b_QT{T%+rd@2cnFulwbca%A541^N3e<#%+ zyu`@Q6}&oC#>dj4lCOzf*lYWu_7CDZ1tm<2m8*v!$>_BTFZO{#z2Qaq=tWC-B-Xf6 z!QFP=sn`_?L&7)#BJyoqt1uNPR5PMu%|tbHl{yApwQHe!;EgO52eFwGtdj-wl~HvZ z!D$(=4y`x%f#q!7zE89mUtw2+5)H_6(x?QNKqn2T)*G&1`_}{o zp+KP_c2&8fMXfiSBXH)xG;TE(3izZrJTHffjJAT0t-dShg}xhn`l_Yq6f8eBIEUQ&}_DG zec?jdgE*NrCDMgpK4P|q!D;-oh&_w~xxQeIKPdDj=$qq<^@V-jJ`sBuNwg5tl!I9^ z*w7nV$e!7xhp=RU9+$k+^LcciyiboNfceritQrb?9(CmZ`ndGt_&?~a zRK}3DbIKz0*%W_J*cqiAT^~8<9j{`wh0lPIUF>@r8EBk}f^!Xh3-c+#bE6AxFifMS z(=s;TkZjAP^R79LMmu|`g34`vESgAUJ%QsTtdZ?>23|)0&c!le{#I0YTG>aF1j|

RUI9GB-bKPfp$)8_Y)pt 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

    2T4Z&m&tKr}tsm4HmQNVz8| zcRL_Rr*J|IR#VylGr?N3@?WQ*Pr>;LUIa+|8GytuRQ~zOKS%jnl|OV<;6v5|A3&sw zJkwqLX9#ndC0QE=ed5W1HCAG1+B486x;I&cQ+r6cjd9#tbi*#BRfXT9!i{lOYcl#n zWY8Fo*%3~+F@EbV+^`b}A@aLY;Tz+}Uqe4=2d^DG@GDZ`#`y6H_>rFR>A<61ymYJd z83DH`SfhTL-B-h5c8^4QX7}&n@TouM@K55xuSc@x@Huhx{ty@bKpef7GBTN_q%vCK^cm$FIfW9 zN3n+2;>|%F%SEp7%50TEtg1xPN^;^A3$X^E$FvGBq@^+j-2R^n=v(gyg)o0~H6w8#r% z2ZE^|B65?6elV?qh*cH4VYiA_6~CV@l+02@I*Spv2cPz|Gl)wPm;w5D;g652xoIspozCRjs{ZyJfltw0S zvt8Zorxa)%tkd;!=#(&)5UbDP2C>_y^O5Vj1u(-xGclXYEq3^ihuw}PC7#MUC#oqf-m_@qGJ{*Pyjq*%9zVMT zMlTl%F&lKpj8!d~Tdw9sd0?C_E`=YXF}Y56Hap+0O>~phFbj7?xkPW29?NCX94!qW z?~CSJqhI8{DDH+Px-XiSJ3bdzN%753I~R9Rm6d^*JEQ2Dv_$ttX#-ueGE|JMwH@dK zyZYAMAVX>x2cO~Yf#3YYG(mjFdT;c%OC&z&VW^^|-=t|gRR@PphRFYqc5n3eicS&6 zYyA3MDeo>ySLgqacF%Kft&CHu=v}llmPWjYc+V3iDER(;Rl~?oC zVxFXJ!hj1y+fH9+dU5wqm&+(V71MW(q}Pd%@^HHsmUv2{q4E5!RrEOi7T=1a(L3_J z)^&R+~}K@VNpJ~ z3;+*jQwmRU*mL*u+%5Jzcbu(nJR`>zv>%*wV*N~gV>6C|^n@BaN|RSPEIT^daic1vT^*{mpq~eH(J)zavDy zwCm{SF?z|7qtEL)Iv;Ha@n*>pQeW3~^jjGH?juLPzw79KWOUBsj*vP<6BS+2nvsUw z|BPEzAsP~(-W`EJO$>qUT9rZI3KIAbp+_O`k2nIu3<9T-0P}DZ0!eWM$_)acuR);f z=mcIw-Hys&ySBg}u$}~H5I%;3PPO)Ab7YSZ`3gq<5TqH|@VtPY&nwS}R69|;&`hz` zh&+gqxqf4&m`qP!oablQs|Z(_(Rev0JlE{=G=0vcPuG0Jv`2FdK7PiS>1J9h;nOu0 z-JF|Y;bf5}uYx|FVLEUddqhdJQ%m*mP;TMg5|4xm*keoOpGCg&>7HN5xriX{e z6i=s^!(wB4agOgNHPPz6bYS>2A&KDRWRrJ&CpxE)jth6zT0*_gx}kT0BRB&GR%WH* zHmB+_j?T*nq80@{ZwaOP-`0OPmE<2l1t$=vrSg{5v>SR)iDt&Ec{tN_naw>9S6zp2 z6cB$8`v>;dU!&Kh=Mkdc({=RUFgjnNIYM;aZ0myg`xu>f;Oz~c=xg|j{SoMN*+Xw(|M+u^ zjA9xIc?!)uwCl2mUQPmhU*{+Ua^iF?(nIHyK>E=MblF26VCVH5$RC9RZf2Ne8R?-n zlE6*z1UmH-iF@efjQmp-+34IB(sR;LDb6#q6X~HxFfvb$Fh2&x$8~TH!;6Demg0iG^-eRywCXD#{?{8B zxZbKaa=ftqWW8Y(jl3{&qd^ ztp5XR&+U2xCDhX18~JE?JEdof|DCBlp9;YEM&kV3f}1L6P> zm1O7yOjsh-xs%wAaV!*^yn7)EH<TUZoALjHZ)Up^9o+{lLKPQ^>(&Z8w%koPl}m zn5Vag$1ylvtDh0r-Lf~WdovU(VBd?Ny+R(V-sR5vs;7AvDll&!{P!865(EBuI0ig9 zxIh%}$}$vV&?rXud!_#(`v1c4m-pDQvF1B8OmFxNT)sndy-7Hz&wm9^)V{Ng+lzw#RwBci zM776SUhS=-<%hnG%_D}5uvWoK-qM>^SzU+crs%?L!$Dej!nQ&2@fo9RS&h1%cs`zQ zF=D_N1s+OSxV>uO`MpCkTY0}(f4t*wz9e#$Bls(T?HTM4XMfCD=-f?0B~M@ zPBW|nMH|@iwXVQNuB@+cZ+7ckgB3LDyls&L6)g^YS)BDXT1edOaRuIynrnHzxZqR0 z;VzU{aqwF7DWB;LTj0QuuSd}FrvK2a`jZ{O{(ohZ#qFk07oZe;=R7tJhW<`H#_uvI>zOT~i zGQ;^GAFR7;Go#`nIpXd{e+nK99Fl+58ob~xo8;gtpgbT@w!UC#E7Z5XVzWHo(wwDta_^svF_=O^WkUn70lHeFA%@3?cvoM zr{gE3lZt$s*zYgogn$cr+Jff_`J5U)(~ytKJmkXzC}ynMfi~Y$km0#T77if`Je@*G zr$N%K_MH?=tcZFAFM}}|7QsXz-+Hr*xU@qVDWuwgLPnR}1xlg}4kLxN0%z+U%WF`( z*KC&EE$=``k3uvZmP7b$d5Tg>D&8r62X>hS( zJ;K8)C$mLdnTPqYuce)|0xhKb_Eg`KAnD4q7__^Ac9IcyG2>2a2_5fi*=I!RZHg2} zq?RKQI3Zt}jI%n2+!B z_kH4g7yADW+^%?Tip%@Y(+lD{xFR=gRb+D$X4%J2C`cN-kA4-w8 z1F@D8vBH+%9w3a^O_7~7#?u@>`lb%k8?V6+2aG-jV0{st_91rKL(#LB!>&g!(Odt8 zsO+t2_zV9E9;lQ$&NVZ}7M)uC=8qt5+9%etGZ@kjz zKTi!$wE3PveD7VhhofESyQr^GtY{A^`zR*SB0Gm&mNs+_FW4+?q6ck;<0YHrMd4^i z_waI&=vysq(ebL@_#sVv1Z}->Jyc))8XUf<=s$Py$8vU`t@s7@e~Rw&tV9w*?`e_{ zd&Ze22|WwWC?NwYp@g`Cgbb!(7-18G3JxYB;#uA+c%di)3|~aYcx^;F9mqRZr}T{m zk{Z5Tc$ZC#L41_Xxl%gM$4Q3*F-zx_BFj@8Vo2$1>5U2{hxFaIuo_`l7utk{990!U z+;%al#YqU4W5s9%`z}37=nZsU1~F>_V&9`*2?b0vBR!0%-hPixX1s}Hgw4=w+4bzg z7BIS)R{%_1PoP!hOUOr<_5ATY(2kx2)-u22-}j00UDNon@w?(V-apbcQ?aRo1f-_)8)BmX6kc(i(HDU&yq=`)bp{e!V9YYUzUvYHo0DZlo zC-8vgKXkRedXs3%^V)Gx+)+B|CWqxf$A`kq<2D?VMIWLi`wnG$&WU!oeyrvhvl3S_}Ijn!qr9M+-a+WtZ$KHTM4m5*no z%Jc?Wtm$mGNTy##?qIjbN>t4L;ey?w#nus?5g0IsMvGDvwuoTmR3_yYPF!-Y!2uK{ zJcx9LAwygt7vhcDvqI)X4jM&-$yS+zrrF2=RZNf#?Zg!V$3up4(oiXm9jT_gX%5!X z?OZj{8_p+7`qs3-bKH)AVt?T9cTCk+^E9+$C`^cs;*X9;oq;(}kv8uOj$koX9)xvY z{laEF3s$LG?QMt(HF-32J+K>|)NiW9VIAM0m3l)deyFSa4u5kxREasGArcWqDvQdm zBRHp7-TimL@;8cQz)WO{7Xh%WA@T*jHRqZ3RK3B1Vz>eOe6apiV830z{u^{_p+4}8 z%{8V4339z1t15|d{a5-k*MH!TW6re$-DoGBaeA&|}GC6#q!Q}vBC$^QLi zJ)hMZcuQ#88HP}dx@FSd;m}^jg8D|ZxBS>RIb93+(ZC)-L$FS_$Tx9?cY%^^oCZl9 zhv;c8Z4CgSPeRcI@#oQ-pwQQ;h)L~s^*}@3@f@mE4z$ix=jhZtPB9zw&qu5SZS zK|*IietNnv`=DnD+jT-Eo92i{Wc2{wMX-oG9Sgq>zi3?zn;1dSc&HZGU|&|SsEKdcTr`XT=Qi$1qCN^D z!pb&RXiRoQIh~sjdJdl3`T|psG?Zk-#K?jsrun_)5@tHv+6Y-n5!8fqnNX~O37h}x z?y&HR$`Yx@jU^a_heU1boEKM9*$&s4Wo>ompirzN-4q-NKs$7)!W3g`QKmTRhvkxV zn&vRKn|}L_98=kNPYq9Z1XnZzN018MN;!!Pny@@05)|7BEH-qO(P9gq#1TP;FMkE5 z5z+FpJ&e3*;d6d)=cNQHMWV_zQf7@V$PAjh%;4WB&uAARinbDHC{I{6#t(x?=MvHz zFJT$D@t-gM46j4w)Aq2aha8xAD0&WlVzgObJ(vD$EobpZR6H+)&Vt9boOlH~ch>pm zSb;prSdY%d(Gge(Lpt)Rbi+tEuR5RlXB!J>j=#dqEUemjh5RO4Mh@FDY-y# zjN>H4BnzQD_Bw30K14Sv+O0ckmS8n&ZQNfbu}e zjMPyY)dPWNeyY>{g-Z+5;%=>_>WHTfA z!1@r!ReA$!bD~N{?Q(2326B#}=);TY6|HVhh9<#d+h|Y{GB?_5QQd5{wLhe~VIB62 zlI7bAM`@vFk%1rFu(_I6Gz;5UwN$i=V7lQ4lME$8+?|cVcin^_PyH&j&~Dh7Ku>-V zWG5>;i$d=!#u-N+W1xPpT#aUx3Xi6M094rV=?zyQ0nz?mi5~(nvTpNAEo8gBE^8- zU5Z&lRxx961(fxw&}W|`@BZdwIqquHS5v%_IVg{|T@8Z}EQD?Wq1-*j1W29fH0DXTN&p*wm>Y>xrNwL4WZ>+heH{#m<-J^l zITf|bz!i8+#kXTESw0{1C`E#B*!E&wZP*MqwuaV<=YtTS(WqSTYH2mh8F*YZIIv>q zZ^f?Fw}vG;Jo$qIgvEhV&6OooN&y5XSDZ}^%zM#pp0ubTuweUim zauUl1}~hKytgkNn6uw;<#x8Is44 z=&X7vbPZOkolR4eu5g4a<$yt$(rN;vA{zlKS{2a<48#w~Z*=tC$j$DM4+(!aqT3Ck zk0c^`Gl`0u7+rE&0~S$D2@FmftzaYczlhs4FA1VG{1I9!GDtfJMg}Q@xaP3&c7%tL z&~Jz9kb+?)FI*8`2q%U(B5p#-nw#2S)Zlbzv}876T)lzz5d_T;2Rcl{G(Izi%uw&f zAc7HgwBhv4Mn<{DA&!oA#kbzTBat%glq2#;Tk#U_P5kPbUULL*;}P%-O^lTnN0u^; z4kd>~vi9PjN3=)7^Ihns@vcW0Q9|b#sfYK3XM}h}t}9LxageZHH1aZG=wFIdv_>@4 zamW?bOrcp!QRD!nmLoNbAfmaw$z(qM3(pSE1ZzgaruPbQO*M2P{v*c;IcebOSdq*k z{1C~Q;@^fu7}YErwG_oeXHhlo9#(i%eS_H=GK&`Cl-L}3mxs>`7s?2ctb6wyRR=vb z@adf-sE6}pjylW3lS`~KWKLu`dPjsPZ;=tzM@I9=Tu3y}Vuu(X9Po_BzC-8X!JBe; zfH%*iQOGC_T(t=ACHX|El|U(?G0WEu_^6{}SNK2w_t`P=X`Qx+}18=-EssuUV?It-+!3}8^PZ;_3$6;?n(C_O!l7V3|^Zmb$nWJ)3vw& z+2NVU#}zSf^_&u2V2kMI{j6nb_zJw#Fpl4J6bG(N7es7wCXS06Ya-i#6m2G;+kovi$;CL!Dw~Wsc21(x{(7z)|3L1Gnx>P zev5uR%q%q7*WtYTdNoq5yK*~6sovYsRe35gLS2Uus&|De3zo4Xqtn*7(P_j^GDfFE zk}*%eCNsSlZ)(6Ub&NG!l)XwX#X0z)E$ zO1)QD5BG_;wjWJIHJo~{$o}DfTt8c7KE^N~UFj$4&#I4oqS!>$F^n{8%W53{Gd0iU zhAxW7V_zi2fW4g+0y}C@RQzr#-Wy}4S!_5(9*_M;0mZyxt!?vQL@+Ev2fgc~da`1z zDyPS=Cz%2)s4T6S3tzbn=!2)Mb~Hk4M2N^7#bR6*G|1|`D1Y;jCQ%+2+Ac88A1_v$ z#b1H8*ew3iv{`(aSjvgrEIv1Ov-nI@*=TE4zLpExV)5@|5M=bD?H4}|JY&E3C06@j z-ojLXuJ?;4nA21H#lz)(aebz-SA2YUkg&U~Z#+)z55MFLj00=N{_uEINj3cmuTVdt z`@C3lR5fn%v2FEEG)QotPn4O71UDJfrZ3(rirwZt9_73b?fPQ#25i8rEOLE^g?zkTjIV75G5#8sfA8lNs~&Dh@|C&CcY8 zklxUrKN@k~4|q&G~4P{cm!?bt_Mr(a(HcgTtV zm?_ilsX0@$?tJ7-RRcq0svJLJGR4QMB72p_{`z60XY7^IPS|%UC9!X6Dkbcj!i9YU zn7k7Erf}huex?@MnP{JMCDQJ^Px_6Ci&GQmia6R2?F4P9D`L;o#6@``F0k~Nxljug zkq>Ie7!)}-ks6Be!}*AzCUWUttO#@IUuqhb_k|A+FWd_uI-8fxKB5(&_f6*?Bb(q+!kfF;2M<*xq;?yr1yVvZ3k?z8 zhnzzI8!3RHh9biMHtByS{Ub}8qK6T$Wi6AzD`TRG)zURGq>Lfv(dOCVqVQQ5*r@!4 zGs5G-c#_=o+EaLV7$>bU9x^R`MTSJ-lyGvmn|Qjx5OXA~d~NZ;j*iQbq5t$>$1(8n z2iWl@pM>$h4Zp77e>#6m|Gn=Z=Z8>FkHquTF2euk2y)bsKKE<=cu@01M=93AaIlG$ zv0qE%XL8G993DfD|8bho?*my-$C+s7g$hUC@!C%a%liOGz>{kVcFQoXn?2>Q4I_mNGom;Yz{Jyfvcj z4{up>~Ch&lO8^e z+X~y2Fua4iV%(b+KHem#$O}+Lk;mWP!Yb*qqCoM(c0NA#v}#{nP2<_V!m0w>S7*Ux zXkW2`XW9W~;c%Y@7kzVz3%>NCef`9PHW)V0Y-`Em`J#5OKx>KJ?vZduYIq(Top!rpTFbcIZsyGu z7#`DL4zo3#jiqgir@Q}PlJ`_+)6xuQ(*;%`hDa+s2Og41hC1w$X_;j+ME*iNvK@oC(pM-~kungfk=%+H|X@-~@If-xp z2)~mEg6n8hHgfmNkhL*U!;ghez@RkYGHSHI+|Oaj zahzxr2cU@=U<@V(jwDAh;&b^o1WIj`$57T2**J#s032qmJceT^WzbV|R`$lN9X!{(0v`j-T}1G zj-cy&(L}$CYv#*)IS#z4ulXxfZyeUAo_3&>ZpNd@uYTud+L+&TYNty;+uTlH1b3vJ zrd`q>p`C_Vo*&RouVMKev7Po1Fk)ifqfP<`CFyYT1;dKF4f?Qdt9nuT&N3zD0#onInSNkxsw3?YTN(sec$^beCJuu zde1%g+_SXiw4f>k-*{T(8&4D7cv{6X12v`zeT61UwED(#8~w&qU3v#u3Slb=>5ZqR zs}4Pf9%I;I5M=~y!vdQ%nWOf>I;0&)A*9^{iho5KVKa0{bvdaS3Y0A z^}OZ1@=3*=hZ4mLkO;-@7bg_k@J28cpAE6F3Ez;gOtR2uSBIL^cXeWz$>;#JS$z*M zi4_C70j9ux;@eSR^6y3>>$Q)Uum{l1q(K!D61Dz$(f!;M9AEkXQqeIJ1IOZ}=`|6f zrCu?_MB6%q-Sa2+(nN6=fgYgjQQw>T;k`*Nw8Dg-_yT{mMXccwD{nMY>+B6b;yms3 z2pzvhxJKm$@{*NJLdy}juNbZiHhxZ>8&4{Z4-PCfYfr{T2NH`@MMu2hIXn;Uq^LN2 z4~tPg@lr=`mg>M^?(V3GO7Oj0n)!0kbCPlL2jt-39F!z(Dlsx}axZtsExcz(plFWU zdx*ljo&Nn!TX?S8kbsVEJ&%`1vigMH-9DN9yfa-*(oKz4RO=;m*c$d1>N^_i3>$Y;=kZ{v)q`b zr~RclQ~vDu$5FK1OS?O@Z;0Z4*U$IR)3pCh`z&!20*%NER01jxWvLhd&ynNXIldR< z%O!@iM1*YqO>`)MEpQW^O=0sj3hJuw4Pd%5ur)um>+QL47=hca#Eef`@py8Q>TY$6 z*taG-&*!oQ$G?SRw1f`KN0W`Gc!QPfq;|*D77D~Q*x?gDddB61hS;w{{?hJ$ym0vcmXpmMji*t zOXS~0^o5||vqXn~iWt5YZ@0d~^u+*UNTv-J;s&>2A7Xlk?kT}WhwuG@Kxsm!Kc|!C z5~g4-p=slfBCxjo*du5E78JU=dW{C7UN~?N(qMdT{$K33ZF~!hwZV1xS0BWB7}JJk za^NdK_p+>|CouXRQs6sQ5Ln-VHcEtNp}C98Fn4kP{!|gr%ubjpw5aCQuEls?!&cDy zahQYqJj_u%=*arSofPWN5vb`1F2})weQf#V>4NTln$P%2fp7Uik%QQFL3M1B69W8L zkndl;9~0sB;1#~53p)tCXY>6+RgX%bcu>x5d;_<&c=q@+G5puCGf^`XFXpt=8bi4U z$W%LD67^f`5s6PW{ur!W!WIdpYoCUaEf77P%B5t$CYzzH`~4h~d8V;F7A!1Xnq@q& z1wV4GBNiU}$|i7p#F1K&tkqR77*j&l4l!3n4ZJrhu8s1s1L)Cs5wJ@uux2$4&l#;nlci9%kU?@XCZen3NF8jT&G|a&uH~I@5g$QR(JFv#o%^PYvJ1`N1FZ9 zDdi&7kndGrUgShL99PdW@%bp_B$e}irV z?&Yz7CpMvArBUz;GdpFj{4Ay&gbRMJTQHwaLP1N6_>RX!R)0KgBpN@>;GVnzb6dVe zln~5cDVP`$z3;kag7E+`sPdqus*RwipKTvv#D4OxNQ_M{NG#%j>F8}o`vu!4e1+OA z;})3gAzi9;L0$iV1iTWuwos%c{@iU(txHu0cC-HLVi*PHE0uVXOK*7kk0 zZ9D27U6B~CwE3>=SapWItvkw|)$TCOI4nAJv>&2Bu&dV3+J6_u-{Jp2`!)Qlf zB6eWS-_uTA4$8?d@dhrH0~cA)U+i%B$DmCWpI_(Dex=xrw5P>ej?a}lI&=8OwKweQ zga`FS8r|j20^hgv)%OkQ$?EVI8)^5$uE+x4$96;n?bse{f#&cf*?bq^9?mgSn?B+I zp0H@KFy5fP%xyeS?IIsRFqwH`~Y^*i>4_WkNtF^#%sZ`WMRaq!omz5d+&7rTEw z+Uqa%?X@lJ{(pzs>-D0&{<6SVBOBlYw0fQ|Z|%0W z9@v8Nk(E_E=e`ubk$(kQ-+D3+v?7VfdOQH7z~QfICCM2F?iY!d?=Q$(P}K5&E5DEx z_&zHLRCVU~^AbcJOrkt^16wB`4`feYV}d+b(oSU*LCR8;GQ1_O@eD_Lheplvjc2PY3ORxdunp5xKXhJ%HCHioDsDbQE_= zl-=~FeYU4qJ;IiC)Rk&8yk*P6XRY^8|BpBVRWvrghay4QEba$drD^kdwmN)W*iyJ_ z1pUSje6o8F?TR9~-FJEddR#!vfWXSyRy*nu^0fdB4PIesIV;4?cmy}g2sZ4@?5XNp zufIdRRx6wQP^o_ZQq9yBSkKK>eCVr&ce`N>v4$Gvb zE`_FzA0x+U#R?i88Y?pO6p3hkddMC0H93xMI+38I|F5GdX_Us`Zlx&M?k!eBl5!U+ z(p`oN_rxi`j~MWHobp!0Cov$7_8a(r;ta3G4fOXnd=O`q+q{vD$8ecy({3i47PGQ5 zVt+JV;E&bx&>!&>3uK~%Sv~?SkJ>qZZINcIG~1rlV&mUzY7KT&yl zZ1l?$l=iXstop;)_z%uhZW|XLI8*uKxKu^y97h^k65?ADls_lD94GT+%V0ylas6&H z7$(*Q%d^{X)&)aeiB!smz7(mf{k7r!NToF*x+7BA6;Y@tw?<}x@j_&h$kX2Khbrr_ zIkfRHgR;fY|2czlzX1zfDE|$2M#LQ&j3dJ1z8S3iJu>dA!OH8A?Nr^OhwmJ$v_ubm zda&}mD2uOS;tmd0j>N`&F<5CZ(k%I#`p4}ZtnBF@*E(2vss9Zq!OnqkFAr8e9SHCD z4$69UuyUs<`q9D4?@U-I^{y%Ik-^G0rnu(8${);ee;llAGowHMwVCw(F!+};{oMw~ zI@6~y%43G%@5CrC8!~r9M@8Qpt=t)v1)Y6S zS>W6hoq|{+jP%+Yl}s4VEb8I=Xj z&B1V+48!5>34`$w#3^EUbF}hRL`GY*@_uAAwu<{W@i6MSVgmP6xJbvFUaz?~4dz)eSb;wmi#;;>hm%ybRLhvTTXjS7TDfcWKj2(GYzBYM?w0Pn&;h_W`ro%&hW{T?6T9#xv4?Yu1!ZkSD zl;ug5wH9`fnv%o@rF|Pr(HNwu1{YP=l@*ti7cZ+UQ`EB>)cv1n5t5=F`Jf&IAgpD_*fw1$@zgm>%Uo{DwCS|$$?2*q zQPe#$)#X&QNv0x}n?NLY0#x@0#2O{6JHg5&-oa07iiyb6LZ;r7#kQ2{W|g#oCUj{z zO>eqlJ3Q25~6T|T%hF7r3{?wsajT6r_89SsVpn5Ml@*qQU$v) zA<>+KnH6P~rIxYESWA@$CBCeTs*ihhZJ9;MEv_Dq<3}p6RsV8Ts~0^Eq{l(AC5)x| zs4Qz&OWJJIonM)@c1Pu<9kqzIDt5gqRTeAfa-oaU+eNLwSqRm#7K!%xU;WRlbD*bH@ez;w zb&N53rKATk4rM%*@nrSp;vD!XbZ#lNsx@|!SmgRX1vRZW{d zFUu`hSxwh!{PmW;CYIA`q%lfF4(ZZ$OO3>A^g`+S4lx_tKPo8Ss>;zRrAu%B3d=iL z-U%J8|NSg)Memg^F5j^9cd$IJUugQ2T4~o|lQ>mEn7!F91%&{_KTKZ4avCVs=HD&s z--1pjU3bD#8~=}3-a1#xX*WQvz43C%Z@fU_-*s{u%Zsp~GhI7$axcqME|&5)b@Eo0 zn=g^_t-AOfW_jykDR0)LF9B~xba|Z;<(m_#u_zAZk7P8 z(5v+X@{SY8J5L}#cmlb??Py=|GoL_iIe|Ro1oG??$O}&(FFJv|_5^b83FM6|AKXXz zVXBq53|AC7E>sNl=GZM5;8D!x0kOtLls5JRP!jOBXgx+0anW;-E@Kxq_Mt0hkolU3 z+<`F#4YAk91fp+(Y4Llg}wQG8BEo6*Gj^!%pF_?<33a~fi< z50*N{GoZ5ocIEt0F&K`%zHm6CzXAIDSiciAUB(x6;mnrtqVz6-{-!5nwAEtktsLHl zUM=g<^Peu`jXJ-*l=G9Y%iJaXbH6}QibBho;*F6TrI7Usg?IedlaC?!Lit&Ve63}D z@nIP}<;gd@u7YMUB-uWcA9d-D5X;VtkkD|h0woSr>{#l#cx0q{`GC51N;_fK`G&OP{!LH$N;jfy{0w?~SdaTTz3L4`ThPjSebrkE zcN+Azo`ha0^cq>u!tn{#Kc=aCK7!sR)}ww9UB)l5$r@dK)K|*q(-BGYn^KMXM|2tA z)7j?|KjJL;c_tB-J~-ngM(^pVu({*a=~3~jea?+)nM zPC{=d^iobj?=$GdpM>5}dWN5b-Zbd#=X4)09kh>C$4Tg2551O?(0demO(&uEHuN@~ zgkBV$IkhLDHxYV^PC{=1^s-MvZ!Po^PeSir=$ToM`-eUEp{Q(%vIYIeT182|j`0e{ zOBpX=oXvPHt8=I;Xj67*K)Z(;r|O#6VvkgsLBhUH~U7czZ5BSnt#_i(AA;7d^Q z*T9K5A@BnrM9KSr6ra6}tw0PtOn)4B1>}zcNuLg?$B<$2eL(cnN6{(tIpALh#4Bm? zY9QHRgq+5lk}H5@H=Fs>nT`Zfejg~2`TP_R;V0KK?ph}0S2NCM%mPxm#3S(-LYh7p zh@ws&0EGRpe-_Df9ssTa|6Sl3;A=osmFX`6D}j4}QTnix}rK zKOZ;^dZU30kza4X=qk_;0jb`f3#4?7VSWsd{O>~M;Ae6Rko^B2rte|Ajrp5^)1bEu zNd75Py`Ue#copT_gFtGxHUg=*&x1J48I1J4Iqfs=tzK#I=~_>a=t1tfYO{-f|;0FwW9#_i01l<9{V?**=d z{+%qpnfccN$*J@mCGm~f=V6+B)cf4zl4y|{|_LA`!3_F%zuvQos544 zQaT=G`Gd^Ahw(SeZ)DoX=mnD9N+6{-4@l{q!txZR$1)CMejJd}@zF&x9nS$%K|cVb zbld=>d~^ZH?_?nPO$1VU#xOmEF^2g^7f8Ra0ujXYCLrbC#X!oZc|h`i9@7(mluu)T zYRfRt|?K=N}hqaR4=oC*9Ta4L}Wh5;!b)?6Ud?*fwDGNucFl#W~= zg*%NgjrmDTk7XPQq;#CZawGE%jE4)Qzb}B~?-Ry%fn@gzunzb;Af@+Kmfyg%m(j)i zav-H+29VN`1hj&V22wgcLuZ8YaW9bk-V7wa*8nN}^-N#RSjzlg0LgC}ko;1ohVt(( z_+CKu&s)F|z*lC<@@rvi22#0h zVY(hjeyV}wX9eRgnZJPP0>(TbmCyMspUnJ8jN_Ru~c+koWvu3U*L7#%YdB@O%+b0pu+_)NB< zK$N^0Na6T_pC19DXp-+^`c7ae z=&OM!lH^LJOMtjllP?CA0A~Uz{PTh6T1+3pbU$Db==|RB7kbiTo)cXWTdYw$u{^>+N&-7DFw=n$>(@j7` zJ^4x?mDjmI${*UdoZ_DdBtK&qqkt6O16dOH04aYOfR_W$142L9GDYTBJdnzB0MHCP zoFVCtfxiI#E|Bb=VgB!!{~I9r@d7ElOBl0&5-v*MuSAdkS+nL@5B>Qzt z&tp0gNcP{QV+uR)Lm<(#+4CS^3)6Qp27nZwtC;ox2ZAnU`U2np&{<3;0sDg<%(MX* z2l@bR0t)9b#@iV;0{ekq#q?4jg?9nd`9LFRE7M~czfG0tdmb1I`K`bhUzi!p`yXE8mRaR`vg^;n9$Pd)_JfxZt&_sM1;rDHXa?u*4hYA;S<>^Mi#*8(pG ze$<6>Q1b%w9^!E%9O=NNv5KU(Ccp%xG#_}UcG958MvcEA=`dJ4Y~kCW~E z1wbl~JRtISSQe1lmw~{AaCPfgska(P^{)m5K+=C0Nc#6P z=CQm#W4A@7`)eS@^ZYYpyD*7y6ypHKqobt!Q^vP|6wY2Ch4U=qb|B@;WsD;jpFLgj zC!UHq?2!L?q@*htKSyVR^0gkF3G!PFB)=;di3NL(fE3=-!zHd^yz3N2xf=ZS zKnf2tZ+z}_`S2N}?9_c6fPcW`woW}U0QOe&3&OtbLFnuxOyRlO4VLXTN03H$) zzxx<(08&1$VqD7naf~-c%W~fcqYpTWZcB)Wvpkc zWh`eb0$zx&0@AEp1S|wr18u+sz-(X@FcX*zOabNr6M?xv3lMP}6c5Y?nt?NcM&Nv4 zEAkyli)mu?G8QprGg=rG#!lov*|jn@F?tz`7_%8Ij0$5X%8Tsx0g?4F9l$FoKFn`n zelzo%nD1q*XL&8lioP$6LrxPf`XMP9sTbbX)=w&Qo%x1JO#skT( z8AyH=<{t)Agopn`ct8;z^E;T|%6!^R7yn|Kncu|x&CJI_9pT5z{CeisGQWuViAN~U?rUNL-gZWL2n^{hClSuAmem(Q)J1Oytm`|Ijk-tLb zXEQ&O`6rcZZUC8u8Jf}&n z&ey9Y|DdUHplc-Cr!f5^+c#HA`C~{h>31-_h2jgkmFer*-oo|;EH7d@mhC%Pe+ARE zEPsRSkw$f1^ZR)I60Oct9zy8_teA_kK&gq+{?LBY8Q?|3>)(`F@t~=kzpkd}mYnA^l#ayEy*pyyDeNtMiDd0#SU7 zm&@>IP={z6(>_j*m+A4Go>rz8P<}yQo%eeWr%#>dyOQnId9#<{`HJ`{%|$Z2hnQC9 z%MNA#>O9(|gQfqbI;p>$$8!5VULGDU49r6w~Vb=yHy4_GQvy7Kg9SkKTgH66<^0+M8buVmVqvePuR#6L(pwN;Eqxa1 zo0i^$^3u}R!?TtyMEte%Jv#kJGEro_PO&@oawd274*w#O)c=aX~nEq z|CbL=7A^E$SX}8T%g+a$;>-%J-m}l2>;#jvCQJQg^=cHXX>xVq3{OR6X<1#RE1yKp zlKNt&yS%Pu73s})XJMgORYi5NyKJRun1QvKSW-AyEU>dXDyq{F0)iC^rIm#eizS9H zIkToy(wAcep0l>tUGB>7aeQH!%Twv5RBF>?O{=O|S>`O}WrV%z>vAQ(cbhpfUsJ74 z=dxlK781(!v(A#5s;Zi5yJML(KR-3aDbw%7D(MyOa=CVq163VBN0trwDLZ+4T7Q?0 z>?^q}M_piS9pr+N}a{auuN60?8vx!ECNSu7k6f#wL3pUE@&mq zSqo2IcfrE>?$8vHhXwXX@uX=OjW zSFfrPP%J>)gQ0i3HLb1;3vF>*Ra94()#V5EQYY&hriyC1Td`{T-`g%#P=qO_8Kq@z ztk1P()z;ONU?sn^q`a);GQJH9=akG(b@u4W`jML|Dy(j4>xFYr6|E^ynJ2Q%l^?VV zZ~HVNWTRNG>~s|`FYB>Ut5ZgCZ7o)uQ=6KRD;w1w6BKE>r~@)6ScO0G zmtmiR|3scF3l@x3Uoijv8+-2jbZ0tkIgr0hsdTzlRiH*r5*?UH+!gvSM~W-0u1P?N zQ|l4h*^(Kl@0_W9GnBDTe=gdpo@bNnhlO>{Qt_ZJL#u$*_~=cbrE^u*tP))#`|SB? zPGlbpSLW5uTj12x?Vs@QJ#GNv@vQMq)teht>q$1M$S3YxR?N?kafFwibf;HTSGe=% zp@*o}LvhQEW_j^Zh9uNUt?8T^8=0Jl`Q z%W$iTldwv)mgCLjQe>+7CdX|mdLRF`w>UKytZ8_DiInng9?0qiqHgK>LS(Q&)UaLz zRL`s#A_?gGV9OlmPwu@0Bb2Fi^FQdosE)$>5FE9C{}XE&y+d15wQq>_62Y_5_AyR( zU2%omWiO%1k>MoF&sS#U=5hz!DIRWFVVtyZmNiRF?!VUQn^aO$Svo1)e_Cc(EUcM7 zXOQ9kr-X+%<>w4B+n#|y|Mtxx z+Qaa?OS6V$dTKb!YW-Pr_~-SeM(zKK9Hyi>SJc-#Ys>1;0V>95<7(&1l(0+==cIxDKBt1qWGY zAJgzj^KfZyu(&V=T~_aA0^oEm$X~?YI(xWSpO5drbdf)DxyPa?PZ1+Z@e-&Pim3#{ z9AX5KIw*R7s-GhMsL_G%Blx7%=jC*wtjp?(D>J2v-d{Gpf76A}(&9>q7xSr@>e+8j zWjLLs#qMI2qV(qFEXe7h3)x>bv$EM=>sh_WQ;gx46_+}fxm;wT_owE&8b8vZGF2~p zt`E6_{#IgxLP+%f8aaL`Y~@A#=;}cHs9abqc=R9M6lH&wIr{u-WrLeo-pu}(3@aP> z6W=gYxjugTxt?+Hs%k;h^T}VetEU3${Vf_QO&i&R4HcjA?;z64RWj(Ce&BLJYYUVK_?v=1T@?c7#8=395QPQ4 z7Yls5=qU0Z_LD80Mv(2Tk5)_@u0cWyaD+3C)XPh-*t7By5?2l1j#*XM$X^}}gL8Fe z3ZX4vGtlt`mfgzYhNJz~=N`|*qBpU04awP^mylwB>AGEAF_J(a>bcFn9XM^wXv@kq zuNo#IpdPw_2n@FQ>9|E34sDrZ+^sC_irSqUZxCsLSzz+tao_U^GBVN>zl`I>Z%BCj zep-}9>7vvV*veD7&Z6k`aKdvmEcnH0j)+7dTej0w89~s|VtwY!NL@4vaGK*O2M)uQ zq5#UYp-U9zFcEdZS4L9HiGX7#T8hrjCA0(87Q#aZjzAx0Hw2vEm zUAdks%hm5Ot7ZRFthrX$d##9`>7Qlr*0TECu~sl)kNF0F&|a7>t3Au6pzRw4YX9? z37QWlqTJ1toMUBOP`HNgGL;gAzKjwn<7J2$A5(+9;eaj+(GTJ%L57 z6m;ZHcF%b`3+DgtJ-?97rz^ChlKW?6doh#Soox5d!ZTnN9s%~i`gl>ZMDC&qUPvD#t(1h9k|o z3*)=4%-KCF1uZ3l)p~jeMWpp|A85Ouy*vT}UQ8Qy;D>kZ@a{Nw^zJ->t>OEKx>2^k z%ROURNy)%a`l6X5%MfW|jf<5Q)FPLc$DqZ-F`;bf$C;Q=R5QmKmH>Oo%W zL;n9`{e?Tx8w+_9{Qv!h|4e^jJbE?%Tlx!E8g-TAzt>;*7Gn${^|iOC{2TiV^03+H+yC)HmFJ6{>c-}%>DZ0*?= zH2LBI6g+N=+GCst>>tf1CinUz8l-&^E!`m+_MW4Pd%E{H@2yY>r3Rh%Nd9{imNzyV zuEES^totx{zQGy8jX#HccQn0a;IL$754JAHnYLe<2IDL{>bu`fTyeA}9o^}BLs-(Gd~|r~bieXAj(1bW?8(_?XgHkh zp8A!^oZqqBG%0!n-hn+AULo`7E7PKAI>tx1?Ha=8-O&M>wxk_(7upT&`8e&=kMjuI z^IH+1D7QE|D^2zu@;9K@Q$>B%A;N`-1VYL0Sh>3k?;H6zJTT-eVLZIc5dl2b#{r(8 z-n%TP{-XbRoS=HTq@ujS&)*h{5`y_}lPBd;W<+#%aJ)3*S6 zMZ516oK)LzBy!bSdr7-3AVx%O{`59+20NYQye8MX_N?wWkINodlAw9}r2e$F{sj*v z76)42iTrS6eP}o3zAauXandZmqy#1}Mmaq}^;YfTbj?LJ7J_Si2_brJ2%bNz^S@74 z4SG>M_pNJkG`c3Kyt|&j+i5UTx0D9UHQ-8Kr zBi9Qf7(co{!ppDk^V4z0)J3$A|GXOvSW5g4!&MROfT$~X#VH>|pM&GjVupfoUyMaj zcEu#(=jSot-VsaO=2&n$Vs{(x`;C67ZE;EG#8tS&*XZPrm=H@g8W18kR7XgQBp8D;p8+ zM#Ck)j!=#o;%|+>nOqY&9;YptdS8U{q+!A~I&LgMQT!3{VB8adpURq{f1LIH6&ubc zUAj;)#2;FHu`~zWY_Uj@YB}B<#UE8fHEg`!|4Y|mHtVyA*5!}yoxtfAVvvgH-^G)X=vJ#DddYMQl55tzo9L6}k%C;tDJ($br;K7aJI zYLm?4!75H>dOD++0+W(gw!9b%5HSDkcxUC1&m|}%?fD|X?piX2H{j}n%r7$ryVe>2M)`2!K&JLr-(gZwT2Z(_Mc^1|e;EYF1;=WhhV zr}dX~S*Q}?qJdjnVfNW4kQbdm?qxYgBg}u}3FJ*DkT!gh3D z&}Hn>*=f$P*a`XOFJ*Ls@%vJzuZthw=6#-@vGp72kIOA=-)3sd^YGWmdKUZ^mzp0; zQhI2QiA}6W_ZeNrhjj7d{oBd!9r$ZueZKE{4WH88d=h$}K~GK3@%#-%Je$}b*Y{q- zrBk@o^c+u*(p`H3f9Z%Dolmid_2@pO%edumX#LXd`%d|^6S_s;N;R(ky~dZ$<*>2d z@!~ra@kn7kzMp&bHw}7;tarTnQ3^dX>+$Ux=1-&_od6^2(S1&r@h{(nreAjsh)6&D zTMnH>`k`lJJ&W*;|8({Aw`eEuO)z;ga00d*X=M6Zrq=^ecauFpyt5ChW?TV88&tZBD<4_>j(>evj!k#z%pq-yr3qGJtmIj{_C}M*vaw zqhc8kpgpH_(EbB9;8Q?~_hUc`?~jarU^e(GfuwgH5XCSogZar!#{hF6e;v<}JmB-d z8NmC2l-}DIuVHjc9JPQkopA&(A9kkzX9K%Y5i@|_0x2D@0nsT;ega7Gxeb^Iyaq_= zS;zEcKuS+BkkWGr;|0v0#dJ2~6y_&0P3xS=ZWQx}Fg<|r=>dw81^*iuF9l8my@Zhl zp~*gh<#Ejap}*Wm@nhgP9LM%HknCOrlK$h&za2>a*R%X`;9Ss)fn#BJ0rT^KWH*WV zgMeiB4Q@EReI|DRiQWdJaA8t?q zGa5*Kh6C|BlziAI?cN2F{)0@fVw?>;6a0xlD%S)c+K}YaftV_gY-WB0kjn2coRj~5 zGVTWwpY~ZI{_Bh{01LpU?*@deK+@aB@;@=&&wM(20{@2H%6L8Vad5HVuVJhKl0OHK z>Rl$#2AqSNiSlPCkkSzcB)v!=)x-UG{*(S*Ao2eS#8!^U_~tM83xT9J7nlf~3Z(d2 zfe2#Q*^FbDKZ0p9V=VK3jFS3?7(WM+pAVUSoAFmbithr(bAeQTv_4yuBap)VCQ|CX z2_!!4e?j$b8*m)z-5;2LH<0vw%&!2F|9LFW0g~MWAl26~%pVFQyJHcO|1Oa1b^@us zG%`$|m)qReQ2NwJ@l1Bhmo_LCe0P>9|HL^v^C#(KtD z#&TdP^ooFKz(qiWDfYF(vrg=5H4~T(K7~u+lLjF(ZnU(y`Ni+7WZ%SmFJlp7Hlu}6VeCYF z@iS!qBJ$J9{3b>(Bjp=~NBJh=%Y4c&;ukVMoB5Pa#7|+qh57N!H!~j~;z9il_$^p% zL?mFSzK>qOwEF&eKGW*^W-`<2`=ya-^?mSErq%bSt8l*#LWNQ1Yt6uYFbEZ94|lNr ztgpVWoPoFuf{i-gj`~tWck+C%d&wW}Sub~(PK7_(S44deib5t6t-kkkGp)X7y~4Em zUiTn;negXke`vFWz4~56qweHSeGj`LR_ZTe{Sv0jnSPx8H=(l9HIn65Dh#d%h=vb!zT%TiZ)N?n$R7IYI7BU;f1OlON02IGqqKI)7*Kau+Gq+i7HBGn($H#4n{1DwmWm*uz1{8Q9% zfCH32{k%#u=htis4|EgLFOj^zS5fB+T1gK2dzRDl&eX3}QRh4Qk$&2T#?0Z-zJ!QE z@VW-Sw6qKPr=|a_(?1RI)yf~!(cL=xF;Ld(->(Y~&*l*M8#;d;oqUVV|5%-z!qSF! z3Gzcrr|4*U&S>Q{tfZyub?Glb*=yyCb@3UYqc79Zm{=LUNlDlqBw}&tOzb!^vve|+ z+PYWs))QFwmcF2(sw}O#W>pU>bcNh;wkw(M#=a?a8pE_)oSJ@_i-!?2T&rE~vMP=I z1Y3VBaOJ|EHI??G$gQiuN$17dok3WfRz`<+hs&*+;mgnsL1=lOT-RA%M{}YpN_*mz zA-#rd(1Gz!+H^zR?E~hlg%$F_&06&Pn4}fDL-y%V9jn`XkQa8WVd<87YPavurbo+H z7i7DH>r&~##rz8f>O zi?JOCfVbBWqs5_1ll$CIL*4)3zqOr(CTn_Ga$C{+8ZT|$_iDu(1%>P~fjQK@Z!V$V zGD2j#uH=ui-oB@dQ2)fT?~sMWa@BX}J|8`cd$mi_f1ZWy)~uCfb<1j8wAQ5>i={93 zl+~>cuDwpR_DJ2O&bl&)U2a!U-pkT=q|Z9J$BK4F(&%d>n4VtKv#Q-XrN^eqjm=Wr za#cE2PHimeidQ+ca^0%+e|>#B1?Wgk!vg5#Si?~%H`5SXjL>!l!IV3!)>8R>1$$lL z0}HK4UMTJ)O%;`Fxq>;2E!QvW*}?_3Lr}}abvZ3f2?ndHXJRoqmiJm`R@9f3=81ht zdUS&~sU{_~Qe55WMQt-e9}&IWA*v!bR=qA^?=5EPP6|PLerm141( z7a8;OEf7!b$>QauJz1ttEzC7ge*QoU#hqD zXN~AnDHi@jBUwtCS!WN^==RckKE3;k>txrTwU3he!N=`9HWGtB>_vYP!(93|`u7;m@5xS${ZEQkCAn>1w8q zGOkPvexXaM@avP{(SLXr9(R3LJo}?@9lG|gKS_nB{Y2}rGA+__A4LY&{&8}iferD? zm#mQg!~KP>Pcp-vu5^wct+PAcMgFRevwq5!Agx=u5Dt%*@vFt46^(V^;+RX~MC+%F ziBhi>?;muvOpyLkFqlSB?thZ&r!t}60R8e@oQsJu3D^bKPthwg{Y}Il#@uLJ>nC3{ zABW~Q(fs&BG(|qJPA)g11u2+76_2?|Zp^=X&*3}f@O`zP0+_KoDh)G-_Gu=Dhs^H@ z&ToUyA8hTj#H&3})ODWc=kQN*_}3W=vVL^Ca(u5@TdmJ@nK6G3>v9Gp(1IeP-S>{~ z*^W;SwHZv?p0$}UEp6j7?g2Tb?U=~)iHHYuFH-D*rG`UK8{EU~SWRR1Uu5h$MLXZm zw)aykZBZ?34Le3)d5`CIhp$t{eo4+!InfD|#&ZruB^cascK_N0vj{+)G;ZqOd-^aV zjOXv!eLv=zwq@iT+HLTh=kOi0?cHz7+E+IX6aLM1Up^uhi+TS@Qvv?+70ksKnF17< z!qe~%e2?6P2^NR#bL|w)jM77R7^X}@31%g z-2ic`!(Y{6^DW(jeA}Kv&Uq?Y(4VK--rb(l@db+DHB4h`MePuNYw|e7Wd$M z>*om1v>kaUtD~)Zhdt|E&)?u;XoAhR*S7ZnDyHd{9ilp`HF#Y?ATPlXtWS2oJHg!X zscG9whjw7m-*x+rJCe5(Hl5#JhCwLCE2r%EfcF{Y?1Z*t%pRO%atZUFH%#T&)t6ue)mm=do3sXc*zHjlHXU6)Kjjg6l9}&a%wcUr(6Hh6d zKLu%Nk!k5b6SJ>G*kIPNzhIvYwG7J@(K5G3CD2p~n|~O@n4TP6P9}jXy*ZE5@S61* z&Z#skYul_Yz`?Z9B~W{U9)2nh*fY6w@^rn}?mvTy>q7NbhdPQVn2UkQ{q+_({*`Dj zyJh%@koZAW{;Hi`gd3dIim9yEp{Im6-2@1k-i|DxOqZr=$g~!2102Zt!gJYX6676!q#?L*Mb-AB99nM7bWK(E+dNk4qg`4%&k&f^vAqK`M5e{n4bAqxXbH@^d;9N+jy7G}2$P2I&87|4lC5cbyJ2_3 zF_85j+dhagyyoydopWfX!4qZkU(}JkDLoF&pf))}z~5ub+H1OcAzV@enT<5PNnHS9 z=74E$$9OYR>c_LrH!~jCin_hW?wgCp)=ZrkmS*9>n&TZR1Psk#hp4mkRUIA`J~c7(7c4#G)!# z-@@c^(*^^69>~UjB)-lVxS*qj`mNsYnY}B?acb%tS=p>Ec(m_n6Z?SpB)q9b@el<&$*Ow5`?vpI&&fs-C<@POVFT z6Ymk&3)A8Ff1TTGeW|CmN&A;=4XqK5EG(8NLIEQaJbCu^nWDP^G$IM;Zi!MyqR?4d zLHA9=4h5XCaWhAhwVb|d}x-{~2S`w0{5xf9mC zyCCZu&y!s_;A}q=&PC00VEIhj{wS<8co=VSxc|_^NrRk*PfTdBZv&g|%UG4)^_Xc} ze)Cp?+m7h8IQ*Wi=uoQ^wD-W`k#V z*C_E=!_WR*r|?g48?}l&(A*-E)T|c$ANBnuhwhg`oA0P2kZ?*L?;NuHpF`+&pXe8& z7P!Xb`3|;rMr?{iml)d!eB?<(l0EoRz44IeyaU%mxgb!P5Ykz;`Eo&1PkDmfx69!x zp-fXBWI=29d|P0R!TJoIkKbZO0pCAp2GdQxgAJXg8R)1fha%BXA9kZf%QbHrYO}R{ z5k>r%5dH#e2hrVT&w9br7JTapzPAK(X0#V^?OCra@`GB9-rv8_n3y)a1_QhARa$=( zn2CtwcUa%j-d^0^k5pO!&fv)U)RjELJI$hati+8VF7D({T_Z@@pm0Z9pXYnO3pMS1{4{OzUT!rv43cNI&S{Cmy4x9-)Zx#k!lgjIBIl3)<0aS8(KY+a#7;vAfncn zWKC|^5rJ1*hp!77bsb$}v>BK!-zVe_6Rh%ZpK0ke0a|w`zn_pExz7A2)rae%M*G^1 zwRw*iR;@!z&|wP<7%59$y-8;WhNApGb>+>-%p23~nPCqspyGE^@qgi(Fe5W+j3a`znVEoq7s<4 zqgj<@i}waiEqJ!;G&R4(`{ci?{Hec+m42>%g<1RyESDo$f zmE#3oz7hm%u;`CRY_`qU;Dv&%J=aKzjzCGgw*TJVV5B=9S9^mQzfca{_5iwAzDRq+ z?sA9k&tAwJzRS$P_hk;Ep%t$cx$$sZOXk3G#v;Z=gzdTY=&R#(#)IzK8Bft~nFRkp z5@T})xWOI(i_jX^;wSns0UlVO5e9lIjS-tM7Wy+ zhq)r#Yz?~+w0uLOs=7P)7Q)OPBkc{E9lSrqvnwRiO=x`V4PSWihL3lG8@(cpR1CAs z4(x8A>WbW(6@O^fBGK(!Q!X+k7`!Z1ZS)WmWB{5*THkkovaTmaJ^j!BXnbTj`rgyU zOFP~`YlJm5a^69iE%Rz+)r?i8GCPciX5pC`a2|97R@EZ6jMSC*pJYw2KmMNzzmKd4 zju)xzImHKw&ff0`OasbWAaDV0x1q6)z@xFEx&$sj&ACPXZfHZ*am1Q!fhDo1JeqsP z5gUIfFP5qgwh58dN3F`Xp6a94sN+>1P5T*)pDl3uPl}%-u(r?mon#sIk%z(lBI4#d z8d70m56#M!w@+b+aqsuXN!j<}N3GB3@j3hpQyl)eiwd&#y3lQ3xTwIlH_zAJ@JYOB z!~M7=8;%$}{TjMKZ3b06?z#eBwM>js>v2?}eTi?Qu5!P;- z;q}$$bzN%nufs-YQtm$B@V(b?B*Hz0JkHBG)N1q$a`;}iO<0#m>ZY!#P>%;`23bGJ zo^^C>5}Hc+?nmnGSX;xoc+6J>ftPU^otI1-Z$!K>tXmHtD3Sh0uc_5)!5>e=Kk6I!W>_RsFJrfQnLIp)@Qm4Eoxt1yIfkdN7%+F#pa*4$d=XS zipBF_5eAG~C?^ihDl(#bj{SpdSl zYh1&zZnp*Q&7PR-%sTA6Mg!6a8tu(IOZKL^Zr{PBJ8a$0+I$xambH~uEldXVaWQn_&<3;6q5cnRdh9(Qiqy8D6mYT#M|10=y~} zwAcdkQ3C(O0B(!TG~+9qf4I#zf6<{_6v5a-xwu#R*#a)ytGm1KcIPUz8?ecP3!R@e z$e{Vyd}^2b3v&buC_IWvn+6|r|_Pt-u3FMuJ(#%~Xs!i9aD5-3Re+_Ct zZlS|)m?T_(5D%_G2s(ypjJ#sY;B#RZAp9VSGA)L?JWpA8iU%u-kyXF99${b z8`pvdgad>P$)86kdkrth-aOQAHBsk(AFb?)YJ`hdqvOH< zJUX3iFEZX6p>!Gg-yWeHGRzjXaTllGXHfix45$eI7a4DgQ1%)6W1Y%}s?L&gLUhI` zOVRrG{}y{57>w_bb{uAf|6u5MPlU2DBEad`GR)9_`Ppwo7#a=xz>-`FrT1&nq;uS* z9(P5h3wVzFq0VkU*tehFSdHFLH9BPL3`;%N1SCl0t zS*D9!3oz#Y6E;5RGh*e6MMM@%QRK7}=Grup|%kmS!&z+8w4Oh(%75j>(8o$2eD!-BQ zSw)qvN3)*se+m6RjhEg|Ppiq}GjXh$+S66=DXy%ziq2TUyv(p8RBMw@n#CkVJRq_pXHoQr+QtuAjL^1ds&_N7gesz$FW3;IwMw%RKA*Z0%zfW>>Co+ zycV(+_29JoUa0fxQrLpl&uHcQMoGgCdSv2SqLY8d@{}kkzgs6)Hwx(xg9ljG4|&MG z6}$mKO02a1CBo5$KaJ&${iK}MS8C;jEN{gkLAv_M@bQ1>)gfNE@m*6Fzk0Seo1}gl zK*%2KeZ${LDjzdxbuT^d?u=E3NNC zZlMpUxUR)tZ}!bBzqt>2A$99OuEi3<hv0Z3e6|L^-KKq z7QaT8Pl5m5@{fzR&;3XCy)GXdbbpIW-LHZ7Jz@8-FLYd}80yWjTj-87n+L=isqaVS zl7PQX_CxIeUB+3w(S+(xw=W9WEy3TWeKLG%ALufU*4gRy;~=|R@OSVHX-Dk_UB;ul zvBz=3dmei6Z%I39Pv|nfuCwbUJX#CteOua5J0t9#(%H>zh`B!chNv6Sj?hK%r2R{_ zz9a3Z{h`ZvkIt@_@Z7NLcu(3f z4N%T{)SmXG_X_knSdZG(zVv>8p6yc^F14?H>Cu_sd?ttEY z)}!`2M33v)Ip_z?!M+Ojp&_0NybibuI1Pv|RMX$a^Mmkd;9Bti23!OD49^|1`#Z1z zSdQl)*v^09Qf(RUqEElK&387}y3xUQT}kNd6uH zlHTpW4Dic=Q-J3K$u1d4c4L5KcPfzVP63kL5%d!>z~2KTyL*7dzX?e8J|Nj&2_*ZK zK(em}lHMF3*(U?Z{xl%j^#hXKk3*&1At2d(0VKQUfMoYDknCuEJMpgplKna$+1CNn zA-@br_9Z~la{$TS0wj9{NOoUfUJTiN089t}Eg;#w3?#cJfn-PP;mMBH?N0-r*3*-m z*6ov@c|h`$3nV{NfTTBu@qJ9ZnF)Fqa5CiEfvZ8U1Csw$Kqu%tU>WccL$Kd|22^6jSGk&oa9)RcjE<%N9LpnE z{xsIHlRSxW*Fdq(A-N2Q+hSM&@CwLNfE2%n21x(+0LlMqU_P)0Nc!cB#X$6Bl1~SE zfk*pG`@O&d&^v*oPx}NB{V>yaGrfs19q5336W$LfU0xuCyM*yfU_EHsPlw|9EKuY- zkoaSPWOphs4;Tle_|jr03ZM2 z)y%JCei;yLW%5E`E-;_@=K-hV-ziKRfipn=6OkeQGeC-W8<5ibFw^$|OF(Y~UI45G zUI<(UL=%%d6NrDq((qp-_N$o)B>i!WrvXbrn}N%K`=g}%J>Uw^be5S7*aj>HJ_1Bj zmV6(O{M`;*4w{bpA$mQK;#Ui_0B19w_K~3YpTY83P^NM|lQ9BF<@&b>srML={9sH` z)SFFA&jH%OKO1-zFcL`RJH{aGMgqz1Q$^~v04balpcjZ{N5Qi`8MlXmDvw&ODC>aq zzB>`P2WSPh0;_>En-jK!nt@fot-uk$CLqSX25kl=11Wx$Krb*ASPvxoTHsh|TkolQF59k!&N?;<8;$a5X0FA&}pu+t9$p4E#cLEmz_W?=26*vV*7BOZsS{N0^P8bV&#ugw% zV&5VPw~6_incoN`zL)v+%&%pB5%U)@zmWOa%+F+g3iB<@R~Qc?Unu;8KnkZ52vN*F z=65i^mH92qZ)ScI^EWfUk@;Tc*E7GC`9;iM#QZ|$XEQ&O`6bS}8 zkyfJBah8@iX;1ZxuE)$Q$8(7;+V_$4)qSj{qVcBisQl@=LX98%(&c1YQi^gb)9Sco zEgl5qPaUVBV{V96$E7Bs(Ir|PC!+lriKd4tUDS>ct&T%wA>W8r$G!fJcoVITlYL>7 zv^uVLHOtj;z~2prJf>Bwb0+_}cuA}4fL%n#ApI7pPyJ=0)pg4k zi13gf99|OZXRvI# zdV`KWqO-T_%Ig#z-KdMtQM5PO_|m6+E&aYuj_8NT*P%Vp z>OZJU-yd}0J*BHJejU9~M}MuO8+87Ep`+=2MH`>ly7JklD?i$2POHCMC;wh&|CP@F zH99#xR3^xC6=zjhRY~n? z+KxosPK>|(WmeR;+_}@1a?qYHUNM@i#|0Ots?B-C`G}A;_hUd_u6@vCNvEPrLr$!)DDY zI=}%lB;=+&yt`LegpQk*ELVBWs;c7Z)g^4s;Ro|6V?~)85&j=JPj{`Z4zA7aa< zlvEbGkhl=9Su(vSpx!?P=Lh#R<0PgB4UY2(I?U=M3;F+H?_1#Fs_y*n5CW5gWbhG# z^)*pcP*H|Q0?k7Z#@sPOf)bUs>OcrF)Px|+B-m;lOK7={)224I>8jgoUz>K@HM`aR zW9kD;4EU%L?P{#mptTxGx8kEoe1-q_ch2w3+_^IoAcd&&AZu2{G?{I#0y8Mur}AaC%HWa}&8}HK_3C_#b2OjUTcp@FIfCmLs@&Eh90iuDDvu(o=olQIkX5CWU}K-c ziz5>D5RhtzGu8xTBH|w2SmW5LwZ=HUlcYJeVPi>hT#>A$9NSn+oZ={BO_edGO^&2D zD~6VaItnaR>m5Z_hdtJ~lmaHQ)W6!dOrrE*=~G;@vZzG`6lbV|zBQT}7N!eH56NP>EL+@k=rV2w1(aK`?8smptj#SuAWQfB}y@ zx!Jh(+St0Lky#;?;*~A+%kqI2C~vF96@mZ|<1X6eTUVB`S&KI3A(w-*+S{<+Yj#&R ztTfl-SYx9hvGzUO*zIjC0ZMyeY~o{*55*E=F%manVt1>tVM?Vf1WLNRzGwQ)fTR1f~FT?F^ zf5QrdiHEP{JdA1PXl-*}whY@zv1v24tSfF%CK{90Avp^}9hckPs~V1+Reehfig`3x zm9_-hR$#LUv{#ugwBPKeRV^!5FKZO=yh02CqgC9pT~q_{6Ic2%iljv~#Xe8XY}}M} zN7FhAz`n^OK1>~>ShU4yd(nH8@;tm z@V*hi-dN`=7P)Zz(9qsqzqDzM>nH#a%f^e!$|fAW$d2dZ(n$!~IN5Q?nXEV&8zG%A zOD%6~^twmYR)v@huCqB#1tHb#vp&rshPLzX_K_ilxg%3mV9; z1{!Rl|NBk@Co$w!HO%NmoVAaju1Kbl1HFo|G`C0O*Q^VUA~b~y+> zz4?=)@l%^WwOBpeRZSrV6Jx9nDn4 zp_$KRUA-RVRAgDKYnezQbmF1DiJ4u$Y+20rFpvTf(M~mzA82j@;JvTK--=IVV2^%W zgZWz2f8-OIxZ0x#)?JA;lC>_z5$Di*bxY==o$!!Tgp75?(dbg5a+Vx5PBll3Q>4L; zWWb2hMd~S9yW`s?$m)(1?a0_f%60f`tbp>RaS-#f<6PpA=?mhWisPb<1-;%iCP4dw zINq*!m$Aa$yYitw4kjtieL-TJdsksmiBp)m$yF_@8ZHeq1{zIZ_la=sH{qSE=EOe? zt{Z4{M=qH;V3VHR9OeMO{KIQay820KxP-xpP-8nT#wp|T#p0kVcSRLHWd{wKp3%)~ z#HYU=QZNIPjNh%CAL55sui94ph^)rp<^xxK)#_%IhR;`7zNB2)G);A1Ha@HEE0)4flN`^K){nTINUh zOxeqvUF4^6g>QK)zOj}Oto65*Bb70~cIL-c!f#)po{47TAFuAIlj6e3WKqYsnxgGS zJWBWgXbC9dMeY_+66!xDb8sK4A)E+6M^bPAOHx`<6exkK*;^*6SfNAo2D_NG-Wv=? zAL;%i8MvzY!Xw?%WY=Kyk?w@DtL#f6T36IH7=5%;qrwp1=wny(F&KTcqmESA=wny( zF&KTciy}+D(Z{anV=($icb*mB=wny(F&KTc)1ZZ+{6-(UqK`rKIFb6UUfSpA+<0(g z4q&+5xrGDU=(cAY{my z+9Zt zs6wi`if0!T=az?ET z8xua9@ebhx?pu%rteWNJq_BA?mjF#e3vzanpjzN0?&R-321uwmd&vsOWSV{eLIsRl zKn)52qJ?&kLCP!A0U;zNs|b`(uc%%V5RFP-;PL9W{Iw6fyhb=5BB{!FR5!x4c!I(Y zo>5y;W` zu*j$o*c~OB<69$9yTr2pJLH>gbn28;Z)Y_KLZEEYB@`x?7+ia*^78x7q(I>Z>&RDv z+yht#A(yOR!Ag;y0BWuy2EUsk>|K^oMA)DG45!fOJU&;mPgNG5=C1M{V2ZPw6qF%Lr*#I8Yj_}>^h!xLT$9K#2x3cbc( zL_P?t{XNKh#n02x+fr5fp`-IzI1b){Z0~fhw{4?llDWMql3Qdxbf1}*z~+~sJ|77s zt3jj{;k}l4mx8w*5)+8m_-PLEq}s>PnF+tp1mx{oG@(=(e~mPBJ{BE5Fh86xlmuIck(w^0oou7@E!0HmQ~xJ14>;Qe%t+WvZ}AkwB&jBLrXL&)$%z zok;DyfZ7XnQuj9mWO-%Reaon)g&$l&q_>kgH`)tBw6i7pNS@^C>G%jJ=6x6#Q1b#D z>W^l$olp_3%+tC$DF`sL0Au~%f%Avv$7=`JiE1bAQbEAoBE0b{N(As$mfiqu0p}x$ zK(GpGDm|@Yx5WN@gn2tDrk#69#HNr^rdD!miJ$$ZVZI_!8_9ymlEDqD=Za2Oownlyh_g+YB0OMydgX zDg7KBKY`b+VQPpjJv9`ju@5xaa9Fg7@su9&07(pBxFIM_xWcX*&>UjuKuo)s1)@Zn z*BNP^FbEAj-xHeVk)Z(zraOTrU+&0FQ}FaapX-KFBgeWR()N@-?O6A1JRo3Qqy!xm z_7;HCc6&-k0;dd8wd>*ggj`}=S@!g|M^W8!_PK+$K-)gi9c+OcBV$j~=eYYFon6G` zmK}W{CbT)!WgT45mZl_sG33<4EoHjVQb!4)+NjRVA-aT{lalm@5oWy@h@7^69i$cY zH{oc>$GV7z@Krs8FyVV;_z2yu_>~To1IJrc2wDR95orge4jnI3ri_qkg_w*4CM#hK z_U0^cEjp$Qq28hQL&$tiUFlmfZ;T>%y;A#4oyT~}V?0kvR6c|l!EA}G6zVWE34(sN z7d_o;RBcrK_c-)lKd|Vc9d`(*$L?;5GBgc9f}5b}K~-|dy&nBzBh60eZK>Igho05L zS8pPnL=dUy#qU)a!ye-WnOSO_(hvNnP%k)DR7*}wb?^3P0mENZSFC$rDkkqb>IVb| zygjDkB``8E4xnUI)zL;00i)J9d|EaCZ$w@_#?wITrb_xKu9Et_hM1SJMyN$ciL0vh zYK#w^q~y-fF&G0Rvrt>8Bhe+f79Xxgaw2P#_wYm-o6t-^-GOT6b9z`vRM8F|14ybY z%7#wDm@GqJZRi+M)YGxk=`q%nN#+n#XcUo4JtT7(*C=m73xx4Xm2tq@B0?LI#5zQa zAREyf6jGLoL>jS;)$fP!mK7cwCGb1tD%LzYmQ5JZ0OP!62i3D_G{>}~8c?S8gdC&x zjAidH7%HPYLAMe-t=XN9^@l*pHkBd1Ur>B5uBmrKbT&lr9V7h%>uIbC^$#F!@3;-W zP(z1BU>}}L9aVsNKUhbO;rseQw$bK_6%9d6kk`1c8m?6#=&v9xC?V8_H(X4LF}xVl z@KWoejyWk%l7i}ky0+^8%-Okun3i_7fUM0D>o$dSjCI>g6+kQx!W6c$E2m?Q&41hw zG@?{ub=BDpM;n|1nM$`2dXTLDj_oa^k0ca)kOFD``Y397FLgFezaLv#C%vhL)Q6s* ziu&fW{mzzp*iw7Tj-&V2JIiKhnDj)27ytu(FbGyy84wXH0M^^N66?D``ce4}g{eTm zL_d{I8afuDwy@^+hJHnLAr{mZQpL;S2eEeU^uR9kopf%I33RIj(DlhB1gzFNS-sao z0(rytQ9xAhdXUKYcl@RT%h^DdR3wBsYZo#Zm7o}}Kpdq->-|*x-p);&isPY*RHJh< zY_4uprej05(YX<}eHC_F;LCcr0ur^8QbL}$5}DIU8T13~I83onW9ZXiVuweFtFR1w z2Qk5H4H*g)({3lYi0EhK1`J4gm4_a$7{uK|%ZncPWB9=fGr7r~D99kQ#OyGf68E??oIE4qZH{=wWbACWQi1p?TO>%X6!)JOR ztg(?0xs`1XFxEP~bDv{fr^rWImGL3QCbUqFROh3bsd%C*okne#AFryZzV+I`Dk!6u zW9#zf>zY@uZAK3u9a_i74l1e~5?w%#maS-%$RV6)y!j`xpIHh!I)6qz8Y;9Pj4_r> z!dMMo-YiQT`;cZ}=^2vk);SXR#?W`;r2}qKEhF)uO3;cs4c9hP2_PNldJ9R1!2*axdJmLJH5b;d4Fm0onEo_2%33LhyeLFz{_!r8p^lpG>!PTDWWoR?IK$qx##uE-*lrqD#XCI|ZmV7z<6YfcoZ zOy!~!O_PR|ChtGxa=8k6{-FL28l)WS)}q28k}D%Y_8`V{_ykbo02)64g1j;t(_fk0 zQ@S9N4=hX*ACiR@Qp|dE@PjE2#}rWf2f=V_L}lCxjm!YMAn>?wW*Xf?A(@Q=L}5}`I%|Tk0~yF z;wkI1V+YP$UI!*V#+E{D$BLRY%SMZ*^dnqRL$Ek9GW8p^(P3>1^2kZ;SZL7|uS7)2 zU+O;+j~k;^Wk{`@I!Lq11P1Sx{XyzC5ZO+M&yL9t>+})N1D@Nn=`TeO&G3fS+C90? zd3p|}>JRuyC(!$=#V)>Z4FzhcbTWI*@=PYXN!Xi2mUTlkUO5FyP_wFZNnyCZ`}IZAC*DdPDVgQqF{J z=^OfW?!FdM(x}@Wf%2aguaWCDuE!GW(o8y=T=z9(hV`M5vgKh9RN^AH2mCJ6_Mv=V zWj55ooku$B){|wUEilVt{LxdoC-B(Ne2y>oF*2*;uz=GoDGO_SP z@iM4*bZP-ieQd9YIAb+3i1~oWv)H}rICKv$Ku-o2aG0t%V1G6w_gPrbka7Uv^NZ|9 zGZP)(SJXh;Lejl4)F&WY)3Jhc(iy@DqDpc2e{tC;+u~v95Q5eRW4qevDLG})mrdn) zhj-&T?Zy`%#cmu{grT1TeG~^1=o`HwmqJ=$1WH{4=(Axx)e}Q=u@DI5SnkW zyFA^lfDd86_q@qZ{cA(Y@++B^Q8`{>&h};$QjdI9ddoa9V5~oME{cf zV!BS;dPM5C{m6^cQhFhiy8~m}(=#&B6JCHf89h*0FvrpPJ~F4@4>>?4y$V{`t8$^9 z;BCF<{fYX+m=VcL&`aN6dltUo51CM(0u?a!OAPNE{G`rV z6uxl|Z92YoJi4csG;_ULW$X|sRT%>w<7(_tZi3iGzR@Wm6ne)Z6!y7Z91NgfIJy?B z%>BWlANc?3kNUbrs3xmF5=BA@qmV*5vC!0u| zSUyT!XWKeeyCv;=SZRFUZhtmI`=OogMf`kH+7lVJS0+1N$p zz_0r=C|pkly>G;yFe7)KXv=Jz@S4rG;(TD|e$RGG)N|y{Gi@igP1rEO_O;0`P0;#n z6KE_Ke{S?GN_Jw@lUUnmqZb3~l%1$=fotS10G-^~98{`!ckjOv&1qp*=KZVlYE{ zbV}(KM4j?2Bqa1@WDu_8@%94keAFERc+k0%bVqnSM7t51l;64J`!j$0Pk+h z%foB+xp12gSUX$-i$GA!CDj*fYs{fbFTC3=Chr2{i1PMn{!otd(*1GDrZ}u zrDb(16^Fu&Ln+5Oe$wS}_Eq_OOF;IUkK>nC6=q|#E5Bs!%6~L!jX#>5_=!%)jLpwx zKPw*&F7Lo8i;1dR!uTGC?gP@9$1M3s_qXx5w5fTSM_f8`6~=T_S3X?^M@K{yH&izi zs*iK=ArzvPD0ZHU$!`{2iwv~6*U)!ch1tIROP~VbvW0YgyP#!deM94l)hmHw(pKd2 zwXE=Xn*dQl2L2|rlbQv%UVkw@{z4M))DmYNAM7?FQM$Iyi7vurcJ<}3DcbC%Q0t(w ziLd=uu8go8Pr+S^H;QR3xGPb?XOE%ak+PNed}|x)uk%UGHa;5kV``3Z<|Tg)uh_4D-o7Obq9_Z>-zCd$*>kW}+`UG-OoG2F<2A@zi zOoJ1TLHsAuCqV9Go=uC@XQ1x2)!{l4nHiW8&H6Z&U=AV^v`ac2g2b#3p@sc7;kqoD z4Dd1gZ)E>1bcqV)Pv8%Ko`t0w{cggmAu+-j^poSe_SO> zn7=aiFG0*i?H}ZfC-d(n#xUHC;?f@&#h<%JQhge=yT!g}Bq&nBkHUu^r#_AK%!kGq z8T&gH{R-6`>9?hYBN``gJyYn@DA^;^r}0O|ev(C>#=>|#6&n!FIUwWFxFlmA89lux zDIDvYpz%t^{^p_Morf@$$lJhPnI4T}VN^X?^i5FsB81t*`UGfPld%t3(y8c3{T9Y- zHvE2q@JgQnjdNiXf5z#j`nnC_ls*F*?_@^P&q4fCQAfk9KY-;xw4DVPnUC`j&d&J$ zgscxoTgr?GcfhG%&MF#mWx8Kh5R zV3ct8q9Aht5&m7!OF)}IuLL~-)C)R-hQQRD=Le;5bb*q><$_YU=O9-p+{2(0j&Ov@ z{~S>C-MkZ+9)x_ahJ7C>`qaEPLC*($1=I!l2hb|`_kzyAcL@Iq3W(WLz6%Obme&AE zeDA_Mhhm*_3n<1=-VLB4J$843Qhq)H6LNnNl)~T2l<;%W7ld95qIIxSx#ojX_>-8X zGW|6KH}N|g^divHK^KAAL3QNY26`dvA7XugW}p5FDCO$~(8Zunfl|45f|eot!=M$Q zTS2ic&HEK7mAeIWHt2Pr#E0}akezUjiC)0&PPU)K_K9rQ*gkly4F4J^@p+Q%KVZ6n z-OE66^*ztY?xf#=!tXBCsSlR z((^#|vjCLpZz?G9d2_PRo00bvD5d*tP^zD=FwFujfIX9`9hCCF7oC8@Z)3U+^mMpS z1EqeO3QGO&XBb=*?s`z-+XM=+nzxkgIwQXYOy9;lOMGtuCHE>&;^PMW zJZJ&i&jGyz_LJE@h3y~8^+ev&pp*{XYb8qhCgy?O$8-xQrT@>Ml+O1-iQm_mp1|&Z z#gX=TaDNzuyb_eOgHbszW_uRf4OA}W?

    H_jXXK?Dn9gK(od1ztfV^*m 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 z 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


    ;l*4Ip;a&pyun1TG##d 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 z

    `v=Cg9q?B_XX_VX0|zJ5=i^@)*z!}pud z%EHXV$iU%j$8*&jufI87zrHXtao!y7Z*#oA`oQ7d=Cg9q9IwAQUcWvwF>==I&);hH z=Lh}pede>WaKG7)+iUjYvOX~~aPz&>^N*YT`9rh)>BN!#P`}n!7G@^So8$dy_IXhs zILxh|m5b(hf13TcqR&i>3>?14JXRKFCPoGh_i{Wd7tL`!&2c^Y%*4pR;k(UaW#N8v ze0`dIZq_G81`cPL$I8OY#K^$myByET!py|TS+lQmtJ&8X^us;PV`X7xVr1a(osMT^ zVP;}v;IQp@Ru*RNHv9T_ntlCA9~n4&hk2|l%uI|79KPN0tSsDbj<0ufe7*IFk%60U zo1TB%?9U&X?N2AxtSrpjZI0L59Isa&891Cd%{yxL=N~rv^Vj;y!py|Tz~LU&$I8OY z#K^$mTOH5J!py{Zv#)!*+1DNQfy1|$$I8OY#K^$m49BywFf%bSaQJ4&bJgtYT{ioA ztG+NZF>==I$89zHaX~+PlliPH%uI|79KO-rOr}G^*`}u}u`_qXd{h@xXuPn?=j0_y^Zhc%e z$Je{r&sX&e{eiydGZP~NH_`f=gPt z&GCAg~q)p%EHXV$iU$)<~7H8&2gT7rC;i+ zzA!T}GI026*UQSn%*1(fe7&1}9Z?@R%*~r^; zeQwq#Mg|UF>3%lH``H}tr@pc~q)p%EHXVd9xq4-R#Fjec;HOG1S zef^$3>k}gbhf~dGWnt!Sv!8FL+0U2sk%7Y(o5#w+%*1(fyr0eSe(D2<6Xvn9Ff%c7 z*6ee)ntg8254SUqm4%s!k%602rn$$>K6hxgKb=^!vM@6-GI02!>G-2&U+-bF&t2;) z3o{ev&GG&<$NQ%b98R`ARu=9z`|*3tetgy^Mg|Tina9e)%*1(fTwilspFVJCcdtEi zV$I6J%*1(foYx%Z>1X;aeb5hI=znVSSy`Bw7#X&j*lG6Tl76n=)<=Ed@IU6WvM@6-GI02B z$Fs69Gchu7_%FwE)$G@?Z1(G@`ohe_$iQJ^9xE5kKKG#6=N5ftVr1a(IrCUqxZmt^ z_nLif)+a^=4xcrTm4%s!k%7bib37{xGk2Tg`=L3$AM|tmwm#|uhg-~NWnpIGyxGsQ z-R$Ry`k8)9AN0d#%x7icesjE^&GCNf6C(pR|2aMXxY?gSH2de}NPnnb>njU06C(qM zPg^fn&Az^6v!Ac(3o{cVXU%@xRy~~ z%EHXV$iU6NO>>W%eeTd4_g_{PW+p}k4xgNkKWdJzM{|5V^p%B~iSuSZZoAo!i~7Lf z6V}I7vp;{??9Z?Ih5kTa^qGl~fx}Jav$8NVF>=-%U!P`QN6-)dY91>K_nZB=y=Ffy z>k}gbhmV`b%EHXV$iU%aj%Q_IX5zd#z8=l-_0Z4sTl%2i+&De|xY?gSG{^l(f2d#U zD+@CdBWKO={x-+^tKWRo`I_VTn&bPIm4%s!k%7a%IG&Y-nTe5s!$%y?RrBQj{%rR3 zRefP*Vr1Yjn8#IfoYx%Z=?gOxBLjyIo5xjioYx%Z=?gOxBLjyIna9dSv(G(f_PIr$ znHU+k`RD1l<7Pi@Xr9#OtXWyO-|XkvYxd`7ePU$baD#cQEX+)tH~akUW}hGRfx|zU z$I8OY#K>8*&)sVFxj{dC&^%TaW+u*?nc^hrP0 zZ|kFerr**B{pM(zf86Zzhh~30kMxK7wSJ{v>Z^XCKhPI_W@2RE<^#^(9M9hz-%qS8 z+;5KeqdDFW{jPpTpY)M|!~4x=Wnt!Sv!7?D+0T>ok%7be%wy%E*^fVH_T!5_Gchu7 zbG`e~9PdYSydSJA%uI|79R6WC{;1j4bJ*;2*ZRuB%*4pR;l1WH$9c_hp1!g$Gchu7 z^Y^Z|IbLsbyk1ro?l=2+_nQ6rS--2_(I@>}zpan@z~RvOSXr2v7&&Y9b!;{JI)Z-q zJM&msxZfPt-yGMkPmBy4{?{l^I2J#x!dgL z+iCXmC4FSz@Hggh)$GSDoBg<|FU(AwH~aIqoBjDwA2?iRJ}Vc^@qRSN`=QTFjGQ(5 z^S7G)`9VLt!+cg2?l=2!d(D1a)+a^=Zr(mU|G3$oKQzbppZ-w4)>js0CPoGhe{Ei~ zuj{bc&$HIA^h{N^I2J#nHU*3yw&ksHBau>-yE-BUznLVZ}#VJH~aIWK5$r@&&tBg z#K>8*&)sVFxj{d?#XMFPW+p}kZr(i2J#O~7L-V9|o+JICeyy)8%uJj&$Lnv7*RKy8 z-ekS3Tr~S}2hDz5(Pt(`1`gMl$I8OY#K^$mjgDt!VP;}v;P3{=v$8OAx7n|6r`fMB z=_3P&*PF-6!py|Tz|G3**&JWb=J(d-xpXT^_v$Al%Ievbc{rOqHtKZQlePrP9QuDcL_Ib-@pI7yTnThje zfBtr}KR@aNhnJYo%EHXV$XRpzJT?2=px<0M^~cTL56$uZu(B|7x7p|IH2ZN$9~n5j z*gRGiW+p}k4li;%SIzN$Hv4(2zA!T}GH`gId8{nVOpFX1UN9Yh)a>gxZ1#1m^(*~S zU-gBViIIWB^R17o=6Jo$@p|YS*)7WnpGwWZ>}J>G-2&zmCIZpS#vq7G@?!1`bzP4_D1TciHT7tG+NZ zF*0y?j(Mys%uI|79G>m^n&b5~$LrIt^ha=o8$F2$LrTu7G@^SoBg=$W=pyZRk{(nkgkPcfgBg_((w zfy0xh(v}zFMVZU=5Dh;f2Y}>pY(J6wm#|uhs&&&m4%s!k+Wt$-&V7qFX)Fq zHjkBsnTe5sn?IW79yj~kp*eoOSXr2v7#XZM|E~etggmzi)l4EX+)doHfUJ&2gT7DCV)UFf(!9>~pr8 zeNNN|4!>s}SIz$XWwSrO>KFP0ebMjh_w-r6tKZQl{anATkNTN@OCR*ZnjU0cbonBJI((5q@U}z^-&)=M;TrVr1ZO zp?Rz<+;8@|d(A#K>v#1#`lOEx9Ddz=Ru*O^Mg|VQHXVP|?CUse_I0fFEB#Vm^@W*< zk+Wu>x7Ft$tOX5zfr=WI9ooT#7axAZ|jTwp#c3o{cV12+$w&Uf7G=Np>i z`6iMdFU(Ag3>?mPy{ud` z`}q!<{d`5AnHU*3{IYqhEZlGQxqHn%H|rB41BZv2$I8OY#K^$mmmJT^!py|Tz#&h^ zA2m;I>ppCb_g`OGn7P~R&);eG=O_JKzpan@z~Ld*%gVz2W}my)9Pgh#F>==I&)aJD z=LP-ni{`VkaKAauZ;tcziIIVuUznbM-0aUEnkTjMu31@_nHU*3oacTw`#KJreePPn z(l7N@UznK~894mB^|5l%?B_dZ_VX2eW@2RE@L=;;S-9UE?`LzopZdhez~Sf2V`X9H zZnMwbY4*8E9~n68n#an*%-!ZVuQ|@s&-L5-s1F=|)_hhLW+p}k4nN~~Ru*O^Mg|T) z?RZueW+q0?n*DmWn*Dl%et3|1tSrn-j11g7aGHDE>~n|a_<3MuVdidgy#LMd{_E%Z zZGF@S4nJi+SIs_W+3a(wexX0m7ky@8WZ>|V=CiUebGJFJzd5d79~n68n8(V(%*1)K z&)shJxltcD{DgU|Tr~S}2hDz5(eLZ`^jV)68MyiJY0h!8&l#HI>&eQ(%*4pR;Q`a} zN6o&z!)Bkm*01zSebpCcCPoGh_qRS)7G@?!1`a>wcvco>?l#BQyV=*D^pSzXkDA9- zvmdu?_T#F)Ff%bSaQG4PSXr2v7&&Y9^KLc!d4qm)?$jSQdp|VC*O!%rnTe5soBNs9 z9OpIryd(Xgeyy)8%uI|79R82>v9d5TF>=-%ufI87zkax{d8{nVOpFX1&T%{|3-_D- zynD@l-mKr%@92|0GI01|^I2J#x!dgL*=hFkB>h~!t&jS^;XdZGvM@6-GI01I$Fs6< zzj<=M{^of7`ozeI?OpFX1 ze!%r})$He4Hv4(1exX0m7ky@8WZ>}q=CiVJzuC{X*BtM!J~1+IINLl{7G~}?``n#o zpPTfNfy2GcV`X7x;=I}CZa4efs1F>z&pcKZW+q0?ntkq8v(F9s;d{+vWnpGwWZ*D& zJSz(`6C-EMaXrm(J^JB$%wuI?W@6;5InHa2^Yoj0P5p7R_e1lfb|2QPEX+)d3>?0D zI{v8H&v)4DbJzOH!py|Tz~L_+2~oSnGI01#>t|(QW@6;5+2?OH`~09Ew#{Q@ zVP;}v;P4%eXJuh#Vr1a(?T+WFIljKlzRs#&=nwQopP3jLIDDJ=tXwq5*Sp!zQ}p}# zJ$=?EMg|UNn$OC@{boPUUbCMk>v#1#`lOEx9PVL0D+@Cd=goe;?Pfn;)CUgVY91>K z_nYH-o8x-*yZRk{($DqV`lz4jxAZ|je9LtHqh>$PVY8oStzYSv`l?^(5A;R9uiw*W z{jPpTpY(J6wm#}-`YnCXZ_b$3dED&l9Gc_jTYsou>sR`vzUmA2J-+Ahtl!n|=#ze~ z-_}R{OuwZM`pq|6Z*yF4b6l_fP`}o%^h9c-UzoSq3xqe$8^)vmJ zKIk{!Wc|%?{mpUx`a}I%ztS)DRlm?5=!-sc*W)`LPx`rjTOai^{gyuHhi{zLw`OJG zeslahHT(5s{jPpTpY(J6wm#}-`YnCXZ%%i=n&bUyj`vG{s9)<>`lY_=7y1Kz(eLZ` z^jW{F-_a-iT)(Z4`k8)9AM~4Vu>R(_{^q!T{h@xXU+I_ns$b|2^hLj~-_vLPu6{?K z^mF~TKI&)sEq%~$zTWzqZ^XCKhPKbzJ5=i^}G5VebPtHJig`e zpx@lxdYj{Vo8x-*hx)aCrC;i+exX0m7yZ6|PoMR>`W=1J&-L5-s1F>X^)*lK-xtlk z?zMiUU+SxVp+C?U{l0!rpY^-?9evWz_1pTWpXs;sLBIJr_qRFT-{whe-ADRE{aU}$ zFZETw&>!fFJ~MIN?Du86+0PgCGyRr6=r><$ea&%w&2fGDL;YI6(l7N@ztA7(i+*3f zr_cIb{f<8A=lX4Z)X(%=`k)`~X1&ev{m>lW5BimUsjvFN%*4pR;jYvCHCN4ko@KM2 zr|K8_1AWo&>-Y3ozpLNTC;eQ%t&jS^&DVInn&a!$9A7W}p?6iMdU+53?MZd4# z(`Wszen+45bN#kH>Sy{beb8_2V*Sn5-EnA+>(?LZ*ZP%ysjvEl{y<;!nY$j}@p#hD z_1pTWpXs;sLBIKG>urwfZI0{JAL`fom42zO`i1^LU-bL>J$=^i>UZ=>Ki6;Tqkg8} z(g*!!X8p}^{mpUx`a}I%ztS)DRlm?5=!F4@webmqNTl%2ie3kV# z$MrYI_3IDyYyC>U)K~pNf1oe=%w3P~cs%Ln`fYvG2X4O7`kLeVn&bNPhx)aCrC;i+ zexX0m7yZ6|PoMR>`W=1J&-L5-sGsS#^g+M*3hQr<>u-+h*B|QF`jvjEulj}lKwtFx z`aONt@9KB-Nk7+b>!Ut!b7$*qj_YlX>(w9X*ZP%ysjvEl{y<;!`}#e7*6-?f^hrP0 zZ|kFerr**B{pQQ9zd5eIIj&!Ss9)<>`lY_=7y1Kz(eLZ`^jW{F-_a-iT)(Z4`k8)9 zAM~3$S$}g}e{)>F{!qWxuk=fO)i3l1`l8?0@9DFCSHGiA`ni5vAN4c+mOkh=|DW|Y z$MrYI_3IDyYyC>U)K~pNf1oe=ef^$3>v#1#`lO%hxAjp!({Jg6ezRr$&2jzBasB#3 z{aU}$FZETw&>!fFJ~J^gaPwu(-yF~19M7*m)UWj`{Ze1`3;lt<==b$|`mEp8@92|$ zuHV*2ec*7%X?<%}7G~}?`|rA)X1}hapX;~vQ9sjf>4ScA2luBr-k;`pfAoj?wZ3xU z@dJ++{l0!rpY^-?9evWz_1pTWpXs;sLBBc8dYj{Vo8x-*hx)aCrC;i+zHr~;dmhjF zUHy(e>F4@webmqNTl%2i+}?Vd<9eIpdi96;wSJ{v>Z^XCKhPKbzJ5=i^}G5VebUeM z+xn;v+$mk$KhtmNgMRZR z*54f0-yGMkKh&@FEB#Vm^$Y!hzUcS$d-|;3)$iz&ey-ovNBvB{r4RbyRO@Yye?M&Y z>saeo`lY_=7y1Kz(eLZ`^jW{F-_a-iT)(Z4`k8)9AM~3qcE6kB{ceu;TYsou>sR`v zzUmkH1AWo&>-Y3opE&pUw#TD>rr**B{pN)AHplfg$MxzD^=th~ztmU#LVuty`hESL zKI?b&JNl%LoOyi9<3YcJRm6{Yt;oSN%eNpfCD;{hmJSclA5^q@U}z z^-&+VImLRL<9eIpdi96;wSJ{v>Z^XCKhPKbzJ5=i^}G5VebUeM+xn=V>9_Pjzxg8T zZ;tD4j_cPS>eu>}eyOkeh5kTa^!xffeb(>lcl1d=*Kg~iex~2j2mPjP8hzh5ZvSUo ze{)>F{!qWxuk=fO)i3l1`l8?0@9DFCSHGiA`ni5vAN4c+mOkh=ZL#f-Cytxr`kQ_I zYp$C8@ny3=UiAz8fxhVX^?UlP-_`HvlYXw>)<^wJzoifQO z*01zSebq1Y2l}Gl*YD}GepkPvPx`rjTOai^{g%Gd*V+HN)YkogyS?sq;g0P>E_q`A zLJHx3UN+?e`5RvB@jsa!zva)Te7U@S)|9W3zx`=bzE)0uJmnkYJ6tm5o8_Oqc*?iR zAGv7CryWe^OK+O;UFFxjddg?smam%f+44WVaLNyo@7*@QetqZ5Pj4Gx&lkx*@rP5s zME=b0Px*5B4UeAk3*_IrX3E#dUwGA&ufHw-<&-)am-3^~@=s zF8}ABO!+MNs!OMQj{HAm%IC@Vu)d4rzkTEM_$BfqtnYI9e%AK_`LCZpJ^vc{PS*Es z`LoZM9=}2UKI^+#e%F(x$8VMIVtuDQZMwc6dDQgyUFA2va>{4Qk9p~o&yj!3dLAS% zu9zM_U;Y;Bxk!HaQ>Moc(rJTjjH!K0SWg<dh(R-DnIy%Q$9;xKXS_F$d7ydly~KOEvI~e{9V?wFMo&i zTq1xV%mS1?~l+Tdw z_`E64<+ne3%IC^^e>&w|`8TcS0{LR=*_SVR?DYIg<$GJt_A{pSeB6GO{rL~2kckjnbY|n{yWpWnfx8rbEbR;>q+u=ThESs z!g|h^-)sNemy`8eCjXT6RQcwKXo;6+HoqQie`S*PvY|HodeURk0+AnwI$Jx&>kY8)R zyjXsM{rocdL-xxn>{B_oI$`#Y~e%k(eXZZ)M=XCj7tmiEG zrS{izW{q;imUG~>Yv*~(&&i*=+KmF9{ zexD)#;~!0VF2BhBdVl$=t@nI+^QP(f7sX`BC=Yv*lOY-|jEJ$NqMn`~%K^p?pW@zeN6d=f7P3 zfc^Ca^4B>3)$&{IU)RdF`h9r4e75u7C`bG2E%JZZ&rW&XbiF@sKfAO1FZQd`dm9PQKjv2YF#XJ(j=9ei~jd9e<Po^GEp}_RnqkE3D^S`5E@B^W;CV zf9}a|w|^D+FYI3j^1bYzRlbMytmFsUKd+Oov40)O&$WNuB!8FvbR*x*`c8e}biH@B zzM1^>*0(KRZ~r=1ezW~`SAMSj^#b`h_SYhRyY(&PFSEWY<=5L^SMpQruh+>>u)hxS zQ|(vB^0xJz`l9K2o^L;j@_p@(+wyhxpL694?1#JZvHfOGzR`YoiTt1Tn}z&o`^{4R z8T;dP@)!Jmyg`1g{qb1-AN$WKFP_%_Jp0c~e!Ttg4EgTXH)|e+7BkWJ7 zyxe-co;&h4dwurgdwcyZkzeNXu#nI5dAvcs%={h zk6zD1`M~$lsjr^qJ=*ulx$+m;-!GP5=6Wxa@8tEpLcYZ7b&dS3K7YsZM_u13S5N2r zC7;Kc{NJu;NB%DRRh9qevg!WaAivZ1`OWelc>GrRzkGjhzh*k$$zJaw|GLN5^26MZ z(_TA0|3kjN&X6DJ^*>vFpwIK3{NtW~wS1-Tm+Ry&zU})_zRLUmX8FkP(Oczj^nGyW z*G=pB63;(Zev0=`mY?nOajASi@1M2&RPUeJYMS>WJ}+m;U;N1F{?6s+c>kO$Ki2)* zlkemH75Rbg-?j3u_dJT@`t_u&X>1bZ+Ode{PTR@Y{_@_dn3v}?E7h3 zzP-%<_ivU@@%-?%>HHt|`}@xFGkt!}kRRmx>}>fT zyq*`xkF}p)C4YI)|WS@^6`R{JKUO9OFp8ONOZ>oGRzn7Ns zTYdkm<%@k@Z;_wBKfT_wYp3(S&3<`?d?%03<==bU^!)SXSNnaqkYD-O>G7N7C;R*D zt@2Ckk6V8|o$uqm50ZRu`_IMlT|9oR{0Z-`>*eb6ccc6mpSRQAKFxp1ZR?kR-RJ8f z`Gr1Tm&*U*^L2&%N3QQG`76C1*T~=M`G@l5uJ1^N{DRxQPv0@E?;$>q_m`jI z^R_R)!{;qrH$DG{yr1tc-`D%|dii?y=N5VH^LgjLnT}uBzt5F_*5`8}Ki&IzCEweA z_HOwfd>;<-f%|v*JE!^C{W?efl>Pf+`DOO+rM&O`aie^y{eS;m)4c!oeYlXXas4a# z2X6a3%b)an;_P=%$A6R0$DaIApWjR6x42(d%a3<|PJPdG{8xJZ`SOq3{}1H*J#%`$ zUn@V-`*9M?palfJKH~QJe-bylKo>NKh^tj_V?4{ z3-|Z_@*V7-SIAGdUtTAlcgb}A8|5!{zr%Z{d2ew2XUg|=f0O)K`^kgkh5hDy`N8hz zMe<4JT_XRW{ql189sWM@ZaLX+?)neYdhYA}w=LiOw)dNSh5hG1{(|dU$&dQu>3RqG z-|d&DUhn?7z9@f<&)0))%O1Z{zN63Ap?tINx6|G?&HD?l-x=~Rdi-qpo4h}E zyh{F<{c0`$g4h3g`TuzSP4X|_w%^Kka6is{|FoWax*ylb_w#%4R{4{zH+^7w{@dN3 zi{-EM`{+vfcHYl7$Y*&!AItyy#OZ#Yax~4mue>ea#r2&pf05VwYWZRQJ~PPg^7@5; zoaQ~l`!&hGV*k8Qex>zaCO_WmcZK{u@6W5`XW9?0m+$8B_`&IXFYe} z=kFJL@`GMKUH>)mhrK@GpQd>a@%o%0|4f~pf37_D`~C{~ZeFjeoGu8}YFeR(LK zd(AZOMtRTkPrqS0|68t@9zRF^i0{ku-uhz&+z)4@z2xw zzVMoMzV`Q*_gM> z*ScTl%O^a4A%B_Y-z>k=@4s8+A9g=a`|vdHP9DFj{5SUdGv)hw|C}wq+4t%F<=cC| zTp+Lfo_m4(wf65L`C|8L&;59{_1<-u*7J97n(oJ$^79r`F7j!9KU^vAKX-ckNIqeG zr+#Fb_ixTWmoN4Gec^4{{l8q^_W8R;euMSgD*yAVr}J(9%QXKo>pNe5h4<&x@`HUo zZ;>Bpzd7fl)A9H4{c(YOzWsA4|Bkji-;Q9OV``wRg z<==KcZk1o^`}DkzO~?P<>)e0&Rqp>%eyaO(t-Ni&J(4%B@3fCwkMEZQ`Bd+(>*V6~ zyGeez{pZwwosNHu-)CpYKj!;#NB)W{r}gg3Kl<`1*W0q!`x^PVuIC2%V%KvlKho=a z%1zVxpWyX9UA~j|!(6_-$L}wHulMJL@{*%FOmPn`~7lx+v8WuA9>@np6lg%+Rty1&vt+A{BP5G_uQXz>1w!crx z+mD>)Um-u<`~UQtr+Hr@pCcFV{{#6k{(dw2)b#xS^nN%;eyDt*yte*@d^`K?Rr1|D zzLp>0{cyefx4xfll0WJDY3tvo^Z&f--=z69<9?s5+ddu$>9zVC~x#=-+zn`7*nQ6WE_4w)X z_uHS&lK;y4;~e>I_L~dkzx95(SU%bQb(#DI@0Tm&Q*ZmdD6hSLu8}|K?`!Xtf7SiI z>n+oIZ+Yo-KhBYVO1@m)^8UF|-r1j?e~Wyj&(A6UZ<_Z(pO+}#OWu`lvY%WaU+(j; zFTcX|RQY1pyOdw!_t{#0h~NK%{Kq~Y;j`0vp6C4(<-hWNIagk}o{Qw0y+1CIzuDuL z%b$Jybp2P!uYXO;?f35C6Q=V$-u`i|$1i^E^!WA@r^i3#^K`w(Z}5G6qx@ojKbU`R zdj4D7uS?~xkzXJ`_s!FKu9h!zf3B5(!~5ZS`R?x5jq*d?uTwVD`F{Df`z1g7w)-VN z%=goI@`3N8J^Ayl|3LnT`&H#9dVQDj1HHa$`R{!{9LkS$J%ju?``fYn>}#g$5C1i- z{{gONOa1}RkGEy(-A!cf8(9 z`756@t$!^)#P5?s`M2yBgM6L;yz5v#)9;N_{(HLqclrFz} zevjWzyYjuPcTfIm@6Su+k3DNz{}u8hZhL*@JKy&D$`5fhl&|snZ{&x1 z{ZIR!>H0qOr0Mu5f1B^WxqQO=eMf$e*FVeWc|Y&TU*Y{wLKHulcw|mR<{PX0W^Y`05`9Ai~OXR6`1|)pzNh!|ssB4&-!DF9TF*?r+5U5eTzx+0@)h>mbLGFWKkdo~-k%rBkMVvh z@{K-km&>>Fe!Eisl=ZFTZ}Wb;PCm``9?4(r{c@B1IQz#&KF9m-)Gtie`zpuJ%0A{ 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 iC7&TJvEcG4Jsj-QEzUAo|PmPN_jl-$& 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

    YK8&V>HHXSGg#gf<$_!%SUS#m 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%0A&L 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

    oA)mcF{2p3Vnf&2>L%xdSDwChG zd^X7~Os-<(NKI+aq})#p<+|7CbyG^IZP`SgX2N9B9DeJ5%DwlECc_DJ?Bc#}^dJhE z?i|DSjSA3L82&A5wc*@Ocb)P32kQ*wa#C8}H(JZesiaijH(Ji}VI-H}xbeQx&20Ew z%~i+m8=c9u54@`eYO-9CY~D1XP2O10G;y=+E?@0nJho>HslgZFrLry%_O(vvjeaKW6Lz9!+f@g>kiWE zrj*b6vWeE336oiK_^tWOe7^2%eYlzW%Sv2={mgFi$XZ(Eb3KZf4yMbe>+8ev3Pd3J z+!hm0ZLAOPr#AKV;Se|l+&aGnjmqxrEWe24D!W}-eiF$o>|Vr5zoxWjSMI+LqY@l> z4mxb6!XLDwAij{J?6+ zRVMRUzM13}CJ(?0j4jiY_DstC%p$HkNUxg`lYQAlYt4koq&fW7`M+vE^B%qDnBe!b zweN#lfr9bB4{jaxq{5=y&$Pk!!9B`9o_+rd>i55uT#rBT^Vy$OfBoCIV*W8~e5o1z z7&eYBjUU7Q1%3US`L$*Eea4s{!|sc~(fzGgX=C#`Z%#V1@>Ei)`w!|ZREm(?9B9ke zwe{{!BbDH*+76>KY`n2jZ8+{Pt|_6>FRpQD)-PhiLUShD?4#L?H<(Gz`<&&Q9AZWp zHT!(im^#Z^T3yd&qKFAxy6ZXD^G(HTh(P9>yqI`uFyE|0!$75c1=?5h&0>}hCb@~> zuojb9-izdxd^4DpoiwGxeAAxm*4OK%ly5TG#MbwN`tm=8&1t?+?lsuo+ z^7FRCuOb4O&stmKsg>t#2jB$;ec2K?qb9e_ET2Jg$tdQyRV*J#a!YcX!OGs6(muJ# z4e4!M_d>mHO3AG$o7n$~>YE9$$$~5M?{Kshhrk5;)A1Bn0$!_r-)9Jlm_8=w)&BQ= zT%UhCQnyN8%VOfG!TI+pGz>(Wyo~l$L@#D}faEHoC$oI-V#qCs23Yy7rnE;?uJ_lV zB{(uhubUF0L)b)T%|tvzt@E#W-sfz6xR?6HN?Zay50OXK((3wfCyLZzK4&jN1d`8v zG4a$OpYzZ#u;{lC?W=rFV0jOct9%Y%c}J34`0T;Tvo)ndKAUpg{r^!7r*@{d6YV0F zxta-Qe7d(Ey##TnEXwtv{eBc*PtIQ_j$hnXHf`#D)c87byZz`+1WxfUP`hwf)qZq2 zE60#hUC&W(q0;>%HwQYk{b(+uSi<4JO`TCYcYNo!9n5YwD=kuiu7J zp!WHuFN(OAZ(M)A(2}}U=9~U8@!WSxu(;&@|KR_Z7MHd?1HU}}dWVwR>6`g`yY_z6 z3Dl;3UVA#60*d=yghtIpxh&s6aud;EEe^h9lwVGAOD@{L%Bh;tJ{QU5TshahS+ASY zTzMUvI88HQ;+yXCg$kIDLtujW(dapQURT4>I?U_vd5Bl?x|VuXiKjMry^Y$`dF>0Q zz-#Nd(5SrL!1AUfS9xvA@;s7Tcx}qc{c}{MLtgj7A{<$$*G-AnS#08N&4hcrHbHdi zh}q{?qvw?Ittzdq=L+F(9p-iO3y4?pdJ>Je5>IXL`U;Jt&g*J81x(7GheqY~d6wTp za+TMyEbmTo3$ORE@={Idkk^)6H%qUZ60bj?E@D|VTlLKeug=bMdci|=#O!%BdQKT% zmDj5CoSyJE6<%xkJf|7;qvZ8Y8W=sES~<@-4PIbSzkU|YtAOUP{3DX9fF5|xD8G#4 z7C=8@bZ7VFGHhkYxSpY`?q&t;LL(&Hd>$T=Q-}(N6kkcs4U9;vidybD|l+scnqJX3`Ad{ z*ROa+?e*&CDL1gPIVmmAQ(CjKJ}K4xcXO8iG#zpYjvLQYK0-@ybqX1lPA#A9M7xM(u4cky z)*SwX`Rr;yl<4_z2V9%zQ1Sr(KH()OSX}Z=oZlzB1aX)wb|^iwL+QQ2%Zq->9XJ&i zL*#E1n!iWbuJn3AKbPA<{#@k8`J&kw#`;5PrE;A7r9SJGmx1V87`kGz zI!e2~;VUmUu(CNR&HP8-6%BA&v$8%Zwfx8OpC&;rK~wVIUn_6Ze}d5Xsk-hRivE@8 zcFZSe0zS?nixSber;$o;((RaMjEg^UZ^t~sHoIyzO|)#jU)fo{J51eT&0q=gT_}EO zHQybCr{);fxqP?eX~Zk@oi`?)8q9Yq&@kW_{uJ6*^W7|#-%WCfA+R0A@@^!TFjeQf zyII*vQ##Cd7ja#`UN@yJ#zE9YEXyaVzL`*(!(Ws6?kdD#l6zG7uKVZ#e?q?d`;p6f zxSQ`5qJz@Qccam_=;9m7)h@2icek^$H7PCmt}`o7C8e70TC+StatT^m`R*&2f{%-z zRDDb{-#x)LduldKw9?LZIp_tGns%l3=PQk=v#i-s&3Bn7Vgg_1@?FIfh(PAMyqI`u zFyF01!+@iF0@_#e-C~vxCb`5A`ED}Hdy(9d?*_B7lcsc-@7i%#iPo17hn3ueaLqsD(`CJZoYd1ots|1n}WUtF1J6fc5!vSdw`Xl zNomP<-C21aDb;+}ndK*tT!NNXz7uTm&2g%aY393U;U41dtJyTsN;}^*fzKv2$?{!O z>MZ+wSBN4e@O3WVZ61pVWWGBoCY~D1cb}qR4CL&`(7u}Q-emb>B$pT>-_2urKayMW z-D9l$tEP0A@2=&#r|NZ6%6ElqV%r$iHxo*8_!H(k7w$XX1t(M%3CZ1&Zj9+Ei(xK!)^*N4lh>>H^(Gw>RuhYpxhmucl;Bw)0t^VBV z`c~aq-EjR1|o(bg<5SzGja=1oHE>FD9NE{Cv$r!x+ha!_mI_`I^A;9wb*kUjta) zk>r-oR}WU6ttlOTzM68~{liqlDV~3$UBoh1Ghy@jip!_7`;r~uZ5-kf@OdqDh&`We zQN%qyUB54xLwzdw>>Lx%eYJ33au0c+-{(2_h%w&FOQBKO-NN#jBv;v8&GIsmTiBh+ z%08OXo?UrgvKQAa((9%)H=M~P4h&U&GuchNUU9~2In2i)FafVd&)M@j7O~c0Ub|60 zN?s??z$o$52CprsO`X@aa0>Y;uLK&E*Wa@I(8G|cycV*28_6xa9)cAZTd64>^16iU zmgsd;;`LrO(MB`j9pmD7mDdMY-k#(tuRU4boa7c>+q1I1rgX?_4%hu?kZL%!wZWTc7qL91nQ+3Z zv)|Kh2@ll~v**?5Ic0pSN~^qH0Ds-%)%D-gK0FZdN?u#jpepg$tXEz5J#B$8#8AFD z0FA0xeh!}?pGR^P%Xe5lf#en}=drS%rnJXWUP0^2bzAFoQ%a-fvWX-8Ro_f3<$Z?4 z^S?7b%h8THLiT*lq==O9jKk+x6sf~}cB2lJd`^mqr)K&53)%*UXFdcMR6dJYo= z&$C$m!-J4p_{?YJW=-jk&-G{tj!e?)ro`uHHgSVyA|*bZ-8Vl>onj>}!TK~5zqFA* ztL~d0gvY7yS=f2w5|C0y$`t;y^#*i<+7aA4cEi9i&auwgzEH5Lu z1>c#h?4v0i;@gYs7U^|UO0;LPi39hjzM1$Yp8uUauPBH4I0PohuSU<=^Ewu>y2q>Q z-*?fC`cd*ai3UcA$7cRd_xEFOM8il!&HjxRRVFWEc>|KGOrFE?!~cTZ!ej$hZq=0b zOv=US2DAi6rs{Q5Vsb2-=&qSCnKXyr`ux>A?{}6@4^zJ=BV@lm4aG05=F@|4+H^48 z^M2R!>5{&PSMuqNiKjO5>60|7dOn>Fr-00zcSEDHJA&ocl3ZoCFUwn#+`{g)tUOgy z+OsQ{15LQ@u0E>a)RqGq(Jo?{rkOC=O`K1i@!Am{I_K5sIV;^NuWjLP9p*KM`cd-Q znFdvfr#5)qLmue79_($5@$$Q%QF-0M@|h%8d0ox&GLl<(oyp2Rn$jV!y|`|XUN@y& zdnTJWaHr~q=d~@I zLQcxN0~(dr-?IGBKOt9nEoAvNl3RE^1S>GMQd2tQbqUuk(d(wf>%DBEjb_31T(kibz;b&AT@_8gzv3!T+6G(2s zavm%DX-a!6EQf-0Q$XM$&bZF_nwhE=x*bW589O+ zZ1v!Mr!*A3Pij~CyHn69;pa^r?zhm!ko zAbaUE#l!mGzgx6hgL$+~$Q`s8RjO|eQjqORLEV6VohAO2gLu19he|#t#l&-8;`6F2 z+LZ>#lhU)aMsujqKK54?|Bg1%^f@=9X_d<>S$-VJRW2`NxsT))E{|j7XMb0f_FT&C z(-v5SBQy27DRKD(o9L;TFuAmOAHdoEDF@-jAuPdpRAcHQdmb}U#62Ee-|tuSL_nE|LUI+@AuR7qatpAxu<|@j=@8gvT=)B% zRKuyw@0Dm5vCP*@n82pH-|q$w;}DpDSEJ|bdF={+>oBiPs2?S--Dyyjcxr>!pU4B9 z*Gz~o#%phcM&#4CB7OTDVZW3wJL&im8&ea^ek zFqmxlSG1@yc^%77Be}}tB`nV&xrNEoSo!r|RHZ$WaxuCa7U9TCdfk+moX#fh)J&L6 zn!|5*-tUah97L*)kUgJ`skfBzjKgOpikJ?jd*1IlpA|PC0?B7yOguHn=Q=bDEXuo~ zeU;C}EFVmAmCwm6??rM8pMzQ1NmDxHvpv_Xuh&h9&rCM4_IlMfXMDQ%eO))g36;gT z?*sk;g-jZc;roE^p|3Ff6aTDsS@rvX&$F^WDdk%{yQas%Ft>;6iwn^LYjj!k^_f2waL&x!Xl&gS3YFdv7&1nWbi=j?eMf>_<- z)%E$eBlV-?wTuQviKhnV->c9tm~7G&Evigj%<=%qRVGhn`Q9#&TbK;6@?A}7&!k)* zu0cz1WQ<-nB_@ZkiO!k{lSy;@Y-+iy6bn*?Ysx?#fz&Kuezk6r?~WD_e6mtO^q`q|pT@|h%8KU=F=UPf}uXKN-a`)Er0 z&z8*hy|`|XUN@!B)|qVLKxfrA^RtzhS7-UY9OmN?m>}O9J*SLs72PVYV-c%+yts6DE`9@LSIV+}m$`Lp`R9UEKZFJ1Atja}4)ee?woP*MED3Hk{k( zS=F!>zh`A0DdoIWz27>CmHRtFsqVM(SiXtm5*#=7TMOX^TpdV;C3%kbTlaG9Hd<|y zjicXhIeXq-L4BxDVL$(FATO<@)qJ)ZMNERyoqt__-ahS z0Oh(4a6wIJ|6=(iB$s3Y^S`kCOp;5ms=qSy5?1DDN{1;elk2X%Of{U^W1`p4E@By> znJ}?+@VwpG`mh;XjYC|5`Sv2}4SPOMM-lhN?!ZZz$o$52CpYjn>w$j!zu8(uMIRRuemJW zKysDWgKdrS%SmqGbptD>YD$N^mUG>k^|~qXdL5fMO*7#huN5$_j#!fUpS)1Ux2m)@ z|D#A9=5_d`h(PkXHYT3h;Pp0YQ|GlWoC2?{{|JrB>kTY#N^+Igwk*#hxrNuJtlWQz zs&vTfURZ=93-!7w@j8o5+^v~#kJl!ME)IbS@~hEv_PiFt-#X0e=GKT;@_G`DxDroo z@cIgkq|WPVI0a0~T0x`o`aH|;A-T%ySeADuxrNtzSb3?YbjWKU_T*Mcm`j_5DM)<>=OF^g=eC%5lJS|wedft%7)bRx7wxNjma@DH$yGk@VtGrF zTlnn4%3o?qhkQ2Xx;xHM4W~B8uSdIxWs+v1X83FgZ{rY`fY0{SA@+P;fFgC6&%@0T zf#kDwOguHnrw@aPF|9Zo?W=rN!Xe1#lU(I<9m~r}ZsBu2D<9I74*9%?>t3qYO(}m~ zz$Uz!iB$P~2OP=wKUWxk#C!h}O~oND0iQF;BYQr_qKJEZo{Yv)eE&0uDmL$bo`nb` zpOa$ZNxXl`9XJlp>gi`q@g8W^?=F}>Oj`a(PVIrp)=g5)aamA_^FNp9i1 zf|ZYJN_)=bv#T<$d%a#aCC;y46OAmY|6^#3tZ-4S8bE_W~4gk8ju4 zul;_52qfRjW8$g7{5t>*gUgP;M*Aw4x3c_vlB--^#quU3w{UqrD?OUho=drYJ%mbd zWaXKv;nda#3)n<|&4kINIsDf3t9$pG^3ew>i*fHaeFaZVcaGuxrh(`y^!gP|)n2cD zpX3HsHYcU!ep72!)+eQUzo|LPfBF^V5*#<~H+_Vb;OZ1IEXi|xzi9&3?xEE-**N<9 zP0sS!Ug{=mhDwmn4w0AE(&~O^CyJN^)w%un>@yI7%xC*z;;F%WHV+Mhl76S7eKns= zV0jOcODr)j4`6vml1r+pFE{mI<=L9jVLofhb@!j98cr>r?L@nXWv*tzWY!#hYd%YL zKi(1E#vv{NpVv}{*z?&IMN9|l9G^MVr;^XkG4a$OpZRDQW4ieiw6F5{!>NXR70FdT zKV|uBl3Vy(#mbSI(jlKix$ZT3-IUgWZP`SgX2Kbt?#;K8;e^U!-1+uF6f$W%hVyL! z`U=CpXG40fkI=j$uCgBl-#>mfJ)d&Z>NNA}jZu0Hr0Ld0F{BDb;+o52j%86_QJE z+{kB-v*EvyVM(6je0CkzK257_vQg9dY&LbULWO-kTSQ)3ORM{b=_q0nROj+puj3Jc z%x80B;;F%Wb{853el3qf`)WSBj^(G3Tw;lQb_vUKNG_?W-anki%C8%%N{9JuH!Q-D zm-M8J&KqF)wz6DUWf=}KHC-(PYvd?$!Hjq^lE_i)qGaU@-8HoSR$X@#qyRU zmsC~fvo5UsrKWV4&l+>x9rabishx+cN4tn+l4inW)*Swt%xC8y4wc2Y`7DY;raQ+l zpG`quq04SBPPpFP0J&ZM;Dv+k@skCbXY>&)^KNG`!~BcFW_i*WU|eAQLQ`D`)Q z9<0?i**N-q=Ini|9Q2Axh5h=hF?F7OKFdTAlc03-nd|piEAkM5%x8Hq@g#m8+uODK ztk2O%n@?PqB6lr-Qy{2+J!sTiH<9JHkX#~*@%G&+6=XL^pUChrk5$uhDb%ymp1Z?(ypS^VKHQkCNB!G^k2E zH8}sCjD|6edvnmD%49anKOnivl0wd^h;(9dKo$L&*bY;Om8Q2VR1L z#U~Ru zw6jCW0plyb+m&7~iU)1%ZC?9mchi=ky>Dyr#ffKs*(Vz%t1oKc;>T0PgO>KjmxKT1 zj6QeZ(#JE!CB5gSc?iBWf^SBfl`oo| zVch3cTB#go-ZUBTTJd$Q{@m*NR^3|NaQzCTq;Dg}@V^??hW{HrAAXyalSpaK*YxfT zYR+ZlAX2LH^(2tn92Um<2KQpb@^BW~SM%L*EdPw;5<|e` zV|fM1E&1-VkYQ|&rgWI^W^&y=dfk-rT~9XATr*)pX%2tFe0PdXzAGMfJ@VfTobU2c zuwBW4IQeb`oKRVeyWe;Ug-myj;eO*>^c9BxNTxQNRp-IEtlUOQGk;ZmKk2@pQFA3J z)%>-M<$BA;ViHv6^4V|?B9QrPZA?5hn9oL` zVNlXdpnWx;-OKVeB$rqspWVpvW+azXRi6j9VP!o{=`f##xbFK$Jc{Ae&PZ0HUBptR znJ}3(hrcHC*~y4QWif6(6DVZ5a}4v@X!I4j?1sZ?uUDT3-_FX`q`UziFJsGB{e6a= zS$Qfc)qK{PKnzW9^ss^fe%i)-Jl)i&9v>3nvWy2F~G5}dDv;+IzQ z*+B$i5>)5%*^(a-ugquOn0RV1pRGW{pk(+DXkX1|vsivN$t9M^XQNo&jpUYmb~h_q zX-bFr>>{q~*XyRVK0AoIh-LX9)i;w_bNFjApIwDGRC43yv$Ighbmti6v)9m9=&}*t zt6f%|&nB|+PEuO(S$|euLrOKD-O2J6B$wd0k|68|hX2)X)h?^fXK%A|5-BbDY%VJYky6cPlURNm$t5^$ROj+p6Y6J~&$`FNQ-k^JWHbz* z_kNA`)qIxC@()NZu|z)mW*_H2l3ViG2dsQrQ##CN%^u3{*W)V4r7z(3>+#>XzhA$Jo;Fr}O^EgP z>&q(-e9a>Fy@ zysr8Nhm&8p9}KU6T&LY|PUW{3%Zo^^^4o>wza+VZ-y&9KXiA6t{)9?!*u;nWU; z7qN*!nu(*}*IB-8f?(qinSkG>)F<}*7NUrI{1OQ%^81!8znect1d`vAtnt)JzWo4R z0F$S8!WosA~UgM8A`L-8Yi$h=nUhko}67c%MrDq@LFzh!yQ6v>!U$6i&>^9ueyA{`8 zHs%g=|NawotK{|0n0RV%zjF>62BL?zqkR?8<5>O~$yG#sEUzHB1<}uT7{=ykN_#}* zeb1R(w~t;oB}99&iRPM#c!<{IerE-oP+5$--+2m!Od5~je&<~D6^8%FHf=bo??16} z8!0XOoqeAgHCK{S-S2E;`Ew+f;JC5hDPhA`Ypy!p?_9>U8)&snHjaM3GeXU0{S)Q0 zax||}VZYy*NnYCLv#}^*5|n)XXrIrvS?6DDkg!r4)(8KMyM8pT!6jTjcH4>wWIme| z6OTv{Q~4@*hZ5Re#ouN*+0V>} z7l7lTO>jn~w4CKPlU${AFv~lU+(PNitUOm!+EXg`;6lxn-agbu!-|D6Gy?Xv;BDmb(xjO1pICwr>vz7eyjH9t5GBs ze(l$@uJ6x>e}D)iziVUSv02X=zt@n)_u-F1!=S3$`)Ge5x{%LIhqbtu%RYAtN#ilx zpN~dgq04Sqr}ldF{fgUJ*_xC$RI?%Pzq0aFQsToZ!D-F%2+1WlZtTx@!6N0qwW_O* z_vf>?_T5@-lZ~U_pF7KEhp9WP87e_O3&k(3=Cgwc#3U&Bda{=D*^+k=ugquOn0S)q zv#MQr^&89b5srh6`3f`)N`}9K_SJkgi{*EdTw;lh`6!lmBe^A?-Ob8Yn$lrDyNK)h z^|~odxd%}fu`GXE_043~9DZv)OZEG1yTM!MeBMGqS!q`J?200$gLRJ2Ce){r&+akt zB;zxU`SxTqj4|E&7TQ<&%x3uqBv<+Trot${gya@JKVaq4n$jVksNuRL#6GPQ2#;TtzDpBroSRdz5pdjZT<0p&wpL4+Ntq1^x z&R>N>D(6?Rya~xw&M#(pfaDg=o3L`%N>ypkxjahW28(dyIlXR5oKIvEw`e9z&fWOE zq8vmRhu8#sH>O^)=Q|Tc+~eEz^P7s-5P{@7FD9O3`8SRAdi&hWzYbg5suGOkG z4L$8jTcZDNN7Lqqp9-#ssT1=jQo@x86;)3rcja;|_rwROg>=7UJ22h(!S&D2@MVZVetrxBlz5VTerWx|k#)wiNBF zdHr6Nw;{Ru`MHth%}8$f{Ip?ZJx%HG^AqB_@4u=VPVxK`?IM;k&4kV8r)#S&t*&Wx z^;N|KzDV`Fpc%Z4LtFwrFQN`n#zW1r9(b%;kxJPbyLdkr?ZKDFRQ-Q44=c%R2vgdOMiqv5~J5rxYKFea_NycY7`#&@cKAS8?`zoIovphg@mCut|z8BqXP^hJJBv; znX8$o89qD0+c?A};PYDQ5PLq`qDUR)Gl%+A=FiSC@g(Cjjrlzv4P#6QzI@S8E+?hjU{*hWU(3p=r2J3;XF1DlVtB#)soXNEh%vA$5**N;=0aFmWd>?qM@kgBV)_!PSrNaJsz)*@2rufq+za3ef zZ~LN%Nl?1`Y1e;`pe6OQ%xC>$;z@ko>fY}WoIq`w$EizkU~)Q~0_^)@(i_{>)x!_O)1x1$0knGOqe_;KL06IdF_{o*9w@A zLtujW*XTKWURT3W_juim&qj*R2Ueg;;^zaypGUls*R|BEN<236Z&$cc{XU2B1=6X% z%ke1M2A0>&Mx!d0|6=(iBv-Ng3(L zLNj4vDZj5jF`o~seBPUg&t`B{9U=RCdJ*-8GM@3ye^A6dK3zYb-1{sdkbE|eiN}V| zbnj<=gN8AnOJ<>c70!(;pGI;O&J`>lPI3#J(^z?jrgRABEnN3Jy>3c5^K>?`Z>H*- z0%x<_69*zo2x0epwN&LZVg4MBrs5EnAb*ahpzQe^f+Ftm>3aU`NPQ~#EQ^W9hEEsr z=apz1h#ofsE~toJ$Z{XaRYZTm^2%o*w;<|cWre16i0Epx1V_sBx+x(#kWE~nnNSd| zCN$mrxtBV{N?Zay50N|8(&~D2CyKbor|bE1_H;xb`P>&1j}4#c=FfR(7)$pyqaR!H?OGFP*%G4bTB>ZlPH=85$Md%`BfmauwcH zEFVd73%oN}*;`ZE!z(vTw{hJI^|~o#)~0M?|0LD7c>=YPYveRtI#kIZSpkQR}sCK? z*H4_N4QJK)O+MJ`~CJB^3qybT`w*`5tE=gcYfLLNkky?+47ipZ02Lveoys!YEw?+ zl}j-l_k>d*sQDAnsJZS6mNzE3L>A>QV7Zs%lDO*M3Te#B9TQZgeXf(!@n%?rBQx~6 zDdoBeY@&x|!sI#e{st4PxqeJ|-kyW#;t-f%{xy2ep4UwHTZehA7>{@*uX!}$N<6i} z>vJ@cI$yHv5u)H(LExg{s%JVd(LtdM4-S4s8Fb$`+_o+m? zh-JQJ!aZKQ!NWz$h}q{?qvx!p)%@BO{?=h$n@~SWUc1wvD)H0?uRoCoIUi)#~c6!~E^6SNHBA}UY!mG3M z&Dk)oj+i~KM$akZTUA=+bvhh%k5|{vH+zjiypq?s)T>H7Hv1bF&Nu&wwt?TpqtU2} z<^Qq#WRj~`{(r^P`F~L?HRhi;3sH+I?jY@7g%Wo#RO738mcOtok+?!c>uBNmnS1wq8!*#!VR5hI10$?}VMJz9A zCKPhz;ioI-M;+mC93m5}U$3P;vFEofinzzG>*q%~)UA@=&N1=WeD)fK2qd3#W8z81XBzi2??S`iv*jabU*+>UmY+s) zmCs99o3c;PG=K$Y9^fV>E8LK4}GAr825bh6L@OU zcnr@sd!w(=>%SkWj#%~gBVEDDlSpYf-)zoGKPf-NXRmrQa}vwm1o>*- zGoNjXiKhnh*<>^fN_q`J`)WQbWqB8pODu7Qc^AuDl3Y?%eTLbEmA}-K4)a-KuDfHf zYB;qe;d-=-SSD#EOlHmDPk+8`32);Nmw?aq)FJkKUVtK|gLRJ2!-EikoNrsl#8ZQO z`Y@On(~5y;U*)qB4naPj=vmdq@q`WaH@PTTG4oN1D(uf^?x7g% z^I1<6F$qdHpV4KV6z`WWCq@$fUO+SIXPM9LjETqQe5Om)?@jH?jfy3K>f1T`xs3f! z1)Pnhf%K0Lzymd-HDdX8l1nf_xrgQdCAlS|ZGX@(_PnOF&uH=x<{7SgmtHrejCK>7 zI7>5OQfmT``1v8gGx@wb5uX)kC=PK6=GzVAk3FBOQN(mFT|PfZozKO#d=Br22qd3t zW8$&l^NK1yOV853`hrHik3E><&?dmV5lKP=^FfwhMsgL*zq9-tl3T#MjFk;Er9&`t zx$cJhRKuw)1^GIeTF2*4&0gvse7wmbw07dFBkB9F?1d_+rG4a$4 zk3kF`#&F#|Xj)B_U%?m17n5A&@k5qRCb@;j#jG5xDIN0o0M~7=*G(x={*Fy#Y9<`< z=xqL;4f~6%geBl{5xHS4t?rknqlkMvx;}sR`ZpqwJkE`Y$A-uB=kGhvH1PY~zusVQ?DeWnh zkNn1R-R^qblqkKLO`NEiP$*6QzStO*&xHAO3EGK6TmnAVkUI(ZtjebgP$U&TYdN3x zy8{tOK9^hLsg-DzZ$tYkqKjERnB*#=lUd%2v`17X)An4qzFs#aL^IjM z+JC6N#X~gx=Q+L5R2U4jKlZhi^gqDxb%( z{4pfM&shx-}ViSWj6Y*e8vVVF9T*>d(T4DSVXTRSB!Nwsl0k2J| zPZIE2HQyJaNGiPA&-W*zv6%gSviHSik= ze%br#7M!;!f_g_*Hqw+1QP1PLoBpO6P7U?9(Jo>cubD7WxBoo@ zXZg4#yo^I^0>0Z*Moha@B#z7tUH`hA>GXK z86;OBUB&W|B)331gO$BCr9((>byHeAG-VU}|El_CLTa**Bp*Kvu4F#OQ-JvA zS;Ns<90C*YI-cT6z-v`L9)cpKkIBzp?enqg`>&4Ft&-QWn0S({Z_~KHeia%9qD}sS z_EkhLW_f_*DxxQ|eD4jATM!Mf@?A}7kEq;#twBq0WQ<-nB}9j?iO!mdc!=8VzntaM zz0@yO;u7$Ah&-~EHlANq<*0(F>u{F; ziR3D*ceA_|$t|${iIt~lN_$x4`t}5_`}v<$!>LXB8_+IdnW~wH2Wygi>WtTxa5xTu z33zQ!ePYk+1t?O7c|Cj`B9Oecw#HK{ydHoT7~^Hv!Wos<%`Bfma+TLrEFVd73$HU+ z*;`XOf2H9Iu%^W`G1`8N1XlGaJ06_N?-zB$5UL^(rSJk zf+Ftm8t47XWY1sizrU*^b*tpHEGC}B`?22D-`|xxKX_o7r+28hv^ZE?`iE#`p!mqr z;&*oyms|?ZE`OnTSf6LK-57tRm;DW^^Whcv_52^4Q~7Pe@?BjaSNRRF{9Te;_}v97 zF!rLRbja^>T=!pk-IVyfg-x8NnW!;-E2zt?L?+;O136_at@67XMd~oW!@D2?$?w{j zc#ajncf%_n*XkNLr}Ep4<-a1i%5NK%*CV-w-(Ruv+pATjLw@(bA{_aTUNB7}7DNZLvXiE?M^x^=+H>9ddfk)|&14g6JE^|KL)32n zH3b~W^}$%_Uy{-*l@1|Vwu z8fYd=b`#$xbjIrvn2$qX0$z=tv*&dI9IeB=_UnjvC9lh=SCx2bgV*b+O`X@Ca0|zHGxWMC@j8J`^w3N=;kDFAsXrDM z-Frsvpnk?5aq?>pqEkog&!+?j+@x6!EyjAJ8DXMEaeiQE!WM{>!yTd z2Ag=ho$8y3rEA~M)C=vXBV^C#Jrt2Lo^kl>i6ZXt8RvW;+4EZa^MPj6p_0!#W8%5b z`S&vwQB|21_4fenzu!B9YU5h)9a>0ZhJOSUo)YQ>-2u1v-QAiv=)cR1o?FlIc3l9bQE!qU)R^Kz1koG z$?x2lcx?D}ZT)&VwJE_jz7Mx6oC3ZlT?&ng@9$Y2BDsq1=`7#(N60PshFJN&rgVsJ z1zLh5kLz_)!nc%7bkR(h_#Vjg^a;@-);I&aens_q_Npt}l^keSa-_JlTd=t3hu$X@ zm)`qb@qin@gFn}OS3KxQ??7>B=8-GUXjinQ&!_mU`AT1hk|URw^b7J~;(*tJ__6s` zH(bBMgipP%@U#7&`{!qVe*S#@oF9J9pFhtp19A0Hh@a=jpVtpRudhmWwCdWb%g^h> z+FBn9apZ`nxp*Jj$oDO{G2C#&YwTe4?oYF$8cTHSo~3lKZYOoioZuny`sM-`mINldETV6 zadBiqJx|ujS&w-hr(p7oYk139&t+2!e_JER=r6k5wDS zi);;wvW&=bExsRa%AJL=1}9abExrWb7bQaa;Wj4In?;W zIcOX{eHsWKjEJuTk!=w%G&Ax^M2yXR1S38<7=AM%<^&`2BVtW3GAAO|2TA^ER`>~& z&x#B|`B0=k%7=zQJ|#Q6CoJY>M?MUT|7J(mg~i9&Ptt>&q@SJI8N;Jx_kX2cvd>sD zeKBJ;App!C3=n3!{PJ^D;iu2hQa^o;X87?r0yyva!V~=BJ6~j|ADBfS_KQgw^PJ?V zBOWKY&PkbMF(uPGX~RjGWbL@ww^KagL44dE^yI#hiz9;L%c9~tPr>)O;!$s~GFNQ$ z`uF6DPrT;|F~*nwY_9ksqtVP9@rb|R@f73{%hKdagEIpXz@e=D@1dE`L22+b`HhhgB2 za1rbdj1-~FE0Jw7@Bc6PnrsYzHO|vuQ-+x9DZt$Rx+l0i13m7apCQJ0KSOu?;46aU z#SHYMvz%w&p0S>|Lx?;4i~XL7o(8l1VxgyCj9mI%GvN|yEptsNR0AD7l*_WU%|s6vDP;S@&W$v!7TBvKlFYUoQQswC0-5Wzmp}F z21Bc|FzHULUIW;(l5A~?^%eVeRB@$K_wU^9Q`9Ges80&t4}qomi2X}%c#+X3&xXWY zUvxxBEcXqBd{svHaF!VD4}Fp)KJ`cUWQqQP=;ka@7I+xi@tNVbvc!a7^yMtED44$} z3#kel0a{}mE$?QInh~XZdf3RPJED|N*GDOzeiW7YbX=73>0`N+PY2~vKHZc<`Sg1; zpJLHfolm#qP(FPjN9+pzc|xu@l6CyX95E?W@KKJKA8IxyS4_|LW6}0(_ELoQMYssf zO^<|O;H5|r?0yv~LYWykW*nNXC#GpP$2CUPP>Jf6s$ZNyYt{EpkZaY| zC(v4T{t2{JeendjR-JqTtyRlTptb6wC&;zxk>hEty8C!qtA2jGxmI0wJgrri98YW2 zg~yv~)hQ^S6&Zo@p~z5_4;gFQ?C}2M#GLHNC&!63*^!OMiS^mW+BO_sb)5J*9GP>R z7#fK@dz=^>G0NwJ$D({rq(92%M1E>4*3&Oc<>(Y+Dzg%{#VUwBhQjL3-oHzHxD0z~Uvywlyy7c(FH?M*5n7XpAIk_W%@nT( zc48Jb`l2?@1Dxy$(4EGC&bSDI`6*13-&+{6>d9|zm=*+6uw(W`hlI_^??5(9ejjGj zV^AE*oXWYiH-C&Pa`7>qhvk^3U_h>T#WNRmv4;ITN0j@b8*;=u zzJlpFV!My_ACLPf_wV$FzKw|af#{$d@qQqRt@I9K4Z9~ZydfecWJOm-#Hy?U6C7nY7VzX?Ab6mNOy#Q!^Q;kHaM!Z#K27c;`|W{M9pqFC8{myy3XQ#>6A zy^twp1s>$wV6M~a{+_iq)??{>RzIm)!+)KRJ?jVg*t14o%@?DM$z-%QJSAWJ#~XPp zU%cy$9?271jmc!IFZ^|$7?ctDBo7brqMP%uh^9$qwm=RTyqqU0{n15v;s-y; ze+YzUW1 zxuNHxVs7sD^aRG3@7>I+ZrVyVA0^Xw;m_B8S_^Cl(dTPv2%oPZ=$1*|@YE0u+}M!# z(Oa-POFZhE1o_;I@JCrTMxyV7$=-nY17KI1~FZBIFBS_{~f_jEyeJq~*!POff1D!j}HYz}K{~ zfiJzQ;-sx6)*G<7l(w2w8Ec-YIpPh(nIpdS7VL~*bx3=rmoma1MDWm*RvIJx1uG(A zvY+Jd1j2K%(#VWH84(*Z3r3=RR%ld2EDeS5Q16HA5Vk9W!ZSJ7IN9qY8>3|Uqg_iT zvs=^pbn?!z8c%cXsQYI;ZswVqV(eJ1*Zvp!=V<%g&Dhe-19i!lWU;uhc23qtGX0gj zXD-Xap7|i1;}x#P`Gkk|#(TZtXN_~b@}QXGi#`+-%Y3vJek~*XRi-HOht_6_t^Vki zOz|L|h0!#)kmsSgzK&cjpUcn3e&2Ka3%T@MerztTMg>c9#YbL$X|C8z&*ew?@-bb1 zmeF8v4jus(?2m{i{lT{)xNqd&6~Tc-a7ILw1kS~&a3K12MC=KKXGO$MnIW7c4-E!! z`DRj({{4I~I6fj48vkAu4C0)zB6xuigR&YuhUfTM1*4(NIsUZ>eAGsq>5N0NKB}v>|CjP` zvOadQuC5J^rd92K--%%V`x0*Pcp~Ky`OJ1egr3>%57RT-&0+b>_MI?2vwby8&um`_ z%V)OFhUuB@gfKm`eLO6m**=WNR)NSj+4Riz>umFx?Z?^l%yuC1HLCL3cnVmp?5w4>es zxDj_c^Z27xcX_5Z#Jn)HA)SkUQ)r%xeppE7qH7B2cx_&xc`iD&kj_O%7t*m&U}{##${2t`-d7yFHK(ShOc-1?#-9C@<7*d2}ztuGFRN1^<%obdhvF)JrDqP|#~ z8~LO_e4HEISRlU0rPI_OqTy8qqNHAAPJx(OFZyhOc&Q$prmoBjk1Y`E@*@2U#8-Lw zKjn)7`5)6aY8i8o8{_h`4gKC_UFnab{jApY{MU=mjvvPoFM2pkXUE&aI6Hm_uus6< z)G)5~M;C|1es5tZ?im?(Q(wslAIipM$LKCB*!+b%v+;1_1(e?$2;)M^lFaC`Y_Tab zAD2*e2SW>Rw=)!aCR;oknr^OljCY0bHqEWkUl`-T2HUYs1ZPtgE(?^}*4OuN&jzW}h8x z9Lf5}$!Ek#nPlzYo~@CPwq|2JvnreRxwxxe{qiDi>|>vct8>`rei@Sc+^r$n=e`r7 zeQrfa?sH!W(LNV9*Rju?8It?l$3wKw9f%7_nUVe>>~m>9J0%##C8W8*$cI_tzrpA_ z+`|mwKxg8E`yMr0b6Vi|>{^~L&(S&;V+gbx*nX@SU& z0m2Ct>F8%y3147>T>wSic3M&lHHo!7>zoD=R#zKvZUho+}VPgd&IY#hC2q z_xWOKHr=D17Y=XF7t6wtxAVouaCA++s0@?*`$+hud@&>^@>ITfIwv|IA9uM){%US` zaK3meH-e}6J9DF7SMtQlde71d5V4!j&xROh5FZ=w z3#>5S7kJ5dUtodxzQ6(F{i|<{_pd%R-oILGyf3icd|%)Z^97E=e3vBjACq{8HPvf-T7akrJQ!=7I<%+j63U}n< zpqlQalm^1@;mjit#e1kb0)=>X_+x;^Z+bBNOs@De7{%#G|Ey?#oRnnI(tBzsya$ot zi8A2Jj(&)Ha^d_Hc<~_;dL3_}Mn)PJ6VRW@KDV`T2G)y@0zRUvx=V1r?kOCO!*dV4 zqqEx^{w9n!k)u1p;x%6(uI+C0y$JaTfB5OJ*yIl#!Kx<^eH15Tfhbl?8;v`DpJs+} zdABSp`VNk`vhrWUiYXLA(s@1fX7&2WNlyDar>v1kS0#$M^-e>f=1>6fCKe#$+K`(J+aidt9`&5o>dR;%13d`xZYQ| z8y^%OeaY`L{xDt)I^YlC~ovW*+Wg- znM;R{+I){K9Y4oaaeOF8^o`){vuU0}dL!3(@Vd_%9-Si|^F{E~@p)hLi->sDc;RkE zMtCFM;rEALiC`fU!5b+@{83y-9$_T1v6RP*GW4JhLh=QYEA6M z=hF=v$>Mi&e^FQ7rAmjVqvfG4?oHg7@00P9&K&W-YWrvzNfvKytdo=Zkgnd%eB!39 z+I+vVChiW`N5rTf*3+yk;CO&!od;I@rJ_b3~XnnGa#B165^yzHzc%X0)v;lfa>%GkIS0S-2GrBP(`Umqr2#J@o zLa&GL`qVnPws0d~Vf|#pG7XokBc(a?%nPq@$#(&;Kg7WXZcE{r*NYMJnb))kJ@Xn9 zp=VyWMlIh3pcRro@-(bwq=_lF;kijV!FgSmLmC;D(yYzP$W&lP(Eq|C z51xfB^w6^{j14}N!|**VVezalS{@cJ8<;H12oDS6#3%G6K9v6GkJ-4MS@>QyzO#jD z;T`=~vvKz_Iuq$Fn2)Dm<3gcwdLp*EdOVKRUH_WcNB^(btciK_f5qm}t}$z4&*({KMv_jPOX47(xPWr31+HvAbGTxHu)5&#i_*au>jBfastpEOh*B|X# zwKhKQ>Gu86#&)#z+|2#SVn13RkG5V-`IF3UGX2rUQ*(J~!l|C)I@SBqBf1xUTURuYVS9mlRDKK zM&-~r;@nT|7JTCobBxpHIo^hEn#J+E6HePN@-*vI?+vnx?=y$pIbO2+ycfqr1>l&}(pLI@LKB@BfSCW=M$ zKlh$vN6+(bKA)PM^S$Ssd(S=h<#&Jc0zLV*+4*%!4AUJK>DHlD<2h(pJSXjk)r#&i@^qr&?RTHpf1VylZLhNw;rAo9g(Ogm2iq!qhEnhA;Ye z+-+uS#d@;V?EE=78u`51+VWyu+05;KBF6k$G3M9sG2gA;%z|de`(}6pwYbM*aV}~y zhYMda7E{HV_=w2?znJras9V#eu@!TE&}5o0tjpGRP^mB5!D8EOeLMD!$pIhR*tw}YSkaC{EmoNsolfZxoqI9_STzlk^Aj(u!#e9{iyDDPO?j@@Q; ztZ4_|VCSfZ@7}j|d%qog=agf0JC?|DyaT@~(rz|PYvJ9TOLj{xnzTNpF(%ULXBngI z>>GA8_jhD}AaW7jKVR4_Zeq}npP1NezPFiWb}nvAuGX)YqE3)jh22(&+S7|eul)% z?l(JrH?yb3-sU-r^Mj-(zTe#b9wFV>q+8!~%e8iFiSmEJzBAqS3;#2CU;im`=r#ZhMC+31Wv-6$CRD!u+N9LXXSgy-)o5tLhRvx7>pR~3g#To{~sIc3^W&?zTlhNPt>jB|&5%)P;_`F?=>se-aXM+QN6>hcg`M%kiNbxE9 z3@#sFZ)xH6oNnRugx|^d3HF&57@LlpE$~4nzRtXDaekc~p?pm{+cacYmyi{7e-pYt zTG+!T2fT&%O_Kw@h9hBeY_!0Iq~ja-%{;SXgN3azJK${(KbsvtTj1;29h)s|o`rw5 zX0g@zmQ_yj+wKzWSi;)@k%BtGstP#^>+A}X1J>EKq8*=@oee4N5IQe#ori?ZgJxcr z2l(#Tale^;CUn-Boqwe0q&tSvE!UR#i@Zw76UdO5$d>hDd^X7t9&_R28QxB46~yKq zkymrX+zr22^O0!h$7bg*DeV+}9OF6=RM3GGfq25^1@hu49#6+&GxQekDb>gyjK~1AbBSMfg%NevZJe z4?i$FH>Ko+h#y=|7Ixbv&O`n%ah=~yu)pN*u6xGpd^cITHRl2?<$>52{J{NwDC!D7 zn>fehcu!o*zH5eGVs*e-$gd^`oQ2#d_64_EoR20mQad*+XlZWvtJ*5;wqk8>GCx2+ z!ORTf5N7G^%+KkLzjVvB)IV*RU()s6sh_HpzVy(s!3}8_lxP; z7Uk0Iw{+W-uDvwMiGFC~x&2_1XIK~b%Im^zGsLy+E#lf1euWp#-QhQ(;oNdX2(e1?_Z54y$57MLAy`Sym{ zag!B3yzZE0W!G68@Uh}W@WYc<_KJmni$cBC`J=V*+N`y)YHj&+V=KllELm+nAKkHi z8^jf^sA1m*yEpB1wHT*O_vE0n{XKcQZBMscn_@4oskU<_ny&x-(mBIRWBzE%ocEv7 z5wS>P{StlAim@!}-^#VQi4WLYv~<>&Za@Ad<KsWmbOP{jQa*gKJJJ+h*$aHq3cu$D3C88XCtNRk4_`k#he1mZ(%pMGKaXpH94HO!1a04D|3GK zw8G;2yvf*3E8o%>7wL}6bj!76&JjAW5h&~i?$5E$>HKiqFo@MQ*_DhQe;oiuDF=tHGFlT8!x@#h8XkVv~vI#ul@4dNMM6uO{Nz z$~mN^c(kQocXVD7^9CF|!uw)H47P|E{3K$qNyGqd*1-Lk@67Brv*TMcyoZ$UT^CxM zZ#0hw1h6&tB{MyTH0cv~Z!t^{>CNj)c>7_JfISE7(dWQjW`35}4fgTyJ}cPAFE=}8 zS>TI4`Fn6bu{ax&EvNTOwDBDAuXz7%OF7mO7k!e(oVFulN9eXOW}=T9?{PTb9>*M0 zx9#8K_>bze@@%#(W4vzMSNm|U1FrMmHaXrfvmf9t zikV#{&QPzlIPXnf$?$91bo(l;+)cM_@}3y9t)=@_A{MPEFV>A#-a|__2Cc1&DBp^E z>e`Yx5)B_WdP&4A<8!y@x^6FRgiHKjvl3yL%1G&tdFZ6a30vhK}-%lR`Hd&Jrg;Fs2ZAigK7 z7at22G#~q77W>SS z^%xkmz)wQfS^EL}$=VOZ3$|lBn>iSB*!r;Uhjag(OxFFJ$H}{l&<^L^tPYR1hhJ8j z0>68-XgAv(?b(vup2FWiI+{Tv&e;9oEO=+g-b>qwPyV)plRewL?cg0{S+})=@1lfb zE%t-8A4ukB-OF19HsPZ=>)Z36(X>4>m~CtiXQS-LY}-SF;V01^hrb`P+a4Uu7TTfB z?5i%e2L`hry1+X{*dKe^?jOvq-fIh#`E768y@T16`*8Embhq6zn7!Ej8nF55A+|Y# z+1rP}IU@_@*zOw4X6D=vcAh=VcIRNW?6B|JF&1&#?ikGK+!GmlytnPP!R+bYyvUk9 zwp$0Y&-+XR)$jY-ZXV2j?mG(JICYF|`e63{F?+zbEgoaLaWG39Gmf#3jE=a&1=+W>@utFaN9SXS-@Ji}pJNKKI=V?6DF?yhW|{bcyD;x4w?UD=~u^5H~x58JG+Y{niB@#ETE{m^nh>^kS( zl_$IIZ|u6y^Z#oexNC1y7w;@HeD}$%maL@~(@e_|Dfg7;ni&7WrJ!l|Z+C|qx80+5 z{*?d^+F8hKgI{_3$eeYToyE;?`|>tR*EPGdjn=)t@64uUIX;HpY|gSh*_mz1%39SK zeq9`HLq6NimgvNmwL6xvU)$N?_v#+lE&In#>{DBhdpffh+jpPS8E*DE?&{1M+V_HA zx%;|9*7VNo`wmg4z+>6{z}?r`*|n#P{pVJFz!ycG%H}+jsu~V0*`Ro!AHMdp!=nMBO3lGoT&#&pZdS`+>V>v$Mg# zYuWw4?vzgbpv-eS@qXQCEz-;HI?0sF;H|*$FZ&ZKylMSX#{M*CKWt^!Th3(+zKY{M zt0`!8&a#@8TAlA(O{=Z^t+Q6=oyl+K*_LYKdv2o&em&iM`VuR9(b9*ppWvqxtfr9F z`LNZr((3%uYFf{2H2H>~CN?rrkCnV00dQ{4f^TJOFhg5bS)3uO>3fTFs@3$c)w$ei zdWqNLJFD|reOp#@8yEBMYt9Z^S&+x$LyL2!)%3Hlw8-jQX*IphZEUeRr#ITzX0qpW zh2K6pak1%2GknMQArP?C7-gb;@MTI@naAZvzp%Gc7L@xZ%wtkr+cs0&1}%_@G*!9Z<;h&qTk7wwJ?ufX&&h zYCHTE)X`^mfv-dknmT@FVRxCb;Ol4JH#y-48h$c4qh`|$<_Yrq8D6kBKeU)Wu(;$Y z0`J3?exEDDV<{7{%7l$fnP|)ZQayH-wq&ATGGSw9iAP)4 zrPQ@26Y*&4x|`{GWTGuQi;c~E&jAO;f0$2;!uLh;J>#zyXPwn_yVV)7n%=QGH(E{K z@IA+ESIh$q^RmeXUyygT_~D>A<^sMach0n!Znwae>K%)7qx?u|6W=>af3|guY%^_tZ`$VA z!uL0w(*>@&Vc++=h1~&PHWjq8C*j9eEv9$OPWa8vZ_E{9Z~v3Uw26oKQLFRS$ z##<(AWFp7@m+G;zv?UWcma)EVG7^u=5_X=^GPVbG%`8eqlDPDa2A`XzRW~kx49iD`Osz? z8R&;h zS|k%TGBIamA|AW)qv^f&OvE%3`H_ih)l9S{6E@mBmu6zGl)?3RXNkq%T8|9IGZW(^ z6S4STvaz$w8<|+&GO;%Ot#ePx{PhJtqrVK^A!sSPGmCBHXY_YlogZ6G&sv@DSxvuK zoi}Hhrf0z!{gN!_>Yeu}tFWS?j3r-{ zmRBF$r^(A>`!;#m=a^#~Ul&fQ_E$B&3>1`BHoltRFRHFceO*viT3i64;r^mHtL~mA}0DWX?3Af#6_L zqkKX|b&8@ecuGNeF|WNU9|=W`SW@1s2}R}ABbDfYXm~|swZB*e6O^E^v&+YoS4=E- z6_piKRk6UhUNzrj~Ni0xPD2u^g$#U?wC(8V?W%1KQ{ z1?5!}{gq8+fr3g>3{+OsPU=-&QSQeQ_ zy;o`ZmEjLD#i>cEgz@ItK`H`rGTR3 z0EhaQRrm6j@y7B(@S@mXRh04)X3omu)Ynk;nkp#(&(-|zUPb=0vH^wML{cOIpva1N z;*aIUs(1*5DmbjJteE64rnyqowh{A07x^)`xT)UQBCS|d_>{6z2x8On1yz&Ei-!9v zOJS0MPG|~wD|xPg^OEXbH32^TomB%%Mly&hC@7y)SWyg7Yg(S>mZ25UEWt#+Bu5Z0 zEhIRg_)CmQFPN?i%7g|9DxsGu#*^G%KDM;nFQy-s^0$`{VK&BJ)T^=}0L#rV{F@Kf zvnmQp%f-uz@-on6Wu-95`72?TZ0fSPyoqOOP%q)cU*zXQg{2CMD#i!O{4kp*r8VWH zMSK>Kr3x!63X1iTLH?rV#XvZ`1Qv+qBpF9(y2xKyT{;Hb!D=OCVlFo$~id0T|O0K$jaShJ6cP%Ll-~tSk*wgJoR9jc8M~las-hFTmaKymG_7)=(hutpq>QXnxm;qTK$d_EuNb3O z7AR?w&c?k|qPTv7m0)CMnHrG7I_iS6NNM zM$>AkF);a6m9$u_s-|#!DQq2S9W``XfN9lIu}VMR618Xz#yxm7uDsY;8rFqV*b*44 zLw~m9K@4=cC&a{sEpEIlkswi=>P;T*=pRvyv)+txW1m+`TlB;Ql2k65ADQEw6`oSzMSh z*Ea4G3^x$l*}-TwDJfeGxee0pahhyoV4oniX!zWudLWW(8{bZd#Fu~I79_w^oQvSf zf={~qPYMA1)wHWQgE$n{@R1@)!YkelQc^R1{G^GnQxew)Zbdt}H7PHX+Z0L{xT5k` zjwyfzk;;%9Ch;OzjHDFY%Rk2!$-npx1vYN5bCD9LJzifo6PyHBX(!=DS~E5RCXCZz zqnlDoa1Yl&)c?)o0lo<#DGyB3a>+_;PtJ$RFn(n=u(A@SJ2KX&3TClsd>yJu#z9k{ z%BY0D45n+?6`Tx1shRyTuo&|_#2GNFY2w#Q^5JC#u;FNQE0)1C{NoFCN*7gCl%IlI z`DP9wSH$eu48V0JZ$a}aHg2(->A*4x^K^4@O;KvnG}gMhbiALzREr%&duN_LMdE@$ z%4zaW+4;f{)@($@aw4~tDO*k0tx2gIdh)dxeyK02l0}o-U_R%`B8|f83VxE)9Kdc^ ztH9;_Vm_rZG*o#V8r_1hser%gMc(-CR7?+Yvm_>NFsZyASPKUtsk>2LS3GrUBCblE znj|SI2ow~SLbOYvT2jb2hD~0GU`wj(Lz4v?_pV71B;3h-f81!g$sRRXt_r3Z7$qrf z6Em#0rm(EE=uA93N`;hTvPQ}4_QAzG7>zkcxkfpal*_$b>MGp~Hm;e*2#rPN0H>wZDJx!+x+F^~%VJ|8SmMja`uXJ?@3ZZCE-LZE6{=jzG*dQ=lH^j@ zyoGpHI&ganS+O71b$#aoGUyZ_Ep!T$Fo-&kWQexg_SAygk9ulJ!>Idf`L@GbSvmm@ zHME^aCB(#~Eil$!?yp2`FTYRGELmZ&L8kMgI3424w5AI|X#`(io2itJZ>h#rez*xx zSy)k33g@KF^!WyWaqEre@p5?tY2zV-PAH~{6mXU}HS_x6BsIB|;>01AI&r{H>sT?| zStx^(DY1Gamx(6Qrbij6d^oIxji*ksR_DnR>!dnQAKjV`@??E<8-Y}=-6>E3NNUlh!NrXY2IQ^uPY`mg zE*$_h?afqS(=Ka98eOHLW>O_&$(WE*^I%c-QPNfMeReOnkmtJyI%R9VF3ZrLl02zT z&dPFMA(lmu!U02>e+-;gmX3vMrz-!&kT1}OIHkxhp!=5cfGJ-hEzxoLurb0Oq=RC9 z`xrXCx}XfAc?mchGX`cixaffWQ*mW}89#yIm9Ap^7`-%;i|7b0He zhvio^z5x4zUv-rhs4EA|Jf*!U_4P;~*G!ttG9<9Oi727xYxc_29es#5M`K==AuWbvsD;#q^E-gG4DMa0{DJ)_WZ+9Y!(vMb#m|PIP2%t?*|{Q=#f8b& zXjxkkZVu)EaiLSi@HSR{CEUjn$q3m8m94HWW8+u>;}@P3Q4-`z|I{}_Rumti#7?X*Z%*of>A~b;Sg2X%}W`L?m z;|nWjHo(8D@{8b-3yx}2ZbFTLJ6*|(eYDQ6-f_MYlM4S2f)Ampfl*mF339EL<`}#> z<-JE+9VS98-1Aa6H(_C3JLnfy4THQ2Zpd>jaE_hBUBdLlZ%m0#Et|GCayOV>7FCuIr3`CgUA%|!KF4ibM zo%1U5W5JZ^3?^58S4TvGDpyktYaDfi7}GFZ;I1p&{qTq^?A7b2>f)N}(y}UeJ_`RB zE{0yO62_|XT?d}vDu?kIsIFw%vV7MGMF-Xf#C<0hf1B13uCW!>F7}UV*9j-MdX9GY zWJAFO{3lK%Plgiyf^tT0**U4Q5;}_B%5!!(1QA*UZ}`%>I}HMSa!qMjG294Gaat}c zlUvw#^{jS5GpqcrgV;f?f+}c%@QiaxelJLMk>xpu!GO)L7?*RHYw~0lY*JzKG^Qfw zF!2Tlm`eEaPZN<);w9Ocr?d0%JotPsTocubzg@?>82@)cV<6y-5pcmmb>f2^y!`6~ z7vD#~8x#0TG08$^S5)>N@vq~L=iS5S>>N(>t6k-Xxq6oObopzG{Qlx97i47V_?q#q zs+s_wQ2oU&F@qd9v7joSUCJB62hs#?w*$M3wl?{$f4SVu<#MreD&aE+s!Lq3 zPjsEl-zSyqwgTP@R9T)F`Mm2!z#qpSj~$dOSs~tZMMaZRY^@9ImX=o&OuhlEq8xAy zf0vz0%zY`wso&kT%-y@s(S46O_PE@B1%*Y${xR$bc0A03utgqIP*&w<=QEy%%vqH! z-X_?I-YnRCK*8Jm&qGPxndBpHeezxY=P`=>;LlMFFeNO{gm>Z7CzLG%ZHI1e!^ZnzNqLV;yj+@vYs6;8+{@#FpcE0KDiY+ z!p=P;ccK|~?x5S@hmshpBl+GWf3Ii{m~a@2liWsf_gxT)auHuKrx|3Wa0mxTB zy7Wk1zK2r&je$%0a=Dx2vYyuuK1bB&pNjmoiwCaY!z+;Ou&&8itl3e;-^J#-fv5%GVuB?|tkxe9*`EbdvH!S9MtP?Q)(*9mk;8)1t z;Uu}Nf4?IK{=wz{Ai0dgS*OkVjmwW$E2r`Ddy`z&^Ol>R9mM5Fl6+780v^LI$#?PRQ%El3 zfBfxBy<9$$F5idbvOdprxc+l4??ZCb zV(jyM`iOCNBFW{taPwE|Hu3U9NiOqh_h09U_*_VGk;G8$9ADW)UcQ3lGM@i>;@3(p zzmnv#Upz1D;pXz&mGV>iEE7c@BDtJD&)xLP23~#z$z^-j)m{ldCdSxjB$xU8$xoA( zae0GM{@UJmy~gETCSe3*ejafBV~25hFOo|;OL}e=^T0roOTWMLzGo#bf1y&|anm^k zTwX(R+3#1~I`L30znSE6{FY=D-pA$llU&BX`j_nWT)v3pGR_sJxh8P=GLp;wop{K% zcX9bgB$xB^#shl)z~x^lb_V-Dy`IY(l=AThZ@q!bt(RbYWPR4>Z0W=0T}dwI?d&l< zO{rJy;uTAFV&nCGXUmG2x-{bO&NG`{zqx6IJTplF3%)=f- zhab)5A(G2@jywFkgyL;kMmND8~zV*d2?U*5+}wEA-RlO=^2wm{M{s%{bd=w^?qKyKgngk zuRLh9aCL@af7IG5xA5}kkzCG)FD%Ml%H<^_m*a7dN6sI><(HCN#^I^cE)eVBZ6ufD zV&2`4{=&;IBDt(*puFSDT>iXbfADFm#k#+WUmy%8p&n8y?%B1Ib439QvS_nmw&_MPbl(vCoB{5>T;6Hb?TBAOU1tTQ^o%2v+lW$ z+u1^L8UGvmY!mh0{W6S$tk3v2&OeTqKSYra>(Ec++doMz$Hl$>u5aMwPbaw?7k{2{ zi|En|NG{`CvhDOSynHpuWq%dUxawRkzlG$7@E7n{HRj&i`Ewn~#iRzW*Bx}%8(jV= z$$Rn_@OY}n1d)2X{TtgQ%U|*216Iy^De`ecr;2fRHpvg*h2XK}?mZUp=NgjBdcHcW z&nzy#mEGnGo~vVv-+(Vs_S(Bj)ozKOnixlZOs)oyO(6uA6pUH}O2!b=}0H z(DHTD&oqwYygKU3o?@u|w_i`~b~(;hV)FrUxO$I~<9Ix}kX$S(@OtD&?Zy7BJIUof z;kq|ZUd7A16+4|LSG%~pwbyIMlO4HVy0GE7kGY*QNiO66{(;{w=5im&<+>jWR*3bk zN-5uK{rzGcpQ4oCt>*FoEpytUVri^+~$zg}Fm z(aY_$_Ih(U*^%-8-TImcNxf44$A|s$8@K-@$z?p3j~aV0m;bKVam`yG*3;dCm=7|Z zXRg}kJYN1FlFM~=$;>}{aQR<-{o9xP%5{9$Q?HhAzo(O2_SZZ29J-my&m}pw0`^Ha z-(Ab)V@NLJ@ZHA!YPkGTrTm(UKJ;_>-*w$RmFgq&?TNGZdXd-X4wB3KKXUm^i@1C~ z$z@($yC^F5QFV&kj#tkEr7Eo$Wm2Wu=~T=Itde4cCxdo&!(+WbDtp{+}!D%^JF24wr8s zxxB8t=_9;uHC>7MVB>}0k=JMV6#m?S7+x;x!gl?S^v{&OuusZNRrF?yb?S?tiL6Sow<9z^cF84 zB)PmkJz&D7mB;q~lBa@pR7=#65Eax3Ml=MG-Z%m1&Qi+ZTNGX9@_vPy)cwdbWH z6+6%P9-GeNR;I+$)#H#FE}u+t>>b9gx_(?8mtRM6Iq!8o?ArBQeh10rdOEB2k6~QC zfaJ0tCl5XDH!gpfREcXn@)pC6N4=6|fPROIuoiv7K+Vxr$WUxPK2^UpqSO?{8s zKY-+7@WAWO=GR-e{D1Y__-JacT*ocHm#*dQ{j1ND`;%Wee#b6+^J(sP2+8GstoGZp z#C_p>lFRw$=>7>WFF%3g@|^aFf`5p8=3jkY9U{LnZ==2!w($BqKysP?Q+jk5$>ps* z-(Ey^WPWx%db4n~jN~%^+uv6s`s*W-%ed{ftnWbX_j{7d_3qp=#^BcPTCAa*9}atI zjuQy_l~~vACAnOe2i6{a8MnVwDPQ)*pJFI{sMKfK z9|ceG@~ypJu!-!*JQ;u7DsX>^Z1eTxt(f~%W?YBBZrCg< zO>#M(jC}2$D3Z(lv-g+yd7Pg`a+yEV z_RkjcXBo-m{`tx4#(l%f-$Zh`A3k;W>l0l5sA6Z!(SQ8R<*$-FhrfWwmGjaWB&-3StNbce<;PJX^{VM)^1IcCn zM4y`==GBKtF5@t8;eKE6@+(O$)`hU791zpXe;OkE+8%YIxH|1!+WKS^@wH!oPZlFL6J zxr@Jm$20T$7V_r?MSiL8kZ-ws?`c?n+1^7Adh}c_?@Mx7|1QhkJB!PQl3eEVs^>kQ zars!1%lf=}Nl;8t*O6St|H=!mT*%8mNOC!kj$K$NSZD;WEJxMO> zxolG9=UjdQ$z^=zEbl3<$Il_TjOX>IzJEF|UrBN~US45Ohza^;lFRGOqQh5-)L2Mz zxqsd=Jn{gy^Crn=h?Tv z`jN}uQ_8*^gTv z*(UmHB*|sJ+?8JY-HC+-c~KWNJl1sg|J{#FJlDE~5)HAYcBp=$Ry7)N$ z@vb2iV+S(+s&^mwGx<#|BzJP&$jcA^~3_i;_c<9ma^$W+rzx;wg>9P1Jpn(IS zuuhKB+!19|4&7|mWbUAva`CysW=0!H8fJR;5g*Gt2|wW7%$9=FFxU^jvgmaGq-Mra zP#T8FHGK;~Gh+%)$KbK>>23JTBmZWR{2~0K+s%zOFOr7gK7ATLfVy4th6U4ca&+St zf^EMMeGE&c;ik9SoBVE<=HW?&=@>g2J{XQ)jF_)Wh~5fM$D~{2D|}l6q(BpMTCz`F`K#X0@f#FrUjmC(S>x*vw=jNyE(1?qs&ow{_4b zg^fm9iwbgP)jywLhI_rEvcxqDFR|JuE~A+Tl=^#+$Gl)m& zLR94|i8H!DR=Kr^{L=-i%KH-!(gnZDtBFVH0$=3|h%=YI{p+RwgY>+6G1f0g2Lh`7 z5yYePhIExrBhKgmOXbUndk)w8-zxndspozDSik5|dR|7H_0jXW#65lWd@b?dv3l+p zL;iF1dc@$D z^N~-2C-4uYnm%I0)%w{l!uGifu>9wWeK&De5pq?(gm|zR`MHpPsr8#mJU#~bL?u60 z5ci4GFu2bK{!`<(kvP6Onq`(?yK7whXkmw2KQ`EQE;a>>Q% zA>2n${IfEO-zBJj1gvAJzJ09&vr=q^rh>BXU}% zn)Sb(xEi0FaX6Sj0c1b;F z@`xv9>-A?4_ws=U4>kW56OV-jZpQ1S{{6_+`fnv3nXBjB1K2+MJiYz?#6$D-+$Z%P z(c7OwJg@+{8lSnuV~-<0z}7T=3F3*T^?dflRR1V)wf%XO$OA7TzepKBCB);)^!hW2 zdtTP_I^yA1kS|m0*GvDeAy@O)S%vkBzk&QVC4aocgKr~O$L}=ak=4jARrGDuXy09r z`~igzAs+t-`Pa()FqL@hGvsP~*Gv2BkQOY%!d=qjt{<)Bh5(e-LuR{w1#Jk0$-_ z!Kfcr)|bh|J%=NoqV%8jQuH5l>+2UF?(TzJjZcWUt1t4$mGyC@w4aMyUBB#;(ZBr! zbZ@_I-KCjp7?1-YmYP9~-Q(9{0T;`frC zR}+uCj9ksXC~^C%dLAbpSb_X;Wqh%z=->4ga&>%+CLW3*ze$Pj45|Mf*;m%54a8$> zk*o8+?>cJ#r^t=QpO3iO{wbs%jibKG=Ms1E3txDs?ORSfv|g{jm3V?*n8QQ0-~D>3 z|5tk6pLk@0o{uJO{|335Uz3TmjmRHY;#()}|AbuKzqoI}`o(@nuIArb;_hw8)%fI0 zL;bJ`Hs+f4`-n3Oa-;sU6IbV#AnAK-sIS&xYTQ zyXgJb6ZhiV&P zxaTP3>i8ZK!uYy-BY#dA-&2Vva*?a`^WKd5-sAQ51H?W3k*oDvKs-n{fK>bTThM;| zB-B^)!%f^bP+z}l;?Y6Kjq)Sb0*|-A6D@Fds=oa*sD7T)k*odFK-_(XzI}af#rTAV z>h(tu4|?_bA>#32di@CT*l^_P{IHR@`y9Rf+!<8AQF=a#c!D47YUcM^;@Z|#kdk5-!FW1|jOq^YXyjlB+2d_r1j<2=E`%@$lPvzFg|RtLL`6ss8UHSK~W`xcx)q>iC*MJh~Qnv;HUU`b6(PF8zOo z{9Wbzr^h{5zu*SsGnDh!nZ#Wik*o9LYN`JNa`k-H6-N7kEy&gSPbMDw8M!*XXA}4S zid>Cflz8-az5NE_u0QnLc`vp9Pvq+O&Lz&w5EytEt*>_C&Dux$0SoG@@taLN)=tki z5O;Ub^S<|C{X?CQtNw$;6P=N(@e338bwRGSzn*y9q4(eYe)R8g>g|^hkL-h7tzVe9 zy*qNX|D(i1`|J67seho}zHKh$-$BUtRq{WFcqj+Cy8bOC?(2=5-_A*$zp5WV`|iwl+;=Vid`Z416yO1wd`ak-6?F5O;rpT%BKSPf&cmMsAcJLE>us%1A%{jo$w>;+~CqzJPf6JLGD9tt8Gi>A7<; z<iDxgh5E71$bHKEJcPJ=FXU?fZzLYt8@ZZ)xlg10#6EgH zinzDC-hM6d$N|XJ`Y$K$J{WmdW&dNVL;v2xk#|(q=NZI(eUYp0|8hKo`o8|i%U~Oy zI)Bv@kNpd|QGUl;;0fYt{On7p{vNddwbH+C;+|8HtM?b?5>E_8uCD*xpGEs&{>D9c zs60U2J4(-&6K5A7SM%Gs6zzu!^t_C?YmA;piAOF%uFkKH=g_`uJaTpY9YQ>IF>*D& zA>!^Tz58F9~hdjApP(GT?ctBD8J>h+y3qyNMwdfuOS;4|b#<15$#54FI{_Bye^GlexYs2>2=O(V^=UUQ_e53czUZMQjh+N%&yNI*z_4=cU`+h*K z`kzcZzDchiChqx3&!fb{oAo?Soc*ll>{V=^?-xCH5sxjU8^t$BTy39^^yA(2{)5E52Ow9+XB~0Rf%^JwCLTTrxexZoy3Zf7Ly#W>Z&OMA ze2wD`Y`^DFKsqZiDFL_VB{%GRC9ONe`_NNe!9;Vk{K%5{q;PTc=QD1YW|cEXD8};h`7gt z{9>hjb<+Mx$oc29bouK!8M&Gt8%aNMir&BDZERm+fS&g!?jEGKUraoFDsrRxx$^Y- z(?~xwSnq!^@z`m4zLvOsh~B<6hV2WUf!wHmY$$Ry{zpjtGxh#`#G_t4pGusag-}R)Q7=ijKx2?kVdq*Ny$8RoiHVXNA1OEx)s{LAN|2))J<2Rpp z?0n>Eey%0%xd6F3zOC<2{VznWj;|iXL;1-6t&E=`#O(!oK3VD)B448DFOdF=k*oFJ zKs@S4uGY`_F4muoMg9^TlclaN9^$c!kgNHzoVdLV`6&kd<0G!dZzJgk#-qMk|LoOR zzj!%vH9z_i4+W5`>q9khS0(cPO8g?keO1WS{HZ4%twugq(YL*a^$ScuuEuu&@yJBv z{B69c@hu}BnuOdaesSVz{1%XY;u6$X+qaUqd$PWMn~4W5LvA#_qr}zrb$_4o=W^6n z`)>g8KoGea-)iEqEA;i7OWb}H@@DNL?&Sx^@ZcZwNR97i;*qP7tK+A~2h@MpB3JXr zN1R=UoPVjHZhZ?9SL-*M^rP3Kz8at9#NE@7tNpu~xaUUX>iBciWBr3SAy?zupLl#a za{e)i)cBMU58RAg9baMMu3M4wkAbA>$BBn$Am5~L$A?(I@a@R?$G~;*V|O4QsqD|Z zr0=^Ec~G%GpLl#0@~aiTmUv(`a>M*4uJ)gO4dwUUsIT%|;+}hutMTy>kA{(}@t;B5 zdmr-4mHICy9=jho{}@SX{2Pb|9zd>+&%PgF{Uh^`8?B$=2a&7!H(Kh?N3OPiGV#Pi zdOnx9`w`>?O8r+74=>Q`ZzUdoRL^^?#rC=QjU9NX^&3Lm7t!--;^BqJ)%eaP?s)>a z(fE%NpQN;}Ug|%I`sXV=`(qj(Pa#+PuRrnl)5z8SDJGt%L;j>*Ej z*3YqiflrX1W6-}b;;McR(vN?tw?BY*BChAf#M$S_zf;;jMe46ZZnS=S)+1N@FG~8s zFZ6r^@#vSx)%n4`4&&q5uzmj_;;R1vq#yel_0|3>BX0jzU%wf|y&LuVONocR)ARMx z|M$p^;^+DSxw`+%UXSgMB#dXA{t>x4|IQ%JHX~QBf0q*vZqe&E5Rdi7>xeKT_P`XWL+WI=w3vVV;ex3@#C_RoN?uzrEv^t_sQ%!XX8|6Jns4#?H(o0U?( zqu#!41I4Eka&`RW5|4C7uI_Kjq`n=wTE8&yKo>nfVll2kCNn?8KRRr_($j~Dsc)aPG=keYvC;)%h?RsFTZ1E+7_e~fsR zlE2vrY+w8g)K~jw1aaS)$kqOtN<8Y_zJJ#+PSCymY&Cnvk}PE^Ap=9%Ad25 ztNZU<;<1s)2N}#iu5*y9?emd-aFm{hh{w-GZZv+~=OI_;hbZZL&PT51UtIbhja*%S zZ9iiB*@eiTRN~v8cr+imnm?0?dkT=N?O#AVTuAj(cr0*(6uJ*5cGq%rN zfn3c`FY!PCxmv$k;_-|1JWSkMg9V>e=G6e1mq_}|LV>cV#J%ZZwt0B zJ`wd*?j@e6MQ(I`>z$<650Jj^5^T&;hM^y8Q5?I(yQ{*C+& zCBF8bDZhir)$u!oxcy4K{UCAIRmj!;4HFMfK|aV}d?tvi^TTS=k6eTL?<)0o{6h7g zid;P(8%^AP{r3I)h^ym2MEcf4$Y(44zg*UDj-EFVx8I}ZNBoBEi-eJ@`RgO@zE96*Nd5cue1+710J*w; zZ6zL>r{_ofj`d4Ch+K{TXyWdNkgNOmDZ~R0BUkftfwcdKUOz7FKdR@pt&|^+Ay?by zCLViS&wa$*3z4h&7b5Oigj{WZgm~}??V zZ=?KNj$Cb@hq(I{Jue|1con(2zX%bJuh9FiBkp@$Z+|24@EdyWVEB7<@s-Hc{_9UX z@Rpv}5@#{wYW^%H?pvkzzn*xQe{l#rRQ+rd){m{$>-Q(_c~8%ai3i_Du8yy1#6utG z`2ynMdOcrBJo2HQZzLXFgIpb-*=B0rTI6c}^d;{37`b|VFq(Mu6TSaw#ABc8?Jpp1 z{|vcWztzOOpX>Qn;-PhV`#mh!zSw%?>iji?xcy7L{c7Uguk?I2@z4f6UoQQBt>+u1 z|8J42@po9U{@#sx-k*5rJ3TKZ9{XPJe;RRn0=YW=7ZVR|LjI7l{;wzQ{z-4&m4)>W zY(}o;e;)DR7QKE6@#xRU)$_#=aaV($N2UE=k*nu33F7Q`z5gEVu>PK{diz6&hyOsX z&L5MBvu()L{#_vLGx%UAJk%SI38SH>_X6j9iWH5yY8QuRnyiCkwe6-)iFF zcF5K7GgtcG4LP}Wmx}g3V#lKhDcj*03B_1Yzs^Wh(@dWXI0N0%lxb{T*Cu00g!Y9TSkiL(2 z0zO8Q8lR=az5AekPlNUa_eIXX21pnG;Qq*a8Ssb;Isck#-S3Ck4JG)bkwTQ3LKF9`x$`afIGH%R{moMmJDf+O|%PU4<(^xRFHjneZx;!y+clm5@u z>(@&E=jnM!`afUK=S%+vJSzQ<*6Y_x{}*o^p@Gq8t zhdTbe#94u!mq`BxJShDa>h)(z|3!Kpk^YPIe1-IHz~j=tU$5UF{g2UeduJN|WA!|T zc+`MW#Q>A|c9+v*c>GkWR|1v#~N&n;Ze1r6Fz}fCJ{>%0H zPU4;lJ$Dml0X@$n9yQ=T>HlKAey#Lhsplc-ze>;NOaBHuD*adM_3Neo8a+=){}c4w zW~cFQz+J?H6ZQJJ#67io?j_D9>3NCtZ@`1n|0R0;nbQBIdLEJfC+qnN>ED3IrT@$H z`VG?mzxCYSg~tEodY(f(YQR0jgF(IiDB_+g^gJN_U#aI)rGEn+mj18O>(@#DQ}jG0 z{a>x;8>D{&&i0`3e~n(>N!)X-p1X;&sd}DAJZivw(*JdO{aWe&dOZ(G|2OFQeCgkS zN2UL1di{Fo|3*DeNdGtKxveXWe*^9!9-OY%&n4~&>A9CUyIIdmq<;e*l>Tqg>(7+_ zZ`JdN^glz-S4jT`JTCp;rq^$f{%_ZFyMxC69eSQaJZiu_#Dg>S`lE<@?$q;u^gm0_ zr%L|@JS_d+rPr^M{%7lXO!}Xr=NqJd1J3rO@qf2o-$~qakDj}Uv#_4$5sw;hpY(sP zUcXlQzfaFY(*ON>K41Db;8E#+u3o=h`hP&r6Vm@YJ-6*e*o^p%-3@- zarTg&mq`BxJShD?tk<6@{Xe4T5$S({p0AMp4R~Doe^jsEApJk4=k{(i{vX%#9O6*} z?jatG==Dbt_bk-&fb_pe&!*LM>4 zJgw($;;c^3^N2?cxKH|jMz3Eh{V&n;ko5nop3j&54R}=gU#i!ym;RsA^Mv&Oyq??k zrtxpUUBrVg==F1nd!l;oCC*;d^AhRbfCr`jm-PBGrT=Am9+Cc+>-h@l-+;%Z|Cjap z4buNBdT!r`#{a8&oOUnl*q)bp71 z|E8XAkp2xg+n2`wTY7ybanIX&?k3J+dY(r-YQTNc|0=zHt@Qtno`rF8zP3*Kd&iKhbmhel-3+)$<(UQ3LKF9*pbtM-lgYrso0a|8qT` zD*YSqu=Kx9uU{wquh;XK^#6sPZ;<{CINP7b|Cf4wCvneLdhRC9Ht2aC@u&g!N&jE# z^=qa7Z}dDQ{eP?H^QC_S9+mz#>hBV@1^p;-qx+{Z;_Cewp9}jxWXAfbyq37vqURyvcB`Jx zCmu84QRzQRuU{|yx6|{4^uL>)+YZF`#SFNMc!>XSF+9}v=Mwj}*K;p%dj~x)k^T*M zQ2Otv*Pki-8I?|K0W6eh|jjZrAf1;xPm6As*_Y*B?dP zyN8|!q<{X!@S6UcD*YSqu=MZH>(@#Dd+K>i`rk{>H%R{moE=Q#ubW=qN!;tyb2oAO z-g=%#JZ8Xs(*Hhs{aWdNUp)^=|K0U`zVvUvqtgF=di{Foe}6qsNdNqYbv6BO>p|n+ zfV+r?TzdUn;@$)G+)Lbkke-)F{{}oL{U5B?pDF$K(DR7&e~6y1kp2yLT>3v$uiqg3 z_tbOyAvFGT^gM@n%z%4{hYr*0k0S2K|%BKTO=H z{t@D8{Q|OnC+h1zmAKoZ=V9Ur171fwauVwQp!9!?c=#0LgMg>*Z?khSzKH?IjryMr zL~ay6J8>g@7jdKbxrwXsbIJM{@Lb}NL0CUk-%C7js-Bk+cjxJOQ2ICEGo}B*di{v> ze;RVNe^wCp4MDDsPwQcn|09qa#WzaasDEND=*Nj0^-qGh8sCVl-`V>1uOJ>6sc&DL zc=W>Uw=YKAsD1Gk^b^F5+Q;(s^`G_+jDOUC&m|u8>D#xIc&udm?TZsPYG0xSea3%y z5*|kFvlCbQujFuSU(A39iH9yi`)dBqBpxi=e)~eijoKG(K|ey=sC`l5YWr5p`i;l> zseB`GPr063kHGk_3O(;mJW70oGQajE?z(vU@o^J3ijSuSeJ^pN`1pvc?H?lRSE+Ab zG4Z$opG-VlrPrT9+*hsV3#9)VJzp;U8}PN#{{+-Gnja&?jp7?^K|e;^D86yxYJ4}# z`c1_8spBX6NX)O$Bt6d~9=ue~rw|WZrsq-OzRUG|D{=1?$kp{Hw-?qgd>wMb_!2ja zZwvY{;)d}huEux0tl#xmKb3DK?z=(Xe#cSRKJSfs?j`P-uIJN;yKmO>6~tY)>bcd8 z{_VHvxraErL(eA@Pt4TwI^ywJdcK)>Y&LSE{*4ni>fb~Q`fLu`H|k$Iakc;4y)iy9 z;)eAjZdkt-^x54l)Q`AYzdTt#1MVXpx(Ds6`nANpVdU!k5F+lmPtR8pchA*xTOW*{ zYaa3g;3@U`Zvb)6W5_>;Jp_C{2UfAB5BKB9jpFYiZWMoS3;I6dM)?sSuEsAx^>;_G zek!*ejqOhua2N5&LcM-2@xUTI_Y!wMq30#izX187-KRZeGPK3Ct z4mtmRxzzsMOgz3subqtMS`PJpLhawf>&t zu>OIydOn3X`&4g#1@Xvddj0HNwC`E3=U(EmFZFx|ao^W^|MkS}8Y5BX4d(&>AL zAy@M|Li+X*$kq65CLS4yd^653CyCC2|8h^n`bS0~SMw)8+;_g7FD7okQ18D%+V>$3 zgU{6YxxWYfdkggXUgC)&-l2h?njZU`O`o={n|rBds@$JgDJjC z^!A4kckws&z(b8shI}lHu1!3djE0a;gx#c z<8<`zeOqt8gm_{V@)wo$VFB^zyL$cg#C`80SKF5}1pSBVk*o17A@2D|Z+`*t_{Vyl zARde(SL@&R3~K-9$kqHTBhJ3i^9b?CS9-pgxbGX}YWs4BqJR5$$kp*RnRw&}jU1wqaLS2!o z>q9Yd_g;EFpLooPT+OeI#Dn|l{kw;wfA{{#)%I5tkGb^vb;N@Q>-kn`|4=>mj6nbK z96g^xJajm6H9jkdyL%y5*U#*;(SFpex9=q$I9ktV5O*DmT#Zk?w4bZz-AAH--#?M7 z`RgMdIzjJ0Ox)wq+h0#Selqe~V2#p!|55N1z5SeXsQ(A)?Uxac{c7T&tMvMH#G_XuSLgo* z;(@7p`~5FO|MnY@tLtx&xbH^2ev~*1Ay@m)nveF~x9If;5Rc8!>rW-l?$GP6ARfL` zub=Hh|FOID`a_5Z?$+yvh=;>^{TOl2{d#>z0s0R-pw}Nk+&*8gKa;rUVdU!gt|y*Y zfLuLa>0XHbBaiF#eZ+l>kgM~9z(9q zpDTz*-_`49k3s*w_mT7OU(}tCun+Y5UeXVLsOK|?d)DfCJ@NP_dft63)-U*(p8JTq z)+1N@XD)H?m&n!mZ9Q@JHF9-*&ncn)|5oq6jJW4}y?%svJfYX$Og#7#ay5T*OVPjQ zXTAPp;_(LLYWt(a?Y|>e+s`gS`_Vu2d;swP!|%aX^`{bdS&*yoTPf{lAy?aHA4mOb zL#~d$5yV{`^?WArXeZ=q`_~dr?5@}EUWWcdd+523`2SIM25?ms*&lx@3lx%8JvS~p{iD^km$*#6qvPo%)NlD2j6(uE`mX!3DRyRp0EvYEkWYdz8l9Gx| zHrceKq@vU!{r}E8=gq#(-nsYrKA-KkGxPnOnK?6e?tSkeB%bITze3ux`*Qo^>iMNr z+I^>RyM8{4|FiTTfC>yT<*VRxU)Y~+Dnq1 z+smXqWhA%j{o5k#zDu0j<8I^rYe#dt&fj!t&raobeSK9*d-N5~?d_rX>D;c@H|cin zKYJ{<>+$DFd+gQD@oS{LVFI^D(}#o(zdyA_+OI~V)9-gpxrY6=_HvJQ-?i@kY>)O@ zkM`J!?(qve+FLx@Q!?G-mwUAPu52h&y~U$FWs-aRa*uXjmb*XO zqrKLnJ@y9o_yr#AEgtPDH@e3!_h|P`cK2s{wAXsH$7Z|7FYsuO2_6eL81BkQzuMO& zFS`3O{HAGNbabG*zXYGDC!v6^hJF6&-yNpcMYvDW%fEHYFTsl69~XUp*HOnFedU7g z#YaDU)FV-g@SC80zCQFHyt>>KjM^m>k77}u2X5wgR}w_8P@GWp6;zr|tv9~Zc zfEap(I4%XpSBL)}FPs_Q6!-DbygKo}#2huR2z*J%%dlII+?NAiO74;SD&R}I{m6aI z@MX+Ca$g^;aps*z?n{R+JMYMSh44+k>&SgI@a5(oxvvAhynBw^mwz*f%+?Nbrd)bluX2W;j=_B`5 z(huoAbL2ky6F2@9NA8Qkug-{m_Q-t`;On>Y$bH4|#s2-see^5B;#VKJuM@t+=a1Z% zgdgb}w)V(<^iP>mUN~|e{Rnv4x+C||kA`NvbmYE1_)0i)!;$$Cur<@+%YKD@H{jk& zFTZ}CxO_qI8HxCO@FlM@Pk-NpUjFgwxh0jKhlsDFuc}{Tz6Jl6UjCtqzk+#szG((u zCH#LvlB~y>*r}2UnP9yTiG`wG`>%j z&tZJ6@HM@w#;1K@?JxZ|UdkGy6%up9#xH+_AX-?^5%6&Ap#E^b-YN z!*2G;=P&=gj)J4*_g97Bs)aM_y3sv8<*f$3_Afd9k@z~`i*Gw}U&3)X-@Z9AALV;0 zd`sKeXY#G*C;2A66#SNN6~9*HBW!)@z#sUI`D^g(OE3R&#XIbSPWWPfRQ;?|zOa50 zdf|SupLugWtWdn_ht_E-d`k~1-y(M(<)I9|mY>!5<|$uT-s-_e|DyOA&OD8)6MV`c zHLgjDcbHESHgl2h`{3JulZRAyAI&ERzJ{*sGy7nO@`dHQj4qle=FPeeP`tzV8sUrY z&OZ8gVf6Z+`=rD98aN*L>!p0FRe#Dy^BN7`fs@p{`oC?x56%W3-;eoQLg#BQ#jANy zKb7!hpQ8Hdu6$wpp&5M1sfypP<`b6hzzMjY$1uMsG_Ku>SL336G#b9l{_Hd7&^~Wp zK71vov+u8=>ox-4diV~+vCrHuzW4604ZilX*f%fK-%yo5hxx_fkM9i|#J*=kzER%3 zEcmJt+4p7WzLx6lqjfHYZ~6u7GuO!s<&$-z`%Dh_r9+vgOD6aVJ+DcT;`b(#yYH_2=*$n*(3TIQE(R?@+$5>#+=c?bXbi z{kmE44*73{&wnlZ?!_7JI6eno;3S+cH>r8`-}>uwOwEh(F&e&p)7WRu+X2ewkjH%Z zd^6SjmMEVZC+*|)@TJ|(K9k24$`^Kh6ob#3#k||~5$KEg3uofaaE?p!P6l5xo8y*; zo`Y*-`??;!#47fg^^L$6g)ijt*0FDS=sfbs1C28ozLskC z`9sgyBh|bd_S0ow{(xL*oq z#-q=Ju<;~;ANEg@)dX?d|J; zuc%r1HhB9I`s4lUPUYL=?VAc;zg^0=&D&Q7U-lQu_o=t95x!MlvTt?hT-)vK3&di- ze8WETJlyTwU*Crvp5sQtm-i$4%zb~3@;R(uK70i~vCr(!70TzZKi9)Itdo7`;Im$O z`By5RLw{|tI3JJh2!3v1uA_xiVk*!tN8r z;H!>R{7h$_uJ0P~EyppxHgs-JR=mS}I%qz9*k{hu1>U}dGjM&M#J)#D`ziw8RQUFs zBI67_ColKzuMEEIGuUUI3wOHv=-khTZ&e)o+|K<@nvZa1eO9RWVe6AH0Pn|s%W)0A z*qNvG$pYVgCi9Wznf6U7eDPavm4O?*LzPj^d}-`8XuCIzjQ{ zoq3w~1n_$XF>kKxQHpoCu8ZL-AIv`avtvGgs`5GP=Q{ZM4P~Es|G7~49L}vy_D4mCvESq~BtFE@7Wp*IwIP&k@Rd4t&|8*=P2T_Q|@^&_;tVxs-X^KBj!vfy)!l z+&_1C&!ZE*+$+@lPj#OM^_O%eo`0`Y^B?T)3(g)8i>sbnJm2hTX?sZ>J z8h<@}4U^P(4l7^S_&dS-ZczL_JD(7b`{#{{*XMEA`elL7p3J;?KHH|^tLuyAQ3~Ix zKdOE{RX*v5@|pv_X$teUyb?!oYa`%lsQ(DKR&XT|aDlUMeMZ0~fy?&bC_n4Lr3q)w zkx$k0PuM!NQvXvqKlM=vfR}%(;?+9Pbrf?p-jCnRKJ#3++uJt*zJ7mZpE>_~tMzj_ z|KV%6m3{JO1AYF!%BRk8%10f1nRl|!#HY;D)_)5X&-NU@OZZ;_1p`UvAYVTG3Y*N0k>!t#H`+dy2T{jfB zDFUv8`j3E%K~h$EaKZB*T#0Zd-+CXZJOs~w_?F(!^D_Hyq{@R@Us|WYAbh@Br1Gbq zTf){U8GOM5s-Gd={mh1M*h8wHp~@H5PX+kt#j2lyidXZYJT$`>`w08YedHYFQ~9Gj z^f?#%^-(oGoj(~L@uR`#J*N1((!mg`M@X>Fm@kR3ddmio||6rf_-ofMflGZH;zQir; zGkKh;#^;d73i$H2D&IVBUo(8Q@2UAM^!D{RALr8t%J-1FkMf@mU)6`~Gx=Ynd|~;| z2jB9Mn%8{AJLF?MeDR;K&%EF97$4=o4Zhf&>@)A%wt4p#Hw4%BztuP+@MXbQ-pW36 zANo}F=WuS9Qh#5tFZ62={5zG;Ausjt6?~`0xv|0ZeJSN73jf*igYs?l_9ep?eNg#! zc>89Qda}=)>mEM3?&{!+@5MfI-St)dgpc{f2$!`DMJfuMxhcSoWEpyP4+hqdW$N;(7B- z_L)3BqVHf{)k|FmGGq`sPSo^jF0Bi3_f>|;wP%{ zh0P~04C{L?^X589RlJ%Hy{~RVKYPw&Uo# zI)ADknpX{czI5e_V7)rvOS?*qPw$Vg@x_h6`i^D()X=%t-+f=u__E;3zJ`6~`Cgw7 z4$t?c@Ey2;eYf>QAiVrPd-qolU&_twyV)7kd}`+^+kni0>E9?1wojeptRs!4I3qan1X%X^M9k&usWo=DUxF)};enyl}lk z@7HFy$0uLHMR?x1pW~Z-y3*S>6~4?O_H8{%)@8A~kFKLK_}U+4pUK;1eBKIB(am&*XoO@`dF;9ei{Z^X7Sfn&KUv_Y2|M z@&fzJ_w^p*qj}Z9m+~_EO#Th@eG%|1Q`yTV5ek$Pe?@;|{U)Vlu1V5~ad9&Y7RpWBl7lBJ~eKjlJKzCp8 z`49cY|C@bo_kkS5j~344x2K99Hjgs!DW7v(^ZfU-_r7U_Z~A}OS037Ly;MI=^B;xv zX=9(co+f+yM#GoZ&OWoQQ@nlo@D+T=KJ#1=fp0y0(+{xEobwyq`=fo-24B_B>@)e_ zs(fMjj~R{guakLmp1r1cb)Hc_6X08VNcE$~7uHW9_$`N3KWn}Fse!Mc%a6hL^=3Zn zlrOBGHtWO$;0nP-dvKJ`s5IO!`*2>&zekwoea*k}IT z_=t}@pDPo_;Cb{q_T_Yyac*|^(S8rWw{#Nw+|HdOa0MP*aQ(qe7tXBz95s%x`${YI zpT+%u8M+>(Dc&K!G3mIzr?AibJl+a#-vs!!+`>NderA`quNc0RnaX$A+gAr)^(^H( zb%*DAcEXpK$3Am@4fXaVU5WcczVeOt_T|9WQlNY@y?qt%4f_lG%=5=X-o9q|au>4C zybtj3C1AhyxeA}>KEyt=zm}-}!uHo_@ckZU-h3{yQ1K4?D<8h>MeH;0?`FCCXngD8 zJFr-dZ;|qapMT)v|El=;&V2Cv8;kq(>b)E^3Wq^og#ysi2h;_b_UFM1pM%sNc; z_Ek`S?4`0eB z$`?U@>)|VEW}n%YJ-x@-246{w@(uO&#ZAETLo55tePoKaFAKitFV*~JdizS@%iOE_ zo8;}Qhp%Cu>TjC2FX|fHzrItx@$No4w_DL)b_e^SQ4YS;?_CH!{~>-_1Y8oh#0a=7 z8m|Wz-2dQw!kPWQT%8MH_sPJu=>G?vkKq?N^GOJu3_klu=FNT5Py zzYJWhaOS+2q{gGJN1AsdeEv=~k5uIgyY8bV;(qiC^X79Q{T!%17ovWW;cGvn`Wa#G zCkK42Z~w1w z`D&b!FPc}}BwT-|sqxKJyu-Y*;46m;S{Dt6);??;3D&8T#HSpD*%|3H(YoEip z-2q=-f|~cKs=u&#*Mna*i1}>!+{gSrO!H_^QuS{cQRlU-0*+6Wjen<|?*N~d!o11#&LKxo(K095FXMug5jo{0#WZrF_6aI+jL*dLk$2-TR z^QjR0u(4{~W9y3{1(palb+6TX`VUY zQzoc!_preBn0G~UNd3=@0FNb{_Hx>C1?!V`S zb6lF|1n^rjIc_9;A@~E=F>lV_ZO-v&+*#oBCNbYC!*;qKH-k&bQsda*9GAu&xC!~V zfqAo@E_^ch+8dcS`}{R~{2cJUZ05~5z0S^;fo~DsoOAm7&#>#c9(?;BIQ~6dI5GZZ z_V}IPQ>H}DC;SPYA5CTc)d=Eefsg$Y^Cmwl?c*s1pFNFvGhY|J27K;x=HKil^IdL_ z-v&N9hk0{-eDBQDKC7eg|C#ww9R9yQ*B*ARkDi9}NI0{u`sdri)@e5Q_**%y$&1TA zr~p5GCiCX{SnWJ++Q*IH_vA8fo_}2SWz=+x|90k+L+h%)FAp1k68Own%$w_5{~TZ# zKNWn@Z06~2+0e`H!k2>g-^sk$2V3p)tpne04)Z%h@h$nMbu9zGC69Txb&a_h*OPE& zU0w2?4!&V7$2EC$x&HFOx7?-Xx!8H0H0}vBo_Wk)MoFZX!+G5Zu3x^2JH+ix(1;2E@8jlNK3Vu}q^Cpku?c=EfUwtq0*N4`BjGgZQ zzvn*Y%{k`6$IZa~rjU7aJxz3uPwUi)_)ULd{!UsWdO569KH?_c&zza(2{ws?*q)6^KpPZelqyn2bnkf;8Z)G1HSwr=I;-!lM7!4 z-uE!`=G^OVk6#bI;1TBYLh%RN`A+Z+i)J@;f0TKAB)~6+b)E2MtiN#A zc4f@p*FKIy@cvScTM!z@NISnCeCA)7|4WD;<;>H#i@{ev&b-^X5x5oSk#J@|y5u_< zeESlPYj~G==79G-!Ms_YUe4oA09pn<<4NYte(7!J>%mtoV}5=pFD`s1jpr%m9}n>^ z<4>50{r)ub=DuXPJ}B=|;0u;B-->eZ<*;80!KIZmXRg!l)xU=byPvKHAO8&VChxoK zd@J~2|EKs*?R=kHjAsS&=A7AX=SPDts!;J=_}So>KCAex_V^XxSN%=#`roI7<);yR z^-9IRW{)3r8=ePNF>m(4I%l5NwHfh;J;%J;`JRQiCBn@O?XM-yacRF7gKt^QaVLfN zWp=&>eDw3ooBim*w}Fpc!@SvNi|z4aZpWb3GXGL&JPYi6I{1<*=FK_g5zOzAr$zSh2WH{Cd5L**K3RC$2d#)-{xb9UN`+qz*Y{M! zZ4%CmTmO5ru>D&Ke$NIq&nfnC*MUD!&AeIHNp`-2#`6mE=A0a3=i_GMym?KHXRMu{ z0Df2v^X7a?weyAG(_UBcN80)I;4|M)@rOF|v`)p~r*CBbDZNgYEC{}Hr0Xwm2lk_I zCXd~n;}V|?zP6U*8h*d}_m*MnnghQ4ABx{?=gYtsys7vdcD^2b_9n$|w)36fQ|c7I z!Okb(u#5dC^JZOF+W9Q-iElAq7CJwc+xcSf<(rvr2=OcId=2=Nx7B#o+W9u{8SgN^ zB^2Lf{4sOze6y8#bKS19$4>|EdzX3h{Jh%E=Yx-ak9o6yEc2y(Jb}g|{6v(4uh4lD zwvQXZ#cxw_XV}LPm51lg2E|XZ^GV?MXnu^Hp9+4<`yBu4P~Jy4^EA(7@I~91cY9u~ z0aqoQ*^m95@E-SU#7z^}AezX+3Me$9~3f+e7K1X&ETv4qsFtr&Ij_5pD&m<@3&p}WboO0RD755 z=YTKyGIG8QeC=1vN0Og<@C|#JUmw~JF8S%C@qf*{`P^umJwFL|WBlJRe^=;zy$hcO zzNMXcv){TopC7cJi@`^K7dc-8KIMDnO@3VBw}H>-VBUQ0rGKwP*trvP561t48c%oo z_|w5h?`Phemo9uh`0NABoA*aO?eQzYR~=;D%-3=rQ$Cx)*Z!nfjyjicq z_Wh6y-uDah=6$jYp94PSkQ&c^d;Bu+8HbrS&j-sRj`4}SVl%$xh? zYxel9;PZ}V-dyJ{L=C-WOo4!#`Lvjf}#;Y{4g_Ho4Bhv&m%)i@^F`3d0r9ml-6F2>sVLhzZr zm>(QES5xi$dg6~~{)G_lGX7TZdwMe;72+*PLDn2%)q#o%*KQ}JEKUjx3NKlA3CnPDGK8;vKHd2_zIj6dctNa`8P zo97`HJ{^3)05zWZ_VMI{Z-`UlSzzZYX*_2#Z_Ygzz8QSM< z+x;Nvemu_$XMWDWpM&t=~1ukm(19ehe6^Jafp=1Jp@1D|`I_qZ#-trE_hr-SX|Xav9K ze2#1Qfp$Ks2%i@uF>k(S>2K$gz!&|FdGk4kg{OH2z%RXk`O8oaz8vmL#o%g%Gx^iM z-!ts_v<7_pP>$=x(>O}O#|~%S?cDA20N$SqXU_l4>i30)jbk+U_zO9%xh^-@`Ptxy zjbPq9_pY_`72u1KnSUvC{j9U|jo|xT%)GgNHre^82k|^Ll6jLy3r~4$M*O8IGJal7 z$NN_n;TST*LQw=7Z}GzI;6MZlC8?fNK)Y#NDlaA9UDx z)Cj(Mf*QvTJ0JB3uIFnMzuB1&UjK-ncP;a7`O8Awa^cLl_3r}@8+S4If{AJz`uBl{ z@ipMHGnro!TKAdGtN@oMoH_r;*yq^@-anb+ZV%;UlAVt#!G6hR-h3Z8%b5?ZKgIu}_qekVH&Hlq zo{x2oOY2h%K4l8WHGHa_uK}Mim3gzCBkg<}`0|^W_l539qwIXlqj)}>#=LodG~Ujq zgKwD5y!m$_lb!kC`h%~!g?YE@r~+J*aOOI4Sf)AU-f6^&2^{$PL^CpG|vF|elwZhjdJki^!x{|ML3i1zV>m{fKR!N3Y&F(1jk$pPP<&%F7Z#AUu^;C=TnZ?12b{MUoen6Kiy zD}N$>5_OQR8>XXAbz3Ma-M;D_!_9@V-ZxH|L4V`Bo1; z<1xj%?B`DK<%<>Xa(yK%#r0dtyve7_^_2zQ_qgI+##0PFdI|I9{gd1N2cNN2jo;;d z(FVT!2{oQm?fW6-3G9a_72n&=r-QFu#=O~|J?(rx_}Hfu?=t>M@C8pZZ>}$w{m@L~ zU#`aQ!Uvwj_{&v%m;5AyZ+}L`cj0ru`&KC4C7)&Bqbry<=b=kJ>uEfice#E$!8bgs z;_JV&8FsxVEJHs3rg;5#DZ}_I@FgpmH|OnE`*~OlzI+w)=K9iqzb`C)4UOmT%$v`7 zUbDw<1Mgd{#_z(%l;J!V-i&9pJ$^d)_DVJ16?Q%!yl;)-m)ZGB@X>3TH{)4s=bORD zRxxkxkNWSch2=Bw6rQhMP~%x(kDm-a0?B@-NA8+Tgz?WC6@sF|d#o()6VcwkoqwIVQ`1V(s|9j~9 z--T}jpIf8GGu9qIW;ycnI`iiINwxFo;IrRQ@%7(z4BKz{;Bz-JZ@!n-e>X9VuLNIS z8#&($zTqFto9};I;s?rcy=+qB*MHA4Y&^-}6YJD?&avkw2YmKFnK$<@7rqR9$y>~u z{p`ZmgD>CAyxBhk?BnSK-?D{yb3VK93D01^z0JJY52xDWXMt~cN5$`H=ZnF&Y-Qf; zhi-Ph27L6p%$xJg!qfZkQt*lIF@H45!B^;gxD<(_xc!9dA@%0puZ3}~;C#aMcHsj5 zho3i)ak}-J1g<3lE(_ci;bJZQCZWC=T&-}`!ufluzvr2{;8(w2B{+Zh(qvwEgyL7% zdyb2~zw4-DWdihmyp_fq;<^YI%BREctI1h`^S^=f|87_2{VVESf8QeYQvu(e57>tz zEcp5#U)Xio2tIQ=^B;xyg{q&hpYN#z?{8#&xSof~59Kwf0{i1b=06F|W2lO+=1=p; zfvvfQN zns3~*_`XB<_9$-fuT#9ke52rt{TGjaphsRQKS{)Y#{414s~NvT{HfsETbMuBgQxtI z68|~#m+SF_{XV8Xf5Z2gt-^Ja`R;t@*ZFbyy-MlurR-*3Ep>>OU;8dwaMUAFi@H&B z9QcNw2ZKMaCYRNJzefzZ!9Xc)wQ$Esy~#@$Hyd1e1o6ti6-B_+fy<46YXg@lob9{} z?*Em@k8rQaxc#YWABFFK@S*$|ez2Xd2cI3_d>X#5o$mzSuKB}iox{eHunNyZ$Ex_d z?R*ya=;IW>&CVBtFW3AAJ6{7nv6qU!+|IXwuhslQJ0J6RoF~yL{!BZc4!%Y66YYFH z_}t@F{E>FP61?vO#SgUe&EQKk-^Ft>zDn~u?R*aSls+o{ zW;>=RY|C3e0Oe7ol7+xdjm*#9S~_|xos7WnACiXUs|i@}#`eyE+V z0iW1U#qV$D+rZaqzPp`|sl@(2S;gPC#kwET!MA9Bhn>#{pL>dmztPTDg7=-O_?33P z8GMQ67uos1^Vt6}D*hZhpA5cA^ONm-4)~PcsQ9UNz6^YW<_FvPdhpq&srY^Ed?)yJ z%^%)uUEhQ?*#G@i{M~jw3w(5};<*J{4IosW4D`~Msjf8Rf?`ym~Ci{^LO`F!xX2`c_Z zJ6{RjH%Rd-?R+!%63s8N^MQ5P|L3asbL@OF_$tj$w(~jQQwFQ}sdl~$e1ql(+xdF% z*@-HCUpwCkzFqT&>#XaWupayWJQaVpozDUveZJzi+4*Ad<(l7M=WD?BOc@5%p?Eec@ z{AqSR3w-nl#gDb~#o)^|Kh)0GfKNP8d^7kG%`dX^fmg8qQ&jvpc0L(=mF6eg`5f>mzgO{7 z?R**d2F(w)^Y!4fFH!OP+WAiK?V3OQ59|6Syo&ulO2yx8=d-{^k5>FPJ6{aGT=N_3 zd=2=-OI7^kcD@aKt>zcn`51hNmT{SiKhw^qgKyFNL_41kJ~vgxA8F?+=|jCV#SgUe z&EQKk-^wPZ|4(U$No=O@u%7OEb!4+Dt@e;F9u((`Jr~c27KaGDt>=E-v+)`^WE)y%p2JM zV^#cp8?E~x9ej)Cci8!S@VOZ({zf}r3EnqO@hk0oGx!qCFS7H2joANJtN3&5d@}ed z%}=)TIp9;qtN5vQz6^YW<_FvPdhpp3RQ$enz7u@A<`2JNUEhRS?Eh<2{M~jw3w-po zir;4Ei@}#`euJH_0iQTg#b0jc+rZaqexaR@`3LrYriwq)&ZmQK(fmX^pASCwIu(DU zov#G%yI%1F?R+!%63zFr^MN<9|0k*V`(L;2hh*?on%`;XbHJx$srZ}id>Qx#&9Ald z_29E_Q1O@8`A+cdnxAjy6EBkGv-4TtqbDnVter0gU#|I~cD@FDVz!Fk-_Eyz zuho2aJ0DYr{r?9Qe_xGtKcs_i(fkfOpASCwk1GB~J6{RjH%0L)?R+!%63s8N^MQY2 z|4&u%=h*pV@Ku_hZ0B>pr`)9Cr`q{4@C}+DZ0GC2Xa7mX?`!8f!MAJv@N3rfO?V6Y zf0~NF+sj zpJ?av!RO9U@kiSEO7OlM#SgUe&EQKk-^!dz*g-4J5~HSc0L(=mF6eg`5f>mb5#6PJ6{IALGy#{d_DN=JQcsMo$mzS zuKB~&*7Z%O$NrzI;_tTeS>U7ZQv5bMUktun^Be4Z4fw=)D*kdi-v+)`^9${K%)8kC z`6~WQJD(1|Me`Hwd_MTxyH)&=cD@q4?;gbuwDZm2OEllh&IjJZ{-3Yn@84kE56R%G zG{4i%=YUTsQ1Lh0`7-bgnqO<@>%nK=tKu)Q^PS+^H9z0ZCv3z1zfZ-VX6LiOM=wzP zSUX<~zFhM|?R*XR#6lInznyObU#t1pr#ztIr`q{4@C}+DZ0GC2 zXFsUo_qFq#;M+BS_$BN5Hi9pBh~tm#inX9u=;z(l&xt3XDeD95=ZBep{g@!_^KVe` z!+st(34G!b=8tClzwxCUCvp1;Ct)4ALd5e$5Up2xZ09+rM-J_*~g9>UQ_@$~YK zRr3k^`N%Br+0wt^huZmK@a>xKZ|7^k7cAv*oA}-Bd>i=aCltSLy>-1~8nJ$w-(ly| z!6!bc;%~I``QU3cztYZEg3nl{;xDrE&EQ)!KgZ4oKE!!crs7Yw^U2_SPbogt&gXzH z(fnXLUj{z*X%)Y(ov#O9rTN3_tn1qeK4rOzzuV3ye1!e4`E7PS3w(CDioe0m7lUut z{Bk>A1HRxH6@Q_fZv!9we~O=J=VNwY|7(7tolgg!xI)DrY3K97*J^&Cov#F+QK91Z zvh&U0TQtA_MeBYDG-3ZgtK#pp^U2_Se^dNsJD&r-MDuIyd>Q!Il`8%cJ6{jJO7rvW zd?)ynRVw~8JD>0|_P^%G+W9Q-*?(8@huZmK@a>xKZ|7^k7d)rpcenFx;G4)_wy54Q7V;A5*){JwU+9(u{jd3Lc0LPy z_KPb120LF2zFqUn?R*XRf^{nXLOb6EK6<_4XWIFge_{V?exjXE2cP(oia*lM=Yy}+ z{6ITj2|nXx6~C9AZwB9@`Tc9H`yucd_WuSIf2W;K2Jfp@{AN3!1HMG_Ywdg)_}Eue z{3Uk29(;deOm!TE!4h-CiYs)ci%Ke+M;;59LVcu=uQQTbN+}5!eTxJCE)`LqC z&TSo&cH!Sg3-{l3QS%A=9AGN=YR&Jfw604j__VEhUF>`v_$JM7wDTR{r`N0aEA4z- zE6xkeFS7F!z!$x%;?HsBXpd1mCXtP0oDq z{M(J^&3~)?wp#HHc?-a|^h@u&B~g6g-13$MZh8dq3c+Ov=a#pqJ^20E!kN6ySMv(n zZ%N>{XnvYAPkEaPKJzP{zq!80DqdaRaqx|XFS^Y;Z#m!&>}Ad^Z>8W`ggYAXgRju% z*HWZ@Yrt(0&Mj}rU*di!oXOj|=dAlJ2Yiam$MDPSd>Qx#%`dR?_29F=<~*4AGwggP z_;%qZgzn4Z6(4qAZUi5@&wD*6u3xxgB(LUsg0MWteTDwN@s5`cu1Pqz^{59|E1a4C zvcFr`qZ53FjMMN7?0mvr>>tg~u=82qbKBK=jJNZ};CVnFBEsFaBl0}rw!*@1o4u=O&88>y=%Z_2xr!B{3^%wrgNwbe2ehr z92%i`bq?yoGqT7@9zmveBs>oM-sT~2;yadOB2p*e>8(j6wd6A0cu`h_qD)2 z1}hc>ZQze82M7`_ExN&4$l^wDRru_EpmOx+~w$-o94&@{Uoy!`{A_ zcI2<8@^w@BaG2i&`1S;pue-Oe7{2o3luzg1p}#u#GNYBRmv?`i@I{}Xe7)U$bS^f- zx1~4x+|I?QZ*hJK=eF+?z%7j+-UM(3!ny7HMsU-GGy8syT5s9+G@nZF2O{X7;n@tyZ`3LZ9Wy?LisWC+4#3#UuR+0aU=NnKD<7LUuox~zQ_AF%`bB1>AFt> zpLU|!H**y4uupT~^YvA}dEUMX8ec!%PnZpBu;dGVyoY`7-dn-zt8aov#O9qWKMWz7u@xnJWHr zJD>0)u2;=3bmo&V^epfx13CUPU3nY%XDVL(UPJPg!dHD3`^?|>oagPUr~VRDe|mfl z{YC9Zf9JAqQD~ftz57dsFZw+8EeZK_{#1VnnBQ#p@`kXlU+8_;YSo|YOUg$D_~}V% zUW*j3`XOI4d@UESuQW8iW$r#2U!Maw--ffV9A$d>S1RA73%XG~^)niLweZVA{XC?2 zH9qPmAHLXR?#KMyp(VuZwoIpm`QzJ6)!GkKim?MwIx`M*N>^f(>*n+o5SbT!WT-u;!qmoirM=drISFOBdm z9jAPHUpb63@H6f|@(-wYu>)~)ZZjE&duJwHu%bK zP~+V0?ThQge#ut-?ez9#!I%3-)!$xkUnzWhrmFt-d;99)OPQv8-PHZtVcnyC!G5_} zjkA}xFB!h*9OXOJ+cz7&qFa@3ptr9QKHqI>enY%{t?*^eQvHqe_Ql{ZYPf@a=3F1+ z?VAAKusqe@L~ma)d{uX`&)l!3c>C($>vy;6Z>G1e6TXu9%BP>l9rjDoVVuwRDc?fx z{&L_eC{(`1-o6U>4&2Ya4Waw%a(5rSuPdbf9$;U9D(I!2GW$=~1#y+zjW_kM>;q$-2zK+m+TfbjY z^P&C%UAp)hHnPv$Pb2V+hA-_+<$K6`ocZw8)~Wd|are>l#d`SSH?yxCWqSEnC|}s~ zSu6OZ!kausuwP@kB6;s{KcS!Z_eZc_C&1UQo_*%|VwoDBL;j25%Y9GzR(kvD;M>x` zKC^D?ynUVUrEF)P$;(D>UsAU&zEvNp{jdPc`uNl7f zX7-tN*yru*6NUY}Q}y?=yN}L;4)j;`Z}zPZ?n?Z};XIg4@jqv-Ds-OhbdOKhXC-{K zt!i9*y?w3l#qVa{nW6snd;4OJ!g_tF`aA6Hn*d+YUNyg->hm|J{STk-8|CZk?W=)~5^D*Md3@Avk#!54j+>Q8^4<8Us; z^}zKItLCS_Uvcnd!PkBU`^@=rs``G#!B-03o;cN?{@%{PR}WvtKsCR?-u*@4Lz*pT zDWCpc*rC5<_)-$oIQ93m4!+s&tvZ)|{|G&w>hG-`e3jH+qUtXKUn})@KKsl%O!m%8 z4F1Sfc@q1~KAYz4n*d+Gp=zA7ynV&+6%1Ft`QE-d`1XuopULM#-o8%i?;`e@b14E} z(y=(tMk?PD@BVV&%e_STR(Sg=;M+5reP$ijdi$E;%T8sVIp<&V_Vqaq*Td!PGy7$; zw=W&O+A*rXZQi~@_~Nf(pLw70skg5NzLX5r-!5-o2YjopR{ibs_9gVf{3fXW_IvxL z!WTbL_18`P+>OKaUIt&vb*ex8^EwW`M)+1uVxL*RzTW)>qH(?7p!)0Y?xW}aHuUGu zW}n-0e-6bL&g{ns@=yVve+tJp*J&^JanbvQX7~zjQod8YeSMC{^*v4b273F_;mf^+ zedalJh_|m0zNQ@I8|m$p8#@p8cU-fNjeiOZY2`AurdN%va`c3inO@(ji zovOc?-o7&UqUS2#Ja1nkd`0t=Z=ts@&>J`7dz5dnw{J9jc?Ik<>%QFEmk(ddee5&u zPgZ;T*26dKFKV0{ynSu(RV`G$P2Rq^J~+P~WS?30ZQi~t_)3bE?^ADIDSQVWVV^m_ zc6~NpT zhtKza%GcN1w;sN{3gsK%?Q4Ut{cp-Q*xMJ^7yIMy>@(Nt2yb5&e6_1pf2rQSQuv0g zVV^nI_0MHHvXbre^K}$gnsLkPygJwLx0Ke6}+T;bG-YT4d0#(>}w8v z9;bh<-J!oq_)1^4?SZ z?e+FG!`ITF`rGgA>vJle$39@6dEPwi?MsI*<3lyhp6cJZIP9}R_^NlX&%FQX>+P$7 zui<0WUw?032Ykbt*=MeYbG&^CF?jy_O!YU!+cy=yr7fzzk>0*C_)0!k{iS;Q8sR(8 zs`?x6?F;+{*ZUW$ze(P{(ePz{sru9Z9?D_e^Wn?btNNSi-QRlns=rqK&GYuP!B@3U z^|!#=7k3)2_wQ7Hi@beV@I`m9&)mnBc>7A>EBcXr=KJCm-oAS3@1W{$t+y|#Kl=Nb zedfOTnzt_*zV=_(XRf2o-oDxJ?K#Xo^F6^fZ(k*R8C^Sr-!GVa>VMzpu+LiI+Y-e- zlh57W{l&zhzwXNSy|-@yd`-u&&*by4x33t!lmPooK6|Qvm+COTI{1bir~2#d?dycE zJX-nmzngXFFX?oA9?@Hk^BnK~a^UlwsQMe??W=%qdSCXL=cSR}zGnEMPf`7iare>t zni}}>V%YaY@J$W=6MA1GKmSedPm<5T{uj=y^I-S*B$~WHI7c&6&pEH$D|GRXD{V@T)1M%!L`*?Hx?W=*Wy; zw=dyLTz{$TGwX2J+cy=yv@6(W&WWDt_hmR-M`iF;r7K@wZ(k#P{l>D-tlt1{Utl24 z%W~eqZ;Q-Z(k{VnSWrPdCr;V?W>2cVG8@qzFz3o-IBR(ty@;VbyF8s`RYUn_hEX0p#bKj`1T<8b}OoQ?DPcGcfD z@BSvh*Y6HBzfZk=#qbr(QT^@q_SM06V6O6g@9pb^FE^ik|2@yVeM#q_zk8Igr~182 z4*AT1ui#$xnf=n&+gAbKo(1eP_mu(OzGnEc?^nLT-o8EwIA4m`XRf0W-oAABQXXQT z$!Ds!uMoa1536yGclXhA>Qw5lgniK{2Va*R7kz)%QOAb<{UCA0;Npe5S}^lG8}|Dx z)`QEAfNKV~Gy*Pa5YD3rxCC(iM|mD@y>jZZo0xm8QpC|s+dmicFrbocd23H;dR|c*r06FZ;HH9W_uw{V_w>DZtZ&d1(QcwECUgBL(Ooxkd4cEv(M>mq zU$mR(iY)Pq?wTZi(E*~Ht{1;(H_;W>iC=VAruan%h;EuFe$j5CE3Os4=&ozTFFHW< zlLN_~cCf9OQ; zJ)v*Wysu{e3s9QxQYk+o|eDPJo(R_ZU6^2MS%5BN{~+27rS?YAcc8@8O8YCK&rAIZDVK@F?b$CW}DU|Xu7fSP< z2_^0(X}?kQQfa?PbO@BVv!wkD(UYV;AmyV(4~=2I14{jWE&7GjH%s|L(RwJ&^Gzu~ z0v(R)EmP{RlKK?UUQo)@&sT7sYM|tQ21@-EN%i5|E^G)*MZB~_pRt2 zDCOyGC~+I1#Jwc#YefGl?GKACfD$)X+HV*AlhkKP`5Muyq<*xNFA}{#>Jy~=ThSOO z&GQ5)f0owM_Xp%@6_o0qhSK~?L?=Uo*BLZ;ok5BFHkG+1D3#xn@^exymvRP_=6@NK z=9MhQl5^564wn%+`-E@{&%7uL#h3J(alieUYGWlMW2)Uaw$I{`k2%gN%>yU zyQDr>$~TJ+hn_^&8IQ7I}J+ny;$lKMGs%X?R%k=mr5vck3wmFc~ZVr%2!A^Map0Qp69y@ zO5^$%O1=+7--c3No`X_e%Av$PF71m%@09jiMW;fEyI$JIi>6BbMN+;%bgjl3nQMU(_YsuhZxel4+SiCyK#6-&+82v1l={1+e5dG4slQ3eH;PV_ z`YWY;ndnJS+Am$9H1DR1c;4?pXW21>q{L@S|`pNFB8p9N6j=1TkRqSs0LIMGxnaTiJZ1)^t5eXNvE7Ck}g z{Zj5C`qMCu(+;I^eJT11^o}0BK}ArS?>$nVD>@QN`8x+nd1)KU-1|_9Q!V8+Qhrd% z1yUXa4PIAJn#ajfe}d>S(BO4-0dp--;y!{>{B5EyOZytp3Mg?;O8a8bg;IaFlk!Z--Kxr=XOF#Zbz_15$sV=v*k}>v|}08BpRbllGCKXG;5N zqJ5ym^^o>%qWcrM{%a`p|ApvIssB*Q?}=`f`q!oWvgrL#n)mHcns*wM=6$iWCyE{( z%-mimag|Ww9)(i>c~ZVr%2!A^Mau2x^1Q!*(tMhs~}b3Z?d?t>ElA1Qw(x&!FUcRmxRTz5z<}9S@~>TrTyOhz^HRUQU4$7Y!xu zXlXw@fa87vrS{K68==I#Bkh|+H%R^SQvRFha;g8TlphgYDD`(s`A*TxpfvCEp)_wl zl;(Zt3?5Ir=td}UtD(W`3QF8KX&)x#bEVuv%04N-cskE(6_n=lG?enVMD!6T^QP9f~zv(wT z-}j(2o?6jGP|C|ZDCH#?O8Glo+Wk^K6vMtxpw!+V<%gg&-+Q4nk2zAGD>@BI`y~xZ z+{IAhlB9i*Xdh`0h<1e%ci>d+_gm5bK&k#yDL0C~EA^YCTqF9D)UTFuh3IT31$|+L*?qr_t9w?3XGbs6Xh`tA;#w@lhgMdwNTEYX{x#7&m=Own|yzeLI-M3bccY$*>Ajgk5jq})^V(|&v%t%A~g zpN7)7OGGC_X}^qtQeFa3;=b+6ToaVa?@9SNDVIw*0~*{9&=c`|kPM~ypAV&Z#Y3sT z(?t)R#O)nWYX1sK?Yl%jfl|EnP>Qn*O5CH;{-Edrsh=z5+eQB*^;uHBM)Y#2A1UQw zqGv#9+r2Z(;&OSVke?f`c z4khkwD8+kI^zYLCjOY?5aSu!T{i1hCeXf*m7X72tXG(dT=oM0*BIV(t$3RcQ^KDaa zSyw2Hr&e?kGZ_&vg6MNnUoPb*L~n*3gS-rb z(tOU9`dHC@(VUl0p_G?0C~@~fX*|=Ve4~^vlyah!TYB-lo1nDc>Y+6MH=#8DYAD5d zLG%%6FO>GXq<)s@El|qiXeh-w2TE~Hm-bUcdrSQ>Qtm4H<8jQlL8;&Wh<+^f+oZfj z^hGF*dnJ_SJq$EYX9<@aJ?}pp=(4 zpfukq(fLry%M2*xB>_s@@zQ?4&*g8R_|~{%X<7p_G@ip~S^P zi91Q!dx`$oo!h?=ZG{r|36%QXF1lIjUzhUBqHCr8St&m)x#KlVc$)d+feK#q0Msa^XK#AWgHF>JP@3NGhpu}~N_B}o>e+DJrt5U9#at@T{|3@gz zD^u#niKanm|C|LSu0NEx6Q%t)(H{=?2)2JMx(iC&$586`1JSpnzDCL~iLR0Q3MoG& z`nc2=OZhLN`B0kY?NYuN`Uvvmm-<78xZifsjnLqA1`S?kQ1XwH_F+;!SIRx4?2~fM zFFd~&p){{mP@2~>qD!Har@2td(@ZFFH%a@AqL)hhMWREX#GNJWXNaC8^#Lg#C3>in z`3@-c|F!5BQr|4)4@K*tG|xAs{0Q_y)6YM1o@$`ve+EkZ6-oIX zDPJ$;3@Q7dl!pU9^$0#Mv_UB!pF?S$O;C#SzUUfhuaNd9rGByKgHVb$6-sf&Kq=1e zrTs$DAyR*ql+O@7N$LYqK1%f9L5{NzO5@oh`T>-lb2dY1-V32~k*_&Wdd`^)C4RKD zUnu2<13bRBpftW3C~+@|RzhhW4?}4l3!uc!mG;|3uaow1qNz~gE|T^OM9-G`SSg<@ zdV{B5EyOZytp3Mg?;O8a8bg;IaF zlU}0i}E;K#4nE z+7Eosp3mD*n#V>c`Km?NLMbmLP|C~wP~!5X{SMJAX`di^1(diH zX&){+Na_bjIY#tEsqZP}DA8Z`ah&g=G_E$$8Yn&I6hUde_eg!N=tyYr`ho_puWy)p z9~zvWl-Ef4K`9qVIT1?pJrhdvh>`jeMFUXE%hz8sw+l+#$54v@f#@sJ{(|UAC~;3o z`{SYyN_~Np=ZfAg_0y&N2hr=LK10fvi=GTUh`j7+l#i40S9`g=1xj%iLn$v0KxrQHr9Mw|CY17$0VVD-C~?Ws{yWhaY40Q214^7v z+7Euk{e2Ck`dw0P7X47_w@SHA^mVCUC*?}fd?@XgG$_sYVyRCQJ^Ur-WiOQSQVAvQ zQ7FwjPs+DS`3fngNV#(l&-Xhhjdu@}eE$}0f>K^yfl^-9LWz4;+MgEvi?rV@ItxnN z&C>oy(QBnXUCNh=UM%%VQXV9Frqsts`9#qGl;+u0%J1#&;rkrt%~B}UKLVwB6o`(6 z(*79%r95?h!Q8*0#BGuC8&ZB!$|X`xfl?lZLFsuQ0ZREe14{Gk2c$EYX9X_waSW{I)=8K5sy2epRCL zp~3qyl=edcl(^%i{lLGu{0)?R??|~;%DGUQ@1LMFk1VObMl>Btc^L#HZUB_HlcoIx z(St4A{;lY4C~^OSQokRGz9aRuQhr7BMX6sU1WKOlM?^bY)7RXmjDdz#co zi|*XXdD#l3yc9!;yA4X?$&~U{Qa)SCu~KgMjOX(fl;%+bCErV;l~Bsd!%)i00w{5F zrTuo%>!f|0XeyMri=_Pm(X*vKR>~)fo*?ypDR&Y5>0cbD9ZKW+QuGyQUt9-8P@3;O zQlBe25*oZOLn$w9&CINFmrM%n^rFrB_{T-q?P|C}dP~t{G zi5o8M=Zl^!?Z=CDhZ6To6Zi9@=vPpxZ;|rHq8~{87AgNj^i`>^lJeh0=R)Z^N`umT zFP8d5(Zf49FMFYsmr5vck3wnQc~ZVr%2!A^Man;X#N*rxCB9YkU(j!GuDu7XhQ11= zxK+~rByT{)hv*>UrJqP-sG_OOAJf3#ZjZoTetD%(F94K+)qyk|g(`-8M!FZz3FA1*o=O5AUy{WQ@N zq~0&(E}}nuzte{Q}Xm|DUBh0n@R5-#(l)Vsc%2(`N%mjEA{l` zRCs4U=O`oRh#O?&=ehL0@zi@`B^mj7E`2VSlEU0U>FcZ~uOyEp4=0zD-n)?W@2hf4 z@1IqAuk_N_Nrk6=4E>*_`+KDO-{VH<>wO}9o%f{Y-l5+eJ5g^zZiLmTS0ISf8Lun6^hGz?P z^!t!odM*|H3%f%;CH=XL3y3@?@@>Pt5`w$T=GcIJt{pHO+PiJ>1)1 zkJ9(ui5saWl9%Fq>eI**aV+)WQT7=hj1?6NT16P>A4Ql&r_3J zk(`ShOWwLO?7d$4eOoTQ|9t7arb%CCBKD&H2K|=Q8)I$hb9_?zI*&+SCl&oWJHqv@ zOV?A#XYmO2edHauf%+=)5}YLc+#g8qT|>^)&)XNJzb8*fKmSAY?`#iwg7ou^mVS;Q z)cau%={@R7&sCG2D@VUH=A@qm(@D?W`##*~CSH`TCzFriA?mxx+i)ZGMDkJ`Bp=oH zq^9(~6{(lR2j7MF;ZN!JVY&3&MCo%FNbW_hO|DG-Yg^d&H|gg+CjGfXxLf*MmPwz> zTA9Bl8)FUXFOy%u64aj}=fxb=C3!4)IJubgz6GWC$VojbMoXW|#VuhjS$gh>^!4}SI{GVdq4eAg z`jhbk>O;x>@onmz$!)P2^}6Khm|gnk=B~|Q-!0P5lZeBl`)^5~OHt|b%R>LwrjRd7 ze{K(XE4ioixpb1=qXqRwSWEg`ib&7plb*{?KQrF^CiE}kIqA9M()axdf1tjZybf1U zUqqgbQ>lMM9*s?<_pU0vcbxRzndnF1{*7Vo8|k?r(sLc8pQ|RhA~_d1mi)tpu-9hk zebz{SZaFTHKA-oc&u6goTyOf_umSy=SW$ZJdHVVnO(NILPdx`Y7Ne;@SRdwY;Wg>& z{6S8}M0ry`KL<+h+lzX8EFpb7_TdS-HZ{CjP9 z?mwi@=X3d&e%+ZW{p-#!>2r94eoOMzufp@4mwvtz(sPG#pY$Fpr1w}LJvW{HBpgKl z9eh)It_}UBSetrfaycwby%0G+=As@;j>cnaVxr>o>&_DCeP>HQ_XKPw{XV=V{XS%n zp1Za>%pH}^N#teZx#YUi`&N_Qqa5|pSXla8Vx;Gyq~~sa8Loc?k4X2EaJ%%}M*3^; zbLz9mQ*b=>QRH|WK)olq3%($|cLC|WZzYC3FH4_KGOm)I`%HSSwe)#Zpr1~oIZFEZZhjt~?~?S~?|4FbkIm9^YozyBN`F2k&>w*Vr006l z?}9CHVup?^Ra%bEPm7{fFq^Ss41)@uKwgwo6~<3+e03qdx;D zQ%@j|#QxNKkUL`w>h;Mrv9$DaKO?>O9}8ll3hI6MMf!dCR{HrDO7~}wOG-cA)6&nE zoBCszL3)qB=7+i8r00%FU+)lZp#LR)Eg#zDvC;xdXPO-hf;SbINpj zA1=(}udDR)9Kbo!@56`E??WBwy-U%LBWEICoE!Sd($|?Fz4sXDa~&dmPVY+Z)m3_~ z16HK}JpCfn3t}$m>-{q)T<2Hm>l~E6&K~@p`Udi9Tugl?`BO}wK8!pNJ4!!yGwHo^ z$UpQxq?3LhuFMYi{aL!dhumIz&!*DPSBLtmSV4M^JkoQIO3y{pPmL+FLjMf@B0cw` z^u9ZBBlSe`Qk+kH8hIj)r9PZI2y4k4dLQDX_sK*(3irnY^3c!c^s@($cUeHD2LPLh7^52W|5Ay4Ujcv1R&ctZO5AEJL}ddL%`pKrAEa}1&0 z4|_=OQCE7dn)F;b`lT@^{VbSHdhXt|aG#raQM#T?K8A;=?;>x*jnos#OL35VOz%TY z>3u6wFNqJPhWFu5>Gxr|^xQ=0a~MeOMXpV*OujlL?0rG{Tu(^ve@OcIcS&Do8_uTx z3H`Cu|A&L6&#{U0bzYLbPAU3DupsrEHz9>CcjQ-P@ zi+U_M8dFohH96e>8eWvXPBQrzF130e21@VSi+X!3A^q#cr1y@KKGzJ=`=^$Eo?8=nPE3;SZAAP0=Q_}DiH)h(B3H#1 zs23$ag*mBbCa1^0CxqwzL;8F^m*45Urb@pL!=%sQ4f-v~SI39vJ1_lwC#2^N<38y< zR!Hx$KzeRE{Yf~8{yX@l^jsVIO|drh%H(obntCB}e#}KZmK=@8K8}gHuf3K??>k%i zxhG&d>G$C^>GvUn^xUCP5J!(*|j4w)`O9|=sC7tyAy>Vgw zy7cp0!r!Flw@J@^A${F>^k?8?>IvkL*q?e2a%XHoy*{}nmX?05XJlsmTzEu!-?a3% zeHat9&F_cw`_Wgr-(C8-qokkn=GgF@m!#{z;|b|~HcQW~k=|!1{rQ+ce*_MYp6f}! z3$~=*fLsf!QZGv`g+-|6Bj?1F1pV_w?XzBbpOwCb9J(^Q*h&83prLgqe6Vh{!(a(f8J_!B4@HgqXW779MggdEkBCo}j z)EAOx;S}oQ$fIzG^q%jME6OLM_4mot?~e}my^7yTpVJr8=hQ>`^9|{jB^M{hkfX?n zqry2Xk$w+nN}tCh={?6t?>Pe7(r-e)HuY*)Uiw_KNnhu`_rrCrNnht8{zm;6`4H}; zzKOgRmr|cYo`xf(pL>Ax-Y?3p^?i9p`umbu`o91CFZ3@;=i$=N*I#5;OpYwQ}`T_E8{Eqs1@|U=b`dspK>?ZGOud>qn7N?#M zuZ#%q!>`is!%XS95z^1omE4wGo?McgJUr}uRQg=^N$>xi^#1Fmuk$5-O#glQgQ@qy z?$YP@iu84!mA+1X`nm8?>e1xXcym~oza)L%-|-mr{p4M^TKc&^m)`qL*+xHCn@PV9 zm87rpB>i0E#Q5-hi>04$ru5vWI8J(xp3-}ClAdcpzY&(BUkaa*p36f&JH}9tBHtbw z?)SI!`~~tEJWl-pc{fg%kLZ2xD!p%8>J9J->7NgeNWTyJhJ?8#Zp6`hC^X-$K+ku;;_n0NU z$7Jcb1o|Vf8~qO0OnR;^{pwhrdP#C&EI>VuoCRa3N0Dz249~Y)X4CsHO?uytsSn5c z((l7d((l9F0b%Zp^nSa@TgWrW6UddN_bw}au0^HyFCe{Fob+|F;N||Ie@?o8T)O`g z?vcLULh0*#C_OiV{$T7wy&JhBHl<#N{3@2CUV>Z*vr0dAI_dNIpHc7Htn~Axm43dveZ$-hyd=HHkJ5ABOV4efzZ$30pNJnw&kd#DAG=d;Pi}#Y zsMjP{!Sd8gk_+SQJ~2^Q^gis8-e-&Seu+3t`h9py`h6%WJ(q?4t#?DdEd9AX8 zASYl8>3?szko3NJsmJ2!-r-#KN}tO(>A82LpQkyw9=QlPANj!BVeehi@7pHn{Z~ux zwM6B3#2a56}CL^ymJ3zSXzYHhRPrzZ)bN%S|!j9CN zlN(}f>Xpgmur&2T3!N`3F-5CT>ATSqHCDj zCOx-=Jexe2+?$+F`W&)L@0Wr4!+7`2a9$^+=YEo&+bwD zAAx63t%+;RQT^3VeT*K=RJ?dsUINk#_y=FCx3~{ zsLv%&$8OT+QdWAO;?(oul}_PYew99#nbLD3q@SlNxh=Uoxg2sMZJ(oa#BzB|U0h>wB)umq@%Tq5&E{p}J$C0yO4D~4T?GEAjc1!)1qS!R) zeLto?9P3NJFE2@-%iZ>2?u_()yU1I}GsqLjFU!b#AS3Sq^#Yhv`dsd`3v*Yc=gv!C z|1|ETzXiXNo?AwL0Zyg<5qUHYqu!6)3*V&PhTIgNmfkz7^xhZRhP_WoKi2`ABR%(_ z^jsb3b1X$aj+}{nu}$bFOJ8TE^!ZGZ-e(N;5jar#d|F7))t8=om3~Ehihdq^RC+F& zermkgI@B*o-~V?!Mg3>;kGPZiCh}TbF1_b`axZzr-!JOLsprEht@wV)$oES|zF*SM z(UshmT%KH#{AbIs{~77Mevy&C4)}xgIW3Vsr`ghTpV0pZ`_k`$9i``*({G5cQh$m3 zJQkx~kenMIqy7l_A^f>TOys}wxI}v2+0xHF0ozHxKd(ujO9tt=Yt6&lQR$pSUPhiv zZY{lUBk4VAQm=w#rOzd&^jv1?xrgcBZx-(JyLA5~{v5I7a%Mx=GKqlb(B>emyKhzZe#jp36x;E2gD>w@JAF4ZJKpe~x?-k5J!7 z-hrE>_gqbmmj!iBHK|vmUJ@TP4(Ifz^f@h;{`^Gga~MeOMXpV*OupMF?Ekm)b6$}C z+!;J7eNG#s&uNwP+#>q3aTNWb*hhM<8~u*hlzJWVt5}ix^WGNnr&MV94@2f7< z3-wdd&vyXl$jGm6(&to1`tzme$B{FUFV+qHWa;ZnmfkNxdaq&B2jbh(=hQ%YuDbMG z1^Q($H~nlFBRv;I|8|{lzrUpGzmZSiVd{Iy+i^4XHRRn@j`TZA*E_ZTX@M<40AZuC21E&5gPMd`U>^qn8sYxe z@S^l}lF7$#sm!V0-wc%Aw-@#HSVH=H^0@T-aH4vc+a|r=67p>FU~+GAQR#gPNZ&t> zdKOGCeJ&}lhPl(ybBCp`pM-1aufPS;bJOWh!qL=+ko#dT>Ti(SU{mUK$gg4r>GLQ} zzW+*i4|Yk{w@5!ro63IrIaX8d zkk3h9w=n(3i{wF;*i2l3Sf__7+AwBmp{THwZ z^?c-0t1;4h#Z&K%m88%0S?P1VR5{EYl)lb-@=Eep z@^Eqm>3vH}?@@?)evFeom)n)X+!g7$-=(jA3U|=ojBBLlmeQY(Q>c$4kHUEBeaSts z3-#9I*RhWDc~m85lCkleZ6xP!gcmaUuT>2bvEJ}>PyMPzmeQPde7?8&sTwZ87wNjM@H$n zG}3do%ZKazjmM<>2k{5#xy|&~;WFxT$@FTKzGa^ZQd z;hV;vli<4u>QRKw3VV}j)d(4zRzfWA;i9{SlahI$nF_KTda^!x?#89Yw?0C_h~m;UDuU8VPJOT7U;A$=~7NT18T7sA|^ z()&##e@yO9ZcolFy>C|O=SojK72YZn&gGc&+Ov{}=uyJ$Fp{zK3up^-bipxRUxp z@+_P}eH?id4w2sTU2;X~pCjq1-!B#JdlkQxk?)y|e9xpm-;jP;a&dADIg0#E$*|v- z(tCX_BYz!ms`NPxls>0k(sOUnZ-cMUuYjec=L*r!kB?D*g!~ZRD-q_eOW*$z{!aZ@ z^3S+X`v12oV3#Puru{muS4WG6eUqf0 zXDg1EK9~2T&!vL&`Q@jdo_zn=@VVpC{R8B2()*5--eVy3cd)DU`%+7Ku9Eaz8T!TX zG5Q%Xjr82@BH_M&<9X@&3G!h~qQ0HH8P`!?PF{pFrT3UbZYzJ)uV00z=cOKtrwfO3 z+ADodnumq(8R}*Gr$%bm?;%FFiMkemr)j-v%2? z&()$|68LtrJjwP5z|t?`%HMQ8+b{2&$Hx}@`nHZjCwEX?XiT6e9vU$d-inr z{5I)*mylRB+o^f{$G73NM$&mES&eiE*wzXBIX&rPR42}e^O zLhgsXsJ}sOgH5T|A-{?hq|d1|`TmpP=kzY=`WETuOT=N)=k%8JITe+j%R>KF!H_RY ze{K(XD|v|YIlU{rS6AvCu(|X(m6M(;AwBmL{k-@v{d)z%+;!=>6zTh(#Us@Bk$2!0 z>R*vp;9}}C$)Dml={-l1>q-B57Dqi3^(fq*Kb+Gy(&scp`tu#6pRXplA~_d1mb^7z z*lV5iUdyFFw+LrSpVLt3bLt~K*NuKhtVO>Hz9>CcjQ-P@i+U_M8dFoh^+dS;HM}T& zon-PcTq^tNpBE04-nSR^_EJ!cUb!RNw}8&3S1yPH=X_@98G-)xgYkT{sy@XHl<#N{3=$EK9ADm`?>j^ zN!PbXKVKpalacS4jC{|e=d#eh^?1mar9Zcayp`Nj`kXpR@702OBdjHTPDP~W@=4ES zr=J;b<_i7Gcusomxb%I0!XKz_Ca=R))EALw<5cP&kw;@w>AkB;?;R(-cP9E#xIZV~ zFB$oMNzZkVey*D2isW46Sn~IAVXqC+`>c}w+!CB4eLlmb&!@liTo3x4u@3!Lu)OqK zN&1B`5A{dM8Sr81|K$kx{|En)zRqvt6S!RZ_eBGx_w7Z!J(iG>@0W~xzp{t9Z8EYS zc{X`4xi`6>^u9Tz@1L1^dVKI$IG1GUxg*kZ`=qbG1DDfZh%=<;CeTm7q15}3dthhk zt;kKVF7;~U3YbAge!rM4?3*P0JX>+R^trqzeJ&NG&o4jy^yK@GhR+?B?jInJliqiv z^d1ALzk^++-GNz(u179H&PP5G8}>gW{rtP6Ker9n zOP|wp>2n${JvWMeJa(qv1{+Jy)uLY&U!Y!;{1oP;o{gLl(^9{iIXu@5yd=HnS@KHh za~ep!7xng7LPox4GV(pk6h6OAdfz4F+2q0G-sGav`xlVjD~@^=OfP*-DH+4uY3aGc z($`PIwe(lu0_nNw^e5qH>O;u=uov|=$ZfDG^*ZENv4ZqDl_uZMz^`M{^)1rRmx#lp z&*?4cb1Eu5mxcbVM?$_V{kc8lt>oU)=hQ`duh!IG$2!vIR7`rVp!8f$`dRUIOz2<3 zKcweQO5gVg?xDVwya88JUqYUTGpJ7>CtwSiLqDerN$;DNdMuuf=6fb1-!tjCcch=E zIk_IW2st15K>G0fJEiBp#YDMLf1k5JX4ao`Pmvpx-;GSck1oQEwB;wn&c{2o_a}gVZ5C-{C6LB zN$<5qdapzrCL`~ijJ$W!b6M!$dN}0E(x2Ny-b(H*y?0mXKM!v$y?-O=y=qE-t_tR* zpN)PD^)z_rp>VyQrLXgi^mV?JzRogSKz%xS5{{-mgxn9iQEx|Xj#Z_f`$g%!|4kDU z)j&Vb{*eCXuluF%`;~Nm8M(6b^SvPbd_}20g}J5AG$C?>Gz?v^xjqI7b52+ z--!zStJ2r`Li$|hN$)Y0`ULzy`do%dpL;Xu`MT2c)ugXe0iTne&mukd--GDL+%@UB zi})M$W8_1)llms|T3kwf4tW}mlzy%O@{HbtR?_=7rJqHP^ZRi>I`V#Om+o(rex3%> z&skl1p9<8=U{UFPGD^>-k)FGKFMR%QJSN>gh(AcrZKl5tmr3#0s4bO8GzmJwBH{uemr? z`dr3KpZ}ZE`?ryvZ!A4u2dhcX=a-&)M0ze2{X2KU{B`Mi3i&J^p}vp212<4#MP7oF zq@U{p`K$i=za_nY7y9|-P}Tpv9o~zdrTcrNpS!*Eb2gQJo;uWD#R}5<$`$$M{xeYQ#O@wN2l67h5CbD1L}-%IK9=_x(mNqW9DHkO_* zB|Z1J^jsGDF_?z>?Hl3qf8%-S`4i;BxSRU79H8ePJ=C|7 zH{fdOOUUzZ2K5Q#1Z*K6)_YM%df&X%WAXIg;l0=^{a%cdo_k07d76{!k&BS?kq=x8 zd+(Ay-%Zl{ua@3xiS%{mVLbi5^t)5>nxc=XGUV8on z`7rLL{w;Yu&X)sq~KZVN680q5B06&4VWO)Xusyt`_`jg88b`& z`tjdi;eFU7JvUGKzGKMontnX? zm7eQPzY{j2UYA@QD^V{)E{@Mo&qL0R=l=|QACmqaERo)Ow)FE)z;@E-^P2Qr2I;wL z7sK39>6}DfMxIM3wQauYzTz&nKt!TxRLHhw0x>3HSM3x_=UXlAha5|2teq zeK~m%&Zhne`6C=neF(W9_K@DIBe}SosGpa&E`<7J>2pfPRWkDXQ|WVRE&cf_^b3*m zlJEQx`d6i|vs`+=`OA7~&bFb5{hh^v&!-CRtIq7G`wAAmO5BI-; zm!;>=kx$|g>ift$aFg_&tI6^537u0->J_P%#0S5JbNW;IoR&*}exmd_3?%m=*Ctmc z-#r)h|6BSwFGzpx3?7v}rw!8Qv`Ttz5&hXXivCdSBR$uRen)Idy$<2t~={p&%>nJ|A^dj7EVeUfm8^!x(p>wYFZHRZVha5eQMN=iZTi zp629w(%O#cNeLOmZj zCuXIdo}3EroCw#sD*aq3xIy00U+*!}`^Ho6jg_R||7WGo<RB;b`dls^4|B=Vb4R4FzaQ7pUx^E)=Vs8Kj2}=RO74$uQ}0Y}i_NIl zC0EDn(tD?t-uvjWuy>O5b8W@((sS=g&sC5<$NcoulkXo5pF1wyKR_NXz5hVz?_Uq; z^Xe$QUvugEHN@idpQN9Q`lA>leZ6zPgzM~;zRou3>ukg|)R&Uy;}q)S$fIx&^|#4g zv61w1*O1;Toh+uGr~e)aKR-@O-*>xoeSM?wa4_}W|2aI*Rs2@^efUE9 zedr-Q*N}c$a&dADIf}gEr?Afg={=@PpWh@*kUp0Y(¥djI;;^RG(JSHv>X^N&i; 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 z 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 JHWA=o{vS`^Jf{Ev literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libtl_lite_api.a b/thrid-party/ton/lib/libtl_lite_api.a new file mode 100644 index 0000000000000000000000000000000000000000..e1ff0a2731531ee68fb573b1fdc748a89855b123 GIT binary patch literal 381760 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%0DTWJP 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

    JNHr6g(> zTyd8h^6t!YLiGOk5AOcUjdWG|gsQzwqb6(L4^dIWG*Q&P578)i|D{cpP3r#3+uHhV z()W`<2Ys&uuyezj-|=;aEyvKX|?~@6| zpGN;%OylBDsG0QBsLA@@v#13;vxjRC)IUC;QIdE+$avb+22Bc;f1*Z#^<2b?!*-U9 zNoqastBEnK=U+gK0HVJJu-fBkXor&#$0J4%M<5PG%tH)mho1GjbIfU2z8mY4_9)-4 zIyV0NSn)RB=jg-q!m2wKL6`xjdE;x=iWXIN)DG0vv5NL`c!zMgpul_hM~#SdoEb^H zvlL!X3`Iws=6OG7MZ6Q<|2iVlIckI~wPbVaUh=)Lt+`O*g^d}RtwR!rUEztR_U$*1 zAE@3N`xcZNDqDe!u~*jbEXB!Uv8REat6GVNWyO1CJ6&P!8vx{a8JyOp_$lc(@%r?a zg8qd*#QPv#AzG;Hm<#8j6K`e{Z`sAy%F4Iv%GYErZ3i2r-j)85bfO>^`+^2 zQ1NcATY}kp+>Ye3pGH;w4>p_P`R2ObE+6=mT=;2(`pM%{!ta0Y*4A&6f4L0kP|cM9 zHvjU=v&Ce9f3R1Whd3K?CgN#`-Q*J7+2LQ`I{z2j=lCyppJL9~_%q6ddFPLKB?x#h zd|5lZrdqf&XA-ry<_JFpkK@BT&QBjv8Ly3i&l(T!I-l%Jx_0nP9cRu~o`*ahu)HGv zq?mcF`y^afA^fpY_^@NaOUe?$hn+c76;}Q&_L^{8PbQq$vp~;F&_&tUlL@-KdI0E& z*JUR}LUC7q;(bkCeMUBimuw9Yx4+<`v#3l=G!Y8A51|p-~O)s1YrZb!dk?L z3q$97uF%SZxItRgG=A7aqd-L?u%e*&^{yVSivao0XyFi*|A0mT`H_(F-`I}GZ_uPr z`6p@=kUu`8{3TTW&YBb|f1?Vfq~U>XCPQam*ZL0baW?!kBvUrm;~taP-~39eMsGH+2u8pxL;>(|2=W?#_xnqZ{~bRz{)2A6^FChZD@`HSfA;x{U++L> z`L}8oDJS1i+@evF-Jd;1MGewK(fPfHMuGV)&R?gCIh`W^BBqUHN7htT$2kVOWfQELG-s9B?ek4q%~ZRed{&L9E@X%amB*C-%6 zvCsth|Es@q#|T>Z%=T_|RQ>}R1>}caU-qQ!Z_uPr`6p@=$n``LCu9G;Su{{7D~09_&&x|9 z^sUjBk2CEjUzuMf2f=*a?&q7x2;HtNw^V-@Y7~-W6z?y|Uc3mVR(U>rf#ZnsZ!$72 zhS42=Z2PdUg_iq)dMo1}N+qm6R{2|;g#qn@7J$v}00SuttIJ)WA!^ER?i62qD(P(g z6*dUJ_GFuHFZOaLfGp*_Q98BnJDsD;&}5P=!C7$ zkDVb4JEnL6U2Yp;thCW@)~M1@H`%`r3Z`C4ipcvbhBxx>2VB5>Ab`hz_EMBALir!? zpIO3xvd^11FOXvH_rNYmf85*q{Iz(0iJzXv{K$IT1BX z6D8-X^E}ZZ8U<}B%=1K_YVodVf4&;%U`ek6xR&G{Uq?O6`Gz36M?Jp$qnVyY{k=!y z-e>7FU9M44f1%(1^=m5XEKL;E-*kd(K`|A(kzA8qBO#3XPJ)`t&POjEh%ATnt0g4B&c2x!<3t zD3b~0ez369Bb?7#&@na2<<&PiBfDZbI0Q?`;M=@QsUW8BAYx?M? zQHegX6kjs)*K}^?kK@%R4G4{@KS0wAbj*L8UB76m4v#G<#fJ}_N**JvYcVQk9Ik& z>UO#^UHC83kV`ZwI=`U%uQjBIU%zEQ7yb`m8`ke6y1@Kcts{x~RH#u|{q~k+lGg9@ z|0WuI2I|y2>m6^9%X>6xNd2Beium$jCISk-TnVXe}rtbT_{-*C1kHkp(frDpx^3!@1P^|sTK5*2mk8C#FNb9Xm?k5h>X78jQFCHPER|IWt(fYLg z^8ereW(h^H@z2)I*H5CW(3P(fw^XQ6Nj#bNisVZszW-Eny{7nnHPB(cz6!w4S2QPY zUI(t_eDLLWlI0ia^0rRMx39r7-kyBAnV!b`V^6(B6mSq-CT`HEN+0k*ZpiQB3|K=X zPtioloije{(osBGqrmMMah~zkf11>7f4^>~CdQ=icVR66(Q5&CeJ2zPi1Wzjf0ZNT z=w$yu&gcAZe1G}nH;Gn8|ASoKt5J>d3BG^#AX!Yke^*2TVcx&{pI1p$m0DGxmLp#x z)B=sFlo@z_;x|YTII3yXiAhyQsSIUb_x!9`{s`LC zS(*f>{aSiirCo-U|JiEN{#`T)Ab&W${9O7c)jKgzn-&JP{|QoLQBH=}zW)FWP}3~{ zR{OTE5AKZ_^ZH`3KjZn%Q2gn$&&#EgbdSCCx6@Wf*4@uvPz>G<16w0 z`~CkW$|RltS^G4pYJ>EbPR-9z>MD&IHvS<+4Dk=pLBC4@toq%i{o@?!#TGtC=GR1x znyi03nu^**69uC_oL+vu%B?q~fBZ+MTLc9DNs|DVZ_>+4wabwHaT+ON@Q-D{05wGb zeu(yyuJ<2EkL*m_iE`C)F8gUzqyNDDS=--*GLze%9WTo`RozZK*M(0Bi4OG=jT&-) zb~Tk>sYw8}FQAtN+GR-plu3&C{nNV;07FG<0j&0A&!0K_erA0#t}j}C(nwF^`tzl9 z6ONvW5Y=iV=hv@M4;_rEIR>fC7}t3huc zVLs-E*xoeF-(u=T+n*%Urk_SN&flqUa}Kr;XUJk={w7`~xcFY7@Q(ib$$6+Y7eEsq zN6B6c52Op)4jK&}e9u)AGy9^GfV}SK@Smi<_x%y|_*1AS8vZcp*hr0@gy719cbAJw&LhG-_fPmVC1*neU6g_9&5fmL?J0#HqBtX&TiXTI>1kzdS+Y@1see z_fL9j6u3PzFr+^{jmm#$gTV-87le?aor z09O5u0LLie!7i+?nm#+nq(R;fas8_r|HFze(zISLk!z-7ElrzdKZB-ZP@)C#yZ1OCAP?W{?m@;5%> zHYADldNP%NyDmkp*Q?&w(A=dR?jsF|F4FRP_S^to}Sl z4v=pj&#ceM-j8nE%FjFZrw-;_YSf==b675;J@9$wzbQVCI;_vD+)ZTp*VoH{4(4zr z0I!ekzMs`wHqyDD_2Hj|)j5~%$|r$_aEYlZQCA~P_HrP z0oV7y;M8hVVvo}mUo!T10FmXl$6i2(DzgB1eRQ`y&XG&9V}NaP6>}~pYSd)y@j!1` zuRZnx2GM_jt=NC*XPgdSC|6bIa-v2}y8qs?zWxJ)=sy78|8Ad;WWPtx|8?*Aqcp{{ z_tOddZ?%jkf{sfys+!N?-|u_EZNxQHYN9}G3+QEmb{R6?Fzjw3e*+C5_tgYKb*nTg z#*^|5QQOJ>lD+P{6u%GrAZ^bStww0T@LNf1M{3lt`(IMT?+?F#xd#<}4e~p`up-tn(pD?5El1iT>yF-_$@)qs#7c zjcUx#iTrot4L+TRd7gTREat2nQ?#mJ*oXg~=y#+>4XNM0q=?_&eF3Hl6@3lB>zCc0 zvhVxLF{f7;etO=L#>4UBb9~QFh2u}-d6}o^EG(ys@(mg_S%0>Pu4q#(;vk&bvCf0ZX%b9HEOc^*$LjV-u-M5Fo^yG@coDVY#*GE=% zUQIk;NFD>$U+!mkpL8hxG|tb1>4bclE{i=is+ymWtPlBoV#Bq>13#phJI$xxq){Li z=#zMx@Q1$@0!S>-u&xcXffIP|{MX=pry%Q*T=;RVP?P?CyW3=OXMGr^)dFhY?`qPz z12t;M_2E-#t4h9c{RcW!^eTYWzC`1l7odf(x8(S}54d{I>l^85w6CXV)Oi72mT%Cg z$=cV>RD)AAQPjRhYZQF`HU1l^eNTEc;Q3cgj7i_`!qfqMuLZE`8~q4-zr;=_`LC_; z{Kc0v>RNprnMN;ZR5spw`U>B?4ioQPB8xfmxk0N6hJDC87`YOYDoQ-k|KWn z4gfkx9tf}v>$jLr*ki6C!`e@yvig1V(v#IN5n zpo4xR0KxiQ0b!r1YHa`H(bzrF0P zs>=ZgwwILiH((F?j==XkrIDUSdpVd!Q8g+slEE~LQBRGUu$QpkUud|5=<^}X5~aO3 z``eo|3TiLR{`L$~%&)(RK!+|&2H1x67p1f24jLql(x}Pm@Aiv{{=U;JgX-^njgo}^ z?k2_j`nwG1puZ~twqgCOVU*n5L4u?8C+_>*fRw8oF6D{6zJ7Q0emK2k3|<%~ zzU=OnH@qKi8)$!;&Rdkz33W4Fln&CU#(1|c+@F}xAtsW_L#>|%&*+5vzQW$Jm=o_l zM8l_R<79UJUZdhSNBe6{g|x*$m`l$tm4!TMi-YvfJzNZP`w=m9q($lZuu`oG(|jEO zbf{w>fOWo($N3mR9D$hPyz}K#yFtE;m+*VR@Uh@$;UvBGNP%Zs&xL9IRbpCKcGSX5 z`=B!Zv6`VBXO3{bfKI>eTM_Rp-PmhDX6pg+yXM8-2|qEB=9Zr|A1cKO&e)puJIJ!| z=igaZ@Pu#$ogSI7+Y_!pCD5~X!tXzImmFk=F`9RpW0T8fS>-Me)3GQF!AWy7rQMm&95hc4i&5f zu+Fb6F`rW2PY`3?3i-j8sX<&so#4G1)o35$e()KZzg6+bqA>ZvpU|o*wW?s)k6i3( z2QCXVD#kq4^Gi@9lN9mCtM7v40NYxCZCJlw(oufBoeb+s8kN=WwdaU3%N8mKj zJ=T%mlVanYA+j3BUWRE+12yh5ef&f5C8LiTBFjHN%76~~hyYmikp-UShZ}!Q zqH*xAY1mV!QH}l?-*0ugESB8+iH6Xso}rq);}=Bn_h{6x{*M&#>$eW*!v6vA`eiT!Z_ve!4hkQ<&@*%}kOC2<9>Zeh0 zK6acazUR8f*{=HFd>g*H#QMDMu~hU!ZLS2Gf4oVfpe=;iZ=FGk`R!pM(4pm%0c`ew zdS~v}Id;L&J-27J{P&lmbd=X=dV>Iy zNkV_0YE3o9KR}0iUj^8P_4nRFGRo&KAeYNEYO?wp)JjC1rHP{Yo32rk&|f|&=AVDN z10D321F#M2?_jF1HD{7R@2OFf)n7vk5%thn?j_aVO&TQ${hdLI`Smvu=%ByJ0NtoR zl7H9=`Nk+!*g-VR9Hmi>@vg`>?%E_Yqvsq#K!{y(8nQO7~~ z#$S;le*MOP4)x9hu{PX8e(0Jn++Oscssrn4!Ns zT@>D&kGI#`BVZz9?~1g8X^qc{#3$VXm)Au)N1(-wK#LIuFQ&+NC?4rpaNSyYtxB(S zOFsssmocR`mS30Iy4S|?rJ1b<$?wDus%&4dQVq?bLF*%t_62uIv4SP`23%f=m&-Dt z3mpsog2Nbm9_=60V_cvOC)Ho0Mj=kEZNch{?8OjoWt8V{uIxDC;Gbt?TnwX|b8P#t zufeypT`&dY?(*O$mk(D|VCg^528 zSU)iF=N{|#P5imj`rYu)*bYuV;l-`8zu7x^@(*5rr>+y{Q`S_(zmi^QfAJ^`?A_rX z%#%lQ0i`@~|6hEcX6%xUvE0(LhiAn00=jcfrK9+em@FZgVOX}4F^ls!Rxgd3?DJQv zG*Pmw_xY>)fB~vp2Hsd-pNCJYnQq5aEB`6%#ngm52NsP3Dm(H+~WDs=N7 zI*1+$5Ip~Wu;)?AXOU5Fp<(Dj8r5jOVt@FyR9w>g!&|AoAEGs1TSMCQdyN`$e|QEd z;@=-m1Ul$BRgIJ5RHI_RS`Dy!dJtA#3(*6%B)5)HmiYkouub=viWMh&Uo zUy&ky{l#(0T+J}o`+?C}lF2SFrN86T4i(G(oCRbNNf zqAAmt(cw!Mu<2JDCifJ4V*ew~TW$6F(-(g&nNIBN+bFrL)u=}MFI9P+$K`56-hX|m z2%|gtw@NSO1ZNn`WMA|Skk@Tg0b028?o;WC_6%+59X}%tzel4w=dETXb>8Z)bOuh* zB*L^APU{<~Q6U~o#B8?rv&^Rc{X5Ma(0J{AjiSBFIw&42IgO0S)tVG4|2&O?4+8vi zvMifaJXorUF~x%efDQvU5P!ch5rYz>LY0U?R2uU-3s?_ZlqqLoL;tR zmq!04;`7qf;L zLAzx2+gK$AGU@nyh%Dwr;KQ`4VA%JY=xPTp57ek3_4}!|KA7~o8t5STRe)_+zwgmi z_f7uBv`0GT1H|NKa;feF_tCv~eWfmbocuIhC48C=o^#EM z__Lnj<8&=P-+J|@FFt>d#+i@P%jMdo(f%<$KR|{Lruh72X~*e^&mX2M+90iIFkf~( zp3IlsG-`_R`QCH}J|w5OJZa%~n!BO$ z-`6N0KkWD6O6Ur7wI+qiKTo4TxGBEY_RmV$w&db}O^j*18US<wDrR#rj>fuWQ1+(XnxO0ipB!{yO2L-M%KCze?PH-Q;h=F>t?K);}<0{XMZ# z*)s9uF|Azs|7AmajQfMuf8Y4!%I=++CxvVr1!KOw8bTO&_*$qCiO&Q}dBNpbb*T27 z@y9VA=|`_NobmqrbMN=EpAS5F&-0x3yzlupv$H$1%kj-3HsXG~ zJq2%N&`8bo3%bzAPBhZxdh;$3d6$gP8xi*kQ&4kpx4q88Z~DVszWj2jy)ilB&F5%t ze)j3lh#HTmm!)q6Wd3(fedoS~KL3*4|5N?<%=o+S^X2FNK9w)en&oq_Yyvm5?s&J_Cju$vV6t|A8*gpmG#j# z?w7_H_M}+iY_4=a`Q*z2wV3xBlO!^O;S9n!n=nZyk>fxBcmy_o6@lnC_c= z`u9ElEw7IGlh403{%3xCe!EZqfA0M4Z>QGJ@#Syruck*{-uhnjZ;h(C!KcqVAHm6Y z;QRBu4Xs!{D{@a2->ofCfBaH?AMd~C&)Xn-ozAQC$NO)%>@Z)v{`vX7oL>zZ|Ju1e z|JMHAwDHmb??r#Y(5*?I{(X;s`>ki*^FjK5{?nT$`~6?Pr}~B=>g@eM%odzj$BSfR zmoE+DbbjE)m=QjG-}w;qtv8%-t6Ai}i}Jr;?7ZdHbH4BMSN&nP|I_||`T0lL{tfGn ztNbY2zb^HyQ$Nb~H=p_R;~!=FNA~OgD}Vbv=lAc^`@7b6u6n@d-@5-C|Gc7Gko#-_rGD@`{NSB`{QBiOt3_~E9$6Wh$$|xky>aTaf(4&>0n|lv-wLvfuNQ)>f4BYj zu>K?7`X6Rp0UXaOf1ViQ@9(_x=V3U1ALh;cQ0MQcacWPEz&CFG{5v~uul(3Y+5XRN zSoNU4ec$=p`!e6w-?eee2kHOExBcm~57Pg?ZyBHYApL*l($W6+*B|=(x9Gedp5f0g zZ~lMa?_VD|`Co~Tvi*Nfy!8-Y`_}#W0p}#+`CRYw@#R$fM&^o^h2|NC(OzMoj(7X z>*@b@KL5D-g)tBN`op?jB3~JDvtO@HqI*t|6pJJ_oe@9mbdm? zWefL#RsJU|K_7UVK3{)t^W(k8r~5?4i?gS{J3sxeKl|5sE#D z^U==MXKTLc>yHn8e*fg2wa@z6|3LfWf5Uj}_jY5kuRr=+uZpQFk#Tj*kgsF~yxqz> z?egYh-ZV9zjcKl5zK`vDVfDJimRlq0dggw6p5Er`j}Lu*o^arPfAqEge||jvcJYi4 z^!or``1~sW`&sMp`P$Jx==J&6`~Cj?xu)NB`^MiI&yG7AKmA_x&;QrRqy75#dVY9V z-6;R}A@aY!vUukm zx!sJ<^Zkh8)13);arT^#biVS18_x6fr**#n`1Ef+yG-@b4Czc259pZ(>sqx}9q?CV3LANlrAKg#xZjj#Ghzh5!&%-0|DD)OrKyld%oItG!i-7VU7fBE-K>U`~cUn}-s zZ|l>3ykG%7Z$;MSZWJfwM}ddn^~yTo9=zO7;GgIn%&)Y;Y+xt&cVB*gHYlDlH=YyS zcuviaCvXRX$QRdRz2o|sHm>!5@63h7&tKkr`sFU){K(%wKk(}db<=P1pMQMl?JsyZ z<6lpCEsf`urdCExof^S@+$`H{Z%`^=YK-+aV; z34D7N;=&@||GqE&gQt}`|D2LOr`P+@_xt#=`;MbF`ugibpRb=i@WxMkl+3rY^5x%WKILDZe!u7If5*ROzN)tn?)#gb_r;~&G_ z7t0r{t;UnPkEsTku5=ch)N?~9oT+NpZme~0W_GQ=m*Y9+zr^>ra36m=;3uC#B#Oap zwGi$4|CZ%k8%AGvi&yQ?7rkX8B3g zoBBx%avG(+sW)ZRrkayFrIFTyYOZ(x@J8ss!EQzAU3F8t|N58adLlj*QcqV4_3=Kg zclIokuoZef@C;P}Z^(P!DevXtp?AF^C?C8D4EmJoBa9lSFoyea_r)tSJH&mw+F6n7 zU)kSZlY`9iQ>w3xx_6OzyD3)DwV!rNf=*j~=Ntc<>-SFG{{>w2{h$wufA`&jqLNR} za84WRIQTp6tj8|DzTlu`1Dw|iBCqs!(*1^X4sdSkS9$vY=goeDzdyj~C>-)11DwYS z4@AlD3h{{b4gH7V&#nE_sQT_*QwkW5>`*9zrNIKm6@6qghworT{z?g{9Sm+(*vAr;gHM#=P!i^qI`ED9)kK@ z|6%y^pZ%A+jlD0qzgzI}(&C*3PSxPY3!E<$UFppFx;U3SMigD>98+|%Q(h5hA9mcJ zcMF`8in|J&Sw)!wr?vmm0%ze$H#DhV<2*UQ!M}rc4tClGMxGe#v=ji)|B$Z~JKx#=K(G(&k1<+3co_a%KUlJbzcZZs@yGoI z2W=kcyj&2uf1vc+%L8ScpBd=h2vd41cd2sJc)2ykS4bxnaM9mK8Z$_KUnS(CO+of51 z9#T5^M)Ysdna-(rNWU7Bpt6sTk)iwS;57x#*+q@ch3*Kr{eLqK}TsYMCr^DOWA`>r7cg<}SNp34Pm4|e6Ci+b4>zJFcOT?O8H zLw(ry_-(WQg9?f&2Q?K;j5!X5&+XT{+_K9GCRX~&+_>s`#U=H6*9qb0;DY@t2Q4os zXc}~_7o?2kU2gd;QVx<{d&=K~K5RZ=b?-6WcMBpVAOA&xbILUZzb$Yw1)q@|K2z{X zC*e4W0~a_mOB`ouLH~||f)yxq?sNZC>Ari{VFi)OK^vtHHWU=xSukjQPfrMUpo6Ei zoi*q`3JTH%gYN91;QznJId!vU&0Eltnpj^yzoE6&GiTP(zN9HRW_)#1ORCkmykS;q z-uy2(7duzXn_u7R%$nCSyJ?PdN%Oo}m(FUeYigOn*^Cfk&E^VDT zd*1w+Ee$EuxYTKy(=u5=DPXLrSQ?Rpt;#WT6N7clXb1F(iYq)-RX6gHaN)z zmozucnkm}WhFS9)Qc~?)w9+tjQLlQSpas{V1HKUcfRHHMuZsE+?ux7S4UD=QmoHjR^ave;qo73u~jzhV9* z^IDryi)tD!Z)nDd(VW@r+Vd`T<|R{2^IBRZUg?#FnJEN}BwFex&##-?dQL;D!~r`s z6SJbJ*|}t1{i2zTb*+s~>!Oxf=cejX4U^`zpo(WrX-UkVH^-ekv**v7JF~UnvX*&H zY99ZXwP5~y@urFwv?MVt8tNzZo^>)k)D&u}M~e$uW;N7Zf*!!^NMZIkG8>%*Nz9ps za}jDyli+-$clLq?^dl;f^n!B3o7pPSI&&IY8s=lPIMdw}&Z)biXR7N}Q_=hdn97JC z$ccfHnvtHRqN$}$yed-ZTwj;hH8<6B zjOW)~(W`fyOX`~IFa}O@U2Do8+f4K{2KmZ{mfVz>xggbqWiLJ?tEReU4zAnLZn?Lr zRc!vS9E7o;!D(uo?=DI#C5#vrcFL{i>lH_};wy1u!9t#wYHU!ovEt{p&T-}~NC~#) zyTCHZ^>V9|oZoPH)4T<(`T4cZouztP{+Qd4YMfU;rT)wXb1%VQwkYVu$e!nJd{R1p zK?|3V>@(O3>#_M@#$%UiO3ie)IGNM#)ac#iTsA#3t~V={)N~8%syOQLmaD-&=sm~yZ)w9IL!k^MN)Yddx~;Fg9fX6EhHvzq6%HaKcB zo!M~3=dn%CZNZk?f?c3zL&sdG$99DV=GS3&!bsI)E62gcY48p@Gu?w!eFHXthKbG1 z@FQzVEOAMhR}ItFm8(NnuLBo0+g!VfcOAF~IUcvX4Ms&RyPUfrs|_wWzv*%;3^(7p zxpKUAWYJ-!JLuhcS0MhD`kB~sy&>q?cIGssdM!t<8L8kl0A=d4xr01b#q6eqQixGd z2PYah(46lbPt@TBN1Ytk%0KfoO><>(^y&@o*giAY&*&gWDRcdT{>&A#lVrj;m)6h5 zp^=B>);jDJ*e2(@yBrRJxh)epOp#r4UQ6Eb;xzYsqfapxE{~At($uNy496>Rw@eHJ zi{(g`cN|mutL(aSp*!6@4dF>oi@LZ$5&f;f1Lv85eisQuAP9OTA15Z#i(m zc#DY#IN5rYT+J3yslCSiOPy)qFz)(Ab9q6#PE$At)v1HB&udPc+ssim)xVFr2Yuhp zD*LiTB$;?|V_TFXB34h+e4JeP<`zy`(4L$FvApjzlLd~Wo;tDNnT+z0H`inXMs%mj zi6sA?BxjlYTcsdI^SnCj%WAux+>koM-Q;oZDSN$p=HQ-qs7*T81>PxgZUfJ8%6E>* zEid2Bos;`raa+%kIbXgV-;IcN&bd0B${SB^xH*SjYkdgS5{qRTIQ%=;LiDQro#@F? zXMg8Q`#Y_TO|w(c2`5Km&T+>bpQ^_(xw#d1JpX9MP~x0&e(Q0KIM(90KD(|N8*!C7 zN1osulZu{va`fowv7-a)yN4uHZJinY)X7mf2~VcxJF&9zF%@G^7*{!d;%85tblU0a zO+ys#L!wtj;paH@hIQZn`+8ts5A5rKeLb+R2ln;Az8=`u1N(YlUk~i-fqgx&uLt(^ zz`h>X*8}@{U|$dH>w$eeu&)R9^}xO!*w+L5dSG7n5BuiBzWLzqfqnDA-y8qi_XmG2|DC_{ z^Ut?EpWpl0pwZ6i^QtQMJ9Eut_f3BB@SFZ{*VK3JTlmcQyYG{qahIPum!B_}pX`>O z;g+AGmY<83pMaL1b(WuAmY-9WpA?p#36`J!m7mj1M9X8G<BJoZ!`Jt~hAl}CiiV?X6lp7MB0d1RwJHc=j3D31e_NA}5M z_2kiZ^7uJx%*m0|ezUzbo&i z&j4ZB3AhWQ*Nvb7qVYZV;{=dpV|qNuoufgDiXMe~>u7*v92B_wB5*W>>wULHfP?aR zmj;xM)J$IVQeWwA6@#lJXeFl(a<9n*-Zd47>m6r$Kni?b> ztGyF7Kz+h_?rp09Oqu7$5Pta>?}jbzBR4G5f^X;#qmyZvUOAGEzH9-wj2G#IxlnttY1s-(sY=E?EtnaQcx%o9n6XUH} zn(c_RuJ#FX$CJNn0-7ivBO>>1tKRp>258I5M9ceTgZQz+`|i35(zrqSG(ju7Qf`CN zW#y8+Z-EVJr(Arfo2aJL2MJCPL60BYFdHNq!yB@+J3)DQ?*1xkSNm?evS`P|eA;lM zQ|aAr8`ZEci|=bdMk!74w2x^M$kHm1&hJ8?jWm8auj19F3W z09Q6X;LhU!-B|a2;{c+p+N4a9P=XK>h`+3j}%>f>BN4ngNi@F0?**NcD(R2O~;IRzHPT#G~L5gxH zYP@r=0D%N0f<8B;258H0RHZg(qm`qx(AKl4vdX^qOb0YKzUO}F01{`v?tRzV;i-`I z6HsvsZmtd}F01q%L6L{tR~;ZLFYj|xwR^91kaSERsdnQp^G+di_hbioEDydFK8W?hOy}=SC-a^4{tM)aRzXj}6l6!p513cTVr#@9#cQA}ESV-#J#OFir@pppC?aIYr(h&90NvOvgE4LC+)A+)I*I;{O5%k9p*4`X!1_)5cTEo6Us~C2;wv3b@6pu_^A7=U&lGqZN-aL8S;P9 z!e_`&1wJ{g|3t55Bl|b%KF`>34nrJ%ejWMvAXVdZ1%2{wv+!Nyzl8dJ|9j}ac7NqK zpD&uFn(89|6in3b(|)E{)z^(*mxXtRsQM!m^zk3H@Nx1JP_wR}U!VHv1C-46Le9nQE_{pD%$b#l)k{=N0`mfExcaYb`m$mTSeV)`suRp zv5%|vzm&IrhH-v&9HMw#|79(FH+fzEMGiHOZ;ZUI|B?(Wrrh+IpYnWmdFl8p`KYVv zyZ>}s_{d?Z;tcFBf%ESZir4vXv+y0{OEvLzS@_6sRq+wc`pDv$nDWxCpXd>a=QQrq zzcC9RC;vR$1nnQusPeBHpM-@^lOF>&pK|u=6JN%{qmuj5t-qLsuO-iEQlPx${!d%@ zcJi;FO3?giJ5u@5^?$pC?;x-1|F%zC{9E`A@>>5Rm4Ds%W-NR+c|7(PL)CYDqj=t{ zymWkmyl#HCAEoN+`nSWvXUOaFZ$Dc3*Uhi2h4)VUbo+aPj&*!H`TX;vdhYKIHx_QQ zedce}!pF(;Fw&=ft%XmMm;F6x{%7zUYkBF$Cu`xm$m_-@bDZ)YRnRB?E(`DQ#D{70 zsUNfOwdCK?B+0@JOZHVdC2&uzF*d|ejaDOc_5)=xq+1pz&!xN!8cQudIc4s?7ZxweWHBy7|?1vhuGxzIIsnEcp@2O`rbjw(yY& zs^SdP4BDTPr!VFHTh>Pd^h=0P5tOaiqP>1 z^1ApE(^Y*QM*HS(;j`rVHm6U0{6d5K((y6!_iOsEYlfs`|Xl*vEgCd|b);@R2%2==cQr*^uG={Y0g9oQ&7LhR>3ZU7~6nP!K%7;57qdOTKG75?fYX3pC+%1FSAGmR-%co+rmfXgDJd*Dd^LG zaSLBd{uR^@>c7NQ%JDdj|27MsCC|fTpZH>nm17;>Mt)}A{9D8M*PT}N`8K?d|L8Sl zK0#itKjGDtcC9;uY3OxxnB9#@iFo$3jR8t+~b;pk`3m>^z`Pc5>7CuQ{w?DR9_$+zd`tG*yk*}-xb?e*V ziMy_UVivxZyl#G`Eqpt9-TUkAl`8(IfFymtMpQvP-GCvD+7$e*amzuUsc?obuqLHf|j%xfTEqoh!-S}iI zd^dUB__Y0p^xRn+xQ+`=cx>-sNtpYos3#Fw`4S@PdPegE~V2#@dS?<&Xn z{BZKI?}}#y4u=WomTJpNjhtn3moxJw_>u*(H zy7?W+n)w)c-TY2i_#}DV{LVgUZok{YN1jskb@9b4e1g0#zK;Jg$CtJ6-Q;!gMYdYv zC$EdI?RTpFa0Pw#hYky$C4Z=Jgq9~KEKX9qj=r?>$339HdTM9CcdbJkCUIE z*}u}yn&WG?@EP*D__{2-^PFm57hnAM=J;wYe44y2zIF?rA+L+i`GbnDT0x)rm$2~d zf{-o;f zukoKGf43&S$PQIew?1MPK0#i$za%Yu8~GWU_`3gMjxX|8GanrWnWb7 zM-?E8-mh*8AK9t&+UpM%K1u!^P5&kTru>&E=o4SNh0l`L&5v#iANjj#_!U6V`J1!L z9AC`B*OJ%8m$vZj8R_Tlv@VG4i_ezx1oBzV7(mZs9ZJKd#*LnZI2Y-ub7hI6<>M;;$)QH@>wNK22VG ze6#Qw^1Aq(*Uj-oEqt83F1}g|pC+%1FY|^uzAg*zys7Hz;)`1NIC))s={@H7+AVyB zyl(w=S$O9y)&304{HuLi@s$et%du3KEFtN=QsSyP(xa<-m9o~qg^!ch`sXcqTK^V4PG0N3pNjt!P5;zd_;&I$P~ZRgewO|3 z6e|Du{C4mBkG$^t&`#BEPUi3bN|OIe1g30{4V}6v;SHPpC+#x-*yY1A+H%uVmD@i3nBrw-#Tmb| zEP3txKg!%c5%RkJiIUg#Pt4*!Zt z{*RH@`A?A7`A=K?w~;><^8+sxjQZRCKSN%w9|g{zW6kkL$m{&a$?N>5E&kgq{xcT; zPN^k+^4j>xYvZ^0Z?pK%So}MqE%B4r#!p@wzr}wW`KX#RedbRGdENZ%viR>NuiGD- z<5ZKn{UJhruqM7JdENe*B(K{)GZz0@^1A-%Ca>$C=<(+9jghZMenIQAoqU6akHpOW zqvUn(k7~*5-XFDF{CAL-^S_|@V`VD7l!oshuN&VC`3F!x=>225T>0nc@5+GId&S3? z`zJwuDJlf{?;^iM!zU}u{?p`j^S_O}ZvMAh{C8OVXDt4+7XMx3qpCyu^sh5k73t=G zjJ$4qx>-M)=^1A&kY4M*Xe>&EG(D5ZpUOwLl;-e>-=Vy$(uK#Pv z>(+0(#eWBR-Tcpz*Uf*Y${c@$yv~1&yv~2E#eb4~{`H-%*($DX^7+@Vc9Tz@Y>q!o zUN?W*$m`}$yTyNprGAFId_Og4{&ZRVcay&b_5IiPisq=i+a@TyE02$okDX%fpE!A4 z|0Kxk`lr_7KS^FU|J%vy=6{#Pe>eI3{;Bl(Cm!5C39o-9TKb24{`_oY{S5j1`MH>U z{Ih2N3G%xBNt4(0PsZXuOFlpTHpZ7YRmGPd{~GdH^1A)Gi@fgqyLOWDzd$$t$?N=g zlh^f6^fcvP*FUx7b^ep&b@6wT*TtVa-8{Z&@=@fEmlCVL-T&Lk>-NvA#eWxh-TLh& zuUo&)WOMux@=+CYpZH_sb@A6){3prl;!l&;#ouP}-)`~WVey}__|IDEcahia|4y}~ z|HeBK;?guHhBlGm;`&-uH zzsus^IY%|A^B*Ixi$6|Y*Z)cKy7BF>_|K4!sy^w{KV9T?@kh>8Rdn%3$!qr?^1A&k zZtn`4gF{#!okY66AH`TTA{%%%7m^ z(Z4~* zk0g2B^~sFIf0n#%{x}zy=TDrxF8&00o&U7Of5zfJYw_<)v&2tc8$bDrHT~Z~eujpR zTxg#EQSwpL$4iOT-|qi$^1A&wY4M*Xuj~H~^1A(@+v4B3NQJEPA0w~xpCqsA|Fp$_ zhsA%l#lQ0f6~AtLYsu@zH%ne_6ZT)9-O2Ztnd!>EZhy;?*X<8oUli@#Te~i|t`Z~VW!na%aF7mqPPdJyT_H}&J!pAK<{W=9#CTh-c3Km8N-i15q zoJgd2U{M>IE`>2t3by|HU3p!JzvWf*g%e!+-H8W8uG{a_Ap=gk7Iz3Z&QSReuYxOG zZv~zo@gZ$h(+}^baU8F{RKiPilkhJQLMQLZrcpNxf4i>$e=9+F{&YIYa|8Z)@x9_Y z!+)N?$=428(f`K6o7^l_zw82C^gGor9TvTtKl*bS^~U_6YYU-khHe#g^8UzudGXSe zc2`1|vFIwGE5dFyy2 z^y{H-|D%0ewnMings!kZ@}W)_r?guN-Leq6snDgVGmXn)=vH;9JWTt`8tB?X=(a$& zmO9h^vKzXrMJMaC87DD&sFUAAmRHelW5)eO`e`ca#dp}pXEAh@A#`h?i&1A9pDoap zgwXAVE=rwge1;E1e1B1S$oaVY^7adwlJ6ww;vsa+&{b0xW&ObQ@AIeAxyL_WeDZtC z?#qiWVBPG3zVStskIt{;GqlKYYD4I%pqoaW#N)oa_Gya0dY?a?PRdt6=f(F({{Ebo zkDEXAdv>aP!t5Knpda=(rH?Sap#C2^2xJId6?8jaQvROL_vhPx>!E9>Khr!~0o~dV zy7ka?P&X#O-BYhEyb)_v`h7cen?vXd@n)opx{`cK{FAy-9RHqm;+tPp&~3KpWc=!(%TgC+ovwtw`(=ASZh&rE2;C0o zGSr#IuXqT~&t6gOn$|%DbmCi2s&U8Fp0$qniC&%Nx&~2lx=X`(pDC_Zf2kJTh zRCyhmKc2K@-4q{y`Sz+^R{>o&b-YfIJ74qpn-1Mhi>?&}w>!p3> zW7@~JL$@u2uJAz259&Cj6^3VLg;Fsn?~IcDx1K0k@ES|=_H@k(0TFM_6;|G z=o{Zq`K->*Kkt38n?Lm1-c)-0sa^s7Kk^{Vj}W>V=+;tannx+$Dyv)&h< zZCyzJ?SQ`R-zp#7d6wvkhvIk@LRSG@nz|8&{+SNlLW@rFSpr>>x*7TFHfaBczWp70 zKHH&N6+%~dF#3l&Q$D58Ewkt(pQ+HLsk7zd<_~?xyDFbB@8i}(-&OFAd)zmT=XU6} zh0qlqg7Y)#jQK;i*`jmvhb}{1sQjVt-cRLoWB&RK8h_{${X^srU3CauAx?_o)EV=K zuF|4&^M@`*U8ww_uO09n@`pZC6e54*K{HC7F@NZWS#)mx&_$>Vl|S_HAu1nvuAckyj(0)xANs_BN^d$o zZHI1J2wmafn19sijyrOED22}Rr_;IlL+8a8=J>P(`ea1qb2QTrI^M2>Zea-BR_M~y zeZt^xug{-OC;5y7>BaX>h~v{#=;I$#`9uxvFNUr%gl-LVG3q29_vOtGnle6HeExJg zDc|jjFHAlo@j+l@sLH33?FEfb4Rj?TbSdcK)P36EZ#8t)7Mn_+lQ%sxP|cq z&98OP4Li)Nlkpgd&8dyLVzyuO$6>wm3wS?RjCzfSo5w@?qXN1Fb&rJDuj`@j8m|1B z=GzMBNZ9mC>QBLECGskI^iXU6)kJZ= zJyNw}IxeN4YY(AY4c%JmrXvRT6|g=wM$x|(o#a*ZDa@bGsQ8X3RPKt#+4CBSdd?_S z52qCB6%a=abbCtdx)gNX)D1QGTMgY#i%!OOBXnKVO(@8VFW~%Px3tfEaEhp20r?C+ z677f3O@gkAI=t1?`fG-6n?)!2tb{I0U6_0}O8dvCem7mW-38sw5W1l_D0Ne38t*FT zJbyZ!0W-+rvhXI#FXwjA#_K-U>Uw*$H?b>|uU6~k#!scKiJ zlXbKNx;S++y>)czQ0xBCjCzeR<^Om?94nzqhR|(*ZXtDjKBu66NSqz`FC9Wx{29Ez z57BM~bZsGY)1g}xqTMCXwTIBHgKjN#rg^>U42RKD&MXbUMjrINpqS@rB8!2Kth6dp;@XVj*;^ zp{t}$7pLU2(dSR6lYDmh;tP|{a7?nDA>y0_U3UmwGjw}G#wUwmQm*#-UD zF=~8tex*N$Vl!zEp{s&!6?Hf@Rj+{KXgzdo7M+aG3h0(mHzUMxd;|2I7502~K-UpM zS9}cmhdNU}70|U?bdt|>=vGk|CZ841ZysyUXFYV85W4Nqby8=_r|?+xk3}c>ltQ9yM*5zi6(HCEseQ-DQ-E7~~-@}i? zejP$L2|8!I8b8xIYxeom=_H?((0TENxqi42`pAi@{V3|YuYmF11zk}H-B9Ti>Lecb z72vN5I?ta@C*}3fdGS3GVqaegefvo&AJe|E0lH-&bUUC+QfJyXit(nsq)N4Gn&%bJ z#X{(&Lsv=NiR{Ln_dT@T^$%Slgl-*ljnuu9-;e(N54!jS`+V3d@rBThEJME3>Bd>| zsDaM&XVRsh^WwYPkjHB1I#03BgN@L&htTbUZW(o^c`&pb@x@iUx_w9Tt%9yHgsvXC z7W}ekR-*}pRd{WTWhS05sZW?vEewTH#(dSR6lk#1@ z_`;0O@Dp(SKV9XMKz;WWa2%WjU39WpC+%;5u9~`U(OuCM`}IDL^nLEI3;NCZ`g8UA zE#kjg#qmTxHsHk@F#q;Kzw`4-Z`$WZ;v!sE2we?y+o&_mzZ7&?i%$A$HFTS)3p4+= zK)p6`n=8?u)b)(lA06#@t%iPczW%3r{bKQdX87@12mQ{omELrI zvK6}S5W2n4?V)ZMr%TZJ$;k0Je>$D?R}FMte6QsD3z&b4ptTzfwb$4Ogd2;C&;;?(K-NAhU)`P1p7A6G)>#TTX@H$vad_D%h` z3%YF~bVEY=L*p<4l6HFc(T*F)!=XCJ@q&=rNy6;|Q>33ccq z_44*jnlgT+(3MzpGJaE`i&J;pestjZ3s?tBM1O%jpLNhxhtO?>EsIDR z4RoC$bSdaMs2joQ5w!2FhHkAzC;4oIuARCt$I0E$XQ!)ta7kRfy!lB}@)>>#_KOg@ zNzipshqv1572vNKx}6rC5dZubOny;fR{a7Ez`VOI60bM0^_^4LB0{U@1be=z*PWo{>bY6U6&UcF^V!Ufr zJ~7pL;Pu)H=(P8synF?K(MJM?zhHe{mGYaU?8}ESQ#5(AUX4&)E3Y`-|w->rSmneUxd`6y%{;}vJ zpBm_PQWqwl#n2C{x9774x=0A!7U+toGv%`zI>(}ue1=a#|F9p!W`}jVE2wm}Hv`?KWp9<&_7MBjVuNnH1X63)ukl#w^YArfk z!gGqJ;PYkbUiR|4y1RFNdEbW|3Egh^Ps~-a{WWn&{|$%#O6u+okzWn;Yg?3G)A2S1 zU3&=KYRQi}(|*1Yx;BeW^4SI5GU{f8$Y=QHa6UiJp3fxcIzs50p<7FxDW8?lwOe$O z&j#pLQ5PnkUC?h%s(hlT@4mcsKvU+&(9h$1I)ttYx=!jO9`_aCuiocRr<3v((0TE_ z6JmTeK)-6f%BO_Q2OS@GK-V5ZS6qYfq0TgaE1>iI>2#9Mbm+YJ!d%B$0sXXAdp_%- zs|}&s4qYR4x;SOL3(v^;)9Ff~D}~OBFHAnup&ypAub(B*MMCJ-L03ebY5i=4&avnu zpS{rSVgH0#Kc#14|6ZW-F}=^73SBIOZZUL~)Qv(s?#o+0zUNG=fi7;*Nj_VktEMi@ z`=h)CE6m$uTPV!j|T{U$RLhJ`yr2Q-G^KG}Z zA3`@gf%d60oexcdE^g6DKF!coQWqwl)zbb#dp;Yb{Sdlc(mr*je1@Kl`D@WhK2^|_ zP!}ejX6P#y+4ET`?T659koKuF<+B62s6{9F6rY3rin=iQR6$>Ir9Gc|=%OKXE2Mqu zO#9n<=pq)KRBI;&@SU<(*VtlSr`Bb95`||c9nsU6TfG!b2Hyyf0>S|d(Xg^p2 zUAsjm=ev8M+eY2hh00;ky?;>wdvONb*R%umqG=_I7~&|Niv9|rtAMWiYUS_we1E>{ zgVUi~8^Yfb=-NW))H{SX0U$Iz#YBE+xNZ8;pZctuPC}l|K~qz^?TvJn))#J9hbuYv?a=& z?mS8In+jbbgl;i()zpn(enIPF4RmpfPWo#Lbd}VFS?_zHZ~Uq~pOF{f_#Z-71Kl+0 zO!=gsOIUQ0&uZwZsSA_O7U&mVXU}Ihbjc99;nUDR)S2>`1YNB~C;2o(H;uY5`K*S1 z*;17cE_tX|zV~oTp!Kxd=TE1T{u+K!F1}at{RQMx1O2uT z?Wds2hS05sZZmbJ`L_|ej72B;?1HY7x-j!^_!qGMu2AEn>nGXoCPCK~Le~u4HtJ0I ztb{IW(MdiVpxaDcn0$6Yzvl*fK0~MD_#Q%61>H{SO!?G9*JaU3J}aQxMqQYEHb7r= zlgbBgY1GSG$24Vpc0d=i=%oGW7h`{-F3tKyo3^V4JiosEVFmPS^Y!=W_07=lq5imj zY{2syu%1?n{_Cpw!ITHB=Z(;HQ8&P#+Xda`5W1l=u%A*FHTbK7ZY_1OeBEc&^W~-g z>wW%Ad8~kL75&Z6_vbsWTn}A0b@L3m?a)=;V(-7gnb=>cn~?9%mq#gdp1(flcRt-z z=n|H8Wxj3k`NJu?`zo6ET<`hD=k$wyFZ7M{dx@t%D^EY!_xxAr*IMF`@hPmu`8Rb@ z`VE?ArO+*-&NSXreg1Ug?dA{NLi+2;|E6d4`9tsJ)06+aJiR}E=yzK3uW)d_T8I6X zx_e;DtLW%Fzj^Pgq}~eDt6r(X{hnJ3_1@jqJN~?S(%&i6%dnoQe|AB)mb#w)`9Yq4 z-~1SkPT59%PygJMr}y>GUicq&s|r^ahr~NloKa`mUuvM+$@ceWe+12=6m;1z`9s%9 z-DUJw^xJ28_b>C2`80eM`k!$w^7KCr)=OS{;eT3~{NXnqCV%Kks59mdUBuF^{(2@@@8%Ex%PeuY;}5?{>Y|JzXk2TcYoyM!KcsyAO!ICv zbl&)w=G{i`V>rgp2K^Tx;2Zas8emiays{kj6W&D5Ftc|COA z{$c9p?LL2|d<$pec+YlC`IbVriaJxiQ=vZ_H-hMv7u#Q$j*A}9mH$b;AL_hCfDycKIn}RM%ovGc`&=rMfcO!J&Jby9u^DgMT^C43|5B*}!pQ)d# zpxYLr-FoP}^D9%kD}4S;?XHI|!*-7~%&YCtZKkd=U+0_8g_mM~rq0xEDRiDcQ@c~4 z^YS&dyBIoeJO<~-M_bm%8lS&o4Z1DRdE;SfcQL%;H@rFL&(!WD=)C?jwc8Bc zo)G=K(&x|A?gr?*{xh|^13D+fIx3!<^Ji+e0y?k%OzlpGF3kE};`0|ZjK?}(e5Q4@ z)#uMNzI&nb=8I{+8rhOtZ~GhKtATE9i1AH9*G8S`c(fY2PU=j@qm9sc^Usv;F6g}V zYwG8rILYw#7gIl1LFf51wObEe2lK!wsCoq)e^)@~tq+{KX?5$Ni-(xc+o3C=&U9U) zFq!jrilN<7=%$5ecdE~y_dcZO{eo}bT@0OfevmS>y9T=M5bbV(ZX0zEwNQXug{-p{f=yf z6Z*R%-=A+@)j;QsZ=d<>)1{#62$An<=vGm8Y<|16CEtzEwNqz09_@mzGeo;X5xnQm z)NU1Y-uyGQTMu0(M7t||{-TC_*Zbl#jqi4!KhyXYF37D9Q@f?mEn^<0cBlIMnc7_p z-9q{^wYvtoWQcaR`23mL-3?uBh<1lxo}166d?!KY`7^cK44t2 zqNN$__2_lbFQgu!DE+0udO41*fPORex;R9)9=Z1 z^U>sQDs4_9gD?j!ZBgT>HQTiTU=-wj=ix?AY4XxyXPejm9wcl^G~(;pG6m;Nk- zK61PLJhv3OJ&eQD?^B`cqR!M$i=hiM-fN)q#@n>Mw?Nm)b}N~8(EEOB|vrg>DsfIJH!-fcNoJq3fm&r&?OwV(6;xu=o2K=wj5F`h5#@mDHK~eK&N8 z5bX|6=lq%SodjJQ{h9J@hHhtwc2`1|r7r65<@Ga78IKKV>>t#bj&D1l^Ze=7yZ9@< z2J4;vO#52}bnVoc_P6QKEu+rV?h@#d)I|}8`wGZ+9dwPK(e8HWriEy?a0$jYM7yQXRfcGHDs{`>wAOs5^pK=MIq+*ROr0@ z-?Xk4L$@u&_^g306QbX@K=sbT>*zPM}|7wQL zi_f%wt@QabwYvd2Z~RR8?trd6M83tic-tAGpDUpA{F&OF4xN{;sh^iX7iN6d`TUvM z-3pyI9;SBpLbo|Yz9X0A{0%USZw++bc$oI<6m;nj?XHHdkvdbm8=*^3XKHsBbd@36 z9eRCk|1z~(1zk~ycI%<*ww&k7I$8nUHtJ06u7@r|ohje#(5(&8ZsFH(e4?&7e|&w% zyHe=9`0&w^dU@;Ir<)30G(fCqbz3C95bf@U&RcJ$bu@f= zZhe^6(In`)LbTiL^Ji*zC3IQ(Gqt+`x}71~-Qn|R`nh9GniF zcf5?|`=c%MehG9A{h5vn>wNwO8~kmBuABW5HR$$2=k=ed-H|us{F&OVfzF$M#~RvA zLFdgE)A+82Zcm8u-RSdY%6FG9K2yF!Z_LGK%C`!-&5X~qU)4j`LEZj_epvzCsu20E zhb|qW-R;mdhG@6&rrhzvly50?l_A=l3SBfryNjVKqR!Or8tA;^hpC^pK)`RjG@qNH+Z^I}w9@AfL#STfamM#K>IUeBvHzAEbUUE) z=8Gxc;+u2x#njIg&?Q2Q?{w(A`C@8!33T3kF}1r6I&Z$1#&;`p-h45&yB9idzL?q_ z`SsjJQ|8O zkJ%9OxeB_SA=<6?`7^b<0y=LzOzUVpbYaGKyU(Ag-NKc*{xh{(3f-O%`A+ruyEwm} zedD_rI&b~XFzD7m=dCx>eBJ_`x89=p{%Fhi?uIVL^&89A`QjUXYtEmk-AT}S>(|uJ z&Cr#wT~j}=gf32U z{yd~D?XH2&yZ&n0r?)`oU4J#{c0=b~e~oI|tw4G6s@(Z|Cv`HA-^kZrrPo(LAG<5h|D0gG zyZ?)S>Q81oL7yX5LAN=Ct{%Fs5V{r6?Fpe<4_#!n%BRnDV#X_ZY=^EWgs$*Th(qW~ zq4VO?wfl5!f%DJ)&gdtIKLZvHa7I4>+>P=Tw3pDH2)wSp^U0%tQf~xt2vF+v2THx| zGnKs+DE7_3f1uvwK&jV4ycj6;&I5|Bl=ev4FW|=VwWzllDD^VLPU5{lssBx&)W4i| z3+>ZrpG^B8;I;6#`(owqZ@@vQ|7YN9sJ|Jw2lzvl-vxXf_B571J-xu`5B(2-qQ4jT z7Vr+*D}Zmq{t6Jw<>0G`^I6_VyN);wDD8g^D1Iga_X0l-d=oejIK^>B@AyK2v#`H& z@+M#b^uGWO1pWjl@qC%s4Ezt|H-dIC?Hv~>-3H)Sz<-Tc&+;nZMwIVQ+;JiG!2c9I zv6OcG{b0uc5sdcs=;f5ldM;cE3H;u(mA@B( zVsD}S2yq>770OrBUP}8?+NHn_@Y@p#*8|;t2mS!%7ZEF1UJU#h%AY$+;WvP8zZ0(} zUQVn6-VS|#+Hc@Nf1-bpxDF`%LfTElT4E`13wVe2t7oYC8-P-N8|~S|6Nm$dTWgel z9q_x*UrC(G@>1Z>QU3Pl6>bGeeCvSU7Cmt~%g-cM0XKs$rF|&v-JetSw*WKX?<8K% z^2tEi$4((0$MU0qvX6}b%0Bk`6lK2*6#M7E?eOzm}TMC@fPZJ+x`E|tU#50Li zz)fhkl=h*t-#DFd5g#G01Kt4rYT8R_*U>(Jxc9UI=N{;81j@KArahH*Dey7yZ%|X(;pVzbeR-p9r4M6GVI^YuMP6mqZVDdxAzwlYbuLnwd zD}b*+e-UvkQ0k2&-ybOc|2+8Y2A{X22x z?{`44|C9E&fPaPmtAXPG3gT>_=w<*V&#|;e(=Gr?y{)IHcGdx3hJ7XRe3l;#6u(Ch z4`BHKpc~f&#szfaqWvx4UnDM|8y9gl(2Wb|#zlKH?E;|G+jg>w>(@Y>{)~Q*cpJ+b zfZ}&5?Xf`dI~pi{3xM~-&mXFk?g60i-vL;{>q8U&vxJ=;P0lrg7$3M6~toTPoR5lyu$TBcOC-2 zkMfI%6)Z0X{#f*t3O4{ne?M_Gup9ge+E>t?PWwz^74SRImC`^q0{d zLClt^@>M|bb3O4&VhgdBSOvTqem+UNi1=1a)&CoD15k8#(Y}HBWnwe%aqt(>o(R$j#qwn5Fa6~1Ky4LZM0LwGl^B?htocQxc9gMXEEyS0!qHm(Ecgy#lWk;ml6lC zeEVpne}cFH_$YMiXx~mdMY{(0JMf1ScbBUATY%e8ekU=-@*3ciq9^V?mU`fGq9>+U zUIYA<=!v_Jp&qze^u)z1Zy`g( z3V0{#mC`jnPj~_tM7XWXC{tut#@dM}{KY+qt0~G#z zp!gdB6n{f#_Xmpp-$yF_lfYY`{{c{R?LgsIk#8nHnS2Z=eoKf$fTHgYl=dI`RDttl z_`3-x{uTm7e=$&W=K)1m2o&8DQKkDCP;?IfMfZK6n-A~-=w<@NUxIu!`QhaE9-->L zLfj7gGwN-j{SfUNf#T;&EMEYW_T~bmy@|l*QSS(#=py8c$ZsE^_@4qL-tQCdCawVP zK>aIe&mh*Y{8-wD5#Rl!@{V5< ze+nq={{|@aGc509`44H|NBa(-#B(Lf=d=7$pwzEr`81ZFO?wLM@j$6Rg5`&>{6N|R zX*;y{9IoPf6)5q(MEhBw__?3u-(mSTY2Qw}jrKCy*U(->y9p?M#sTlg`)u|4YOtfs)_j zv>yhFzq?s}8_RE^y_9yE_Cng1(QcxBAyE9B2$bSPa0kq#4s^WSRDEvQY z@1*@WQ2Z?g%5}6k#L2{?iH8Ga93w!>k1M|~0j2y|p!j=)w2NrJ^fBe{UZ7kTTuPinoJ>3s zD0#+!lFumOK|pDD5bd`PQvO~5;xpsXPXk5&E1>9pM*Bh9_tUysmCA4>bhh$?@G_+6m8F9W6hJBZf+C5}b3n}Fg!0d)6emY)a|T{-Pzf$qM{ z@?k7Li1r}bZyl)oJqMKfPXVR<-vHfxndO}<{~_)BXx{;pc)rZ?%UM2;_8i)^w5QQN zoAwmiPYqG~=C6TK%$IKhWt`^%<@)kDi9mOr z0wupu#Djnm=OEf|4OZ1Q2Y%9%I6v{4p6v>crWozpyb&GlsvB|UIvtQn`mDM z6n}A`>{DY|ehg4_N7DWTQ1+P!%ZpfEK>Mx!s-2gB;_uf$ss9U>{}d?oJ6OJ!<=>)x z2kq;DQon`evspfq_64*Pw5w@Pq&=SYD4_UxyHL%qe*&c+eg~Ae{*(4&v>&1U5bYn( zUQ7FWp!k~xl=HPRpzJ3@fIq@G?CGbW>3HfjEvP9u9Qd2fFPOy9?Mp&}|>+w$Ji) zEdMs`Z_vJt_Kmcc(ryB}?E|+;`^3Y6Zu>yDePXx6_JMBuK(~FCuVeYQX@7(EZM1Ks zy_9wn&}|?1g0xRO3@GDw5K!LtZFtvl@w-5Ys~srq-$86+`E|6fCe{IE9$iR#3Q*b` z1r)yrksn0XDF;$on*-wKrWCjj4pT|s*^@Jy`J1Aw9%!18zZD*H{K)a$0bllBX=pQZgcP}=_n z?XQvl3hk?avL7T_-pKMg+85HE0u(==VfiOnehBRYXb+_Q?!Q!gdw>%Evp}go8Tc*C zgBRaccrS4d@gks%e*!4^O(B*6#m^|(hXKXkJ8!A-H-Mu52kjSWchTNP`$^i5(|#Bz ze(nUi$3K=Y07`pvY0suTgZ2fq&!SyTdlXRoy|~A5KX2YdyqCC?cqLHsOadkDCgRyZ zX?F_k@j&r+ILklA^1(nEH;3hW-c){G1xo#wXg>>-`VX-D`z-$s?Yn8;PWvX>%V;+N zrT)>tuVLH<5?_2n*_((z0ZKj{K*{Gm;>|#b=X%7&&jTf&ILj+pUPgNq z?Zbdl|Ml0E-aX@|jFLnmCa7_HLC=H&Fb)M0^q` z`8-bhVW9ZCljUD$`EsD-lV`>lT}f6oD>{3)R5e*=_!GA!?8`44H|NBa(- zWoAyrHFVKFL_TxbD^KIH+CI2Pbm(y;cJ%{#8+S6!{2a2CJUv}K@$2>!Phd`Fj&6{6A>#r2RNh{H+Aa zcq|3V_i|FS=g=NU97ufo?<(GIpv3zU@kyYx^EmB?f#UyLKsm3!jpbhjitbCaFQ?r? zdk*cHw5QP?4-|ieK#BLwzu}%9#JdA1_A|8aC0;@NBG8>bKzIHSCjupo@w7()#s2{; zAHec=UsAd^f$sdFy_5C}w4bH@I8glD&GOq=eiQAbw9~W~(!Pv#6YUFu;^!z}5#G0r zVEO()IbQEa`!73He18B+d{5JUg7zlbkJ9d>eFsqdPX@~OstzT-`J%F)A^sXD{g(lX z|A&d+0!shgLHl~3_-kSLY?jZYeF5zR?P}T+X^*Ep3MhW|2fBH({4alHoINS5~pN_+p_q2hQ0DE2F~U!?s<+S_P93>1G?0Ofmc z7ZAr04<+solsp}v1WHR~! zpuGP&5-9JJiirPyL6!dsDErC7#P1Tn29)pr9ZGztOWEHAN`JNkC9XS&*8rs-7SV13 zN*t4c(w|iYVTE`=wG7!EKu6{2~hg)M=ZY;D7qVH zUq}1Pw6CB&k9H&NDM0a843vI*=6Tg`TYzGJ6Da+43$Ya_-*>Dbe<)D;xtR7J|Dg2$ zMf@>P^cN5Z65rmg`n4M<{rVE|NucEMIPHgl65pLH|2oT;15Zakr&+#`<(JWJqJ1Gy z>W^jlXqF#Edj#!6X&*?ti1tgrSM~1&ehGOjCC(vECY}hCc@hIkKBI^S0VSV7wBLG8 z`Fjp1lVN!$%YR7wKH7HxC7%T>pUd*uv}e%1fc9Cmt7(q{O8pm~b)1`! z&nDu%#HGY5fs#)WDDgEB&jw1|Q)rI|ioe5I{xOyh21-5-%lB+keqIGi{g-Gz3zYf~ zu>AWh{|@cDY2Qx!CfdtrHvy&o(ZFTMXCU##XOz8(_!FSy(*cxx?jzm|lz6VEy$C4& zrn7u1%g>-ak@kti7|Tm&|9>>y30zlI{{Qi7i$Wz)Qwgot7R5@#rV?7OEef__QweQe zn+mitY*A?QTT_D881-uuTdz$fwtm|bYAS4|1ZOI0Dzwd8Q;N<^(M$!_WWV?4oR>W2 z|9}48?|aWV_uTIS3er$=Avsste49S>>wFPVBekOT3 zxtctgTuCmKHootJAb3LeryEz`LYyb<{$!+GUp-Edc7LkK<{B5mDz@>FT_ok2g2{si(EaxuAxJd|8W&XqRLruTy2Eba3PY3sfrZM|2>%gIlZ zmy#bQHy_PGuHS6zO+Po-VQhvc`(tH`gBTgi*0%{NId(LTrE5bS%$_nV~cGnF>~ zT3jh@pKau2(&lTD_WAjC`s<~gcQyHPX|KzezLI_-xtv@oZNA;<2h$HEZ+Y8aPoK2; zzajUKJEe`kU)tx_25CRXe*?LiJO&5hk8kE7?@`~T*z?^|i-Z6vRiHs6c%PtiX{eu%t~ zd>6TqJXPBGA+lZfYr|i?t8gjaC+&IBB<()U#ae0CQ$wzjHs2BShteNJ-iN#gIgdPu zym7T3zd|n4^(@8vq+4IQ^>K!@^{0}nq^*B6{o(Y7NV}gQeF6P0ML(1NDsnYBCRdUtlFP}Z z(&pJyo~PHruJqr(>DT+WwCh+;{*2sBeuvyaUM6k6YMI(TaX1dbAK&2hE^Ype_^z~l zc9Pqq&G!)f0{Xki4de{Djy!`rm0Trlo?$YpKVR%ipC@g-f#hHQ;&Y$0>*^)NB2FCe#=U~ z-Vf5Q;~Vk@a!Ou9ewW-yZj(0eL-Y&i?;^d78;{rOkH< z{RQ;rkWVL%BOgy5LoSpye#6T_uw2*EjjN?wU%K@%k#2qRT z$c56a|56ZKZ|mb~>DHHSeOxSU{YB)t(#Fq_$=9{(bBCi-TJtTv~_aHn^*YppG&)6A4<2rwDVpeFDE}uUP^wL+)S>Q zc0DIc`?`6I{JpO0K=KgshULCrfsaeO-bC8^i|`g{*HKTNDsBF=WSOpaJpHlK&O3rU zl01~WC+5@VkOz=Azv$Q9C~f}L(&l@e{$)8%>t*R%=ogb0k>^SqKaKuk`tzlYub?lZ zA4@JJkB~M#kA5KiFE9A(>63PUddWTH&&g}aozmuch<*Y6UE~IGhFnLUL7qykk~YsM z`eF3@k%y4;$vNZ!U!~3SytKa;eS&@=`7ZKxc#gFDe>!;_`FQde@?qp6a;~&> z{`#E%`_VtkJ#^pilJs&@&ByIhh>1WbkMXn~tt zwE3##oAy3|!*LM)__W_=ueA9$;=9uJ*-37bHs2%CUWW_m@051lZRDHCGsx30rmrMV zB$ty*rQ1LKuJk)fdmY(7LbrALpYqrFt+c$6yjI%ym*}6Pe?r>$gua>nZt`4my|nQc z(Vt6yCV4zLBA1XylShyXrOos8lm7bFOS`Y@$lc^FatC=OxsAL`+B`SY&!oSKTuqM2 zmE?)!a&oD(dA61Iy!z=0e?1$d<#psYaEY}0`XG4$c|N&;Jeyocu9CLSUedl#@hiEj zz0MxzbtdiK&tER>_-|#tjvvPH4a@xT1{{M2OM4xL((Yp+4v==8n_GOpQQG=%OY7gH ze~r9?oF%uA7n2u}=SrJrI{jtzlgX3F734DVSaKAN7el~d)xt3f*o^%ZJsyCOQc=zgX9I| z`Q!%jY;qmBO4>Ywr2YPf?nk^Ua3RiLEf1> zh#Zjn7qdTU^SmW({x|4fB`+sGLtaWw$j#)r(&o8@{sQ`Q$fuLXk&h>jAs0#;zbXmb z@1aR-jde8LH{awIr$m#QgT9WCeM{N&z1C- z(qBYAmwYC9JUJqlkVi zB3DTp-`5DI@g($+5|=Smy@^#b3omv;U-ayPk)+(BMRZX+*~HqU(eIrOv1 zv&gmN8uAo!6}ep6JO`1t=lIWm@YnT&wCn$xyn(!qyoTH+-F=Zy>%NS^A=r1X?>9-i zPpPzhuf>(p)@dUzlQv(I9Ivk*Z>PUr+Id%#FPGzVJf^RtpGYnzmr9#&clyEf1Ib(d z&tFfUwE4dw_mDfKjlWOYpEnz%{l1^;$<^dBI0%2d$M3gS+I~0UyVBO_B)3VMf3dXv zE}*|%+IcsTXOgFrtI3nemE=-s^KB>Xdi(AU-0vOwQd;gNFU46nUcR7x4Z#gfKCi$B zqQLGDE$EX^e*2o#7Q_oy4Q(xuM-TV?X!TKEA9HfobUTjq@Di(`7QFB zDHHSeHc$ng5a&tTXGYp}*5edu>sFD=rOh{rei;3J^{$lTb-l~!mq>R%$qUHy$qnS$f3&pg9Y(*qwDSg&2a>nk=I85^cKjQ154ls?eD_Mb z-UeyE7wuYdHF*pU!XJOrLEIRZj(0uVrkdAfc|!A=iNk}NuExwCQl|; zl1rt{x1F@>?YlK_zn|?(X}O!c6ldXhX}_m!2yVE==M~r>U)S+TI2`*jzTYVA^Umke ze(v>7yk6SlRx7vFeVB?d{kh~bakR93k02LH+s}`)eg7Y6^ZZke)BQ^6*U-O9?j*NK z8~>oR>$-*G^&Fqd@reEy`q5ryoo|ki6wa zziywj`M)9ekUOP~A0wOeJm|i`yAUVg1Zj_VByAt1I8@rah2&gm^L=~0f8MW`cK!#_ z&U=geCizwJ3i31L7V=za^PMg2c|Kkyy3QlW!^wU1zF&neNxR;xwDp(a-O{dOF1cRX z{O8f1MSrTa`ybJl(2pjMAQws-|9zdG_utaiTTlLs+)aLm+(BL@ZG5$SQu`W@!*LM) zIE(ikY4dNyccty8liVh4zWeC!p}#}gelqlR^fSm)$yL(EA4xxwei(UQ@(}XQwJz-k9)18T8}m zPauyW7n6&~L&=5YTxs)sd9DBVN}ou(p1(=E-e;w)yNrI3wDW7}FQ=bEzJOdV?Ysl! zpY(Ou2(>#mv+xZk%~jbm^SZm#u@^S9Ej?*W`A?QzaXyPkTirN4|k z8OKVy&QkISY3t`ooA=wR{PB&_=36W6c$WSN`o-i2$aAHgcZqD&<8dne!P3^-pS%}2 zA9LsjkT*~F>u!`b-|Nz@>v_CD+I+u}c76Lw`#i84d9XY~kH^CpkjIdV$wlO$o! zo*OFd_tIWF)#oYFa(9il8qbsVI;xPipK=^6Z671Zh0?C?ztw)fJ<`tql>7mCwX|`s zlV6s$|15nA{bKSW@?2^2Pouw>{(R}4XY^(CW67oD5z@x*K)((BPnY@ez0y6;qjenf}5&HY(ID4MaH`3oit|w2GHh!!euk%akN0En-cb9e@gUJKQTQ2q2)hF%v zH{>32r?mMONPWpNa*njmfAu&++WW;s9F4;`{@o@1d9VThjL+jAsx z{3w>&>hT_dyGXmvT=M3N{q?;s%XEF6($0UCyqvs5+PDYF3&``y4dmJ6I&zh?{fE-_ z{VUv2+P=S@;`jFj{#|xzKUrz#{}Jz(cK*%MUME-MZ>60-1iNFO-;@*d?e7+o~;}!H}^kd1TroyY4Z$}W%~Q4E$8{`*(5E0L4HHp zK3*X&CqGSIN`9E!Os{}Gx#Z2i@$}6=>8~PJlVfrv zc_O)-Tq@{%hh6EvpXk^7x3ue6PyUSDO@4>mL0%?pzH0e_o=4+xI1a)eEBrot zrOm$)-<7t{PI8;H`R=2?hyD)fULW*z^fSm)$yL(EA5VW2{bA(cXd0gh{K0ZQ!yR`LgBF`jGCs&gvlPk%k(&pR-<1un#S()O8= zcAfP&McTSmO4&_tMtii0?|fu1<2BwDTXLUqF8sxq+M^*O6zC zr;@9r&2zN;kNzIxaQfY)tv8rFki12oWbC^7q#gf;+(Yh^HeZ9Z|DH%Sj>qA+r*xkm zrOlU%-|7#AHt$Ah{aR`By+r>U{S(q2mxR8V{%-PIa=o09U*lNXWaN}F#Q{l)a>OZ{(T1$`O)SaK!sbdb>wbx7rBGH zlH5jKCT*U1@=d*;-AaF{wDm3|pG!W2Jf3_4xrAIOZNBak0{7oLT7e637EY74&sf@Z zSK(M`>z0y7NSiN@ejxoX$NTg8q>b+-_mDp)uO)X%n`a66c8=dfo=Kigt|m_=SCUJm z&C_?B{*$}*^#QKHg*Z>z{xZ_8uO6pJ+g}yAT-toa(w>(G(eEkkyj{sVN_!p#^!>;B zdB2r*-bV6TY4g2E{}laW()K$? z+J0x_6zTR$E|)g{C~5mWfWAQ5dHLjA@{dRJ_)0t8L;jq+mfR_A-iPTI(l?QBAzzQR z^flxuD~|MbLa<nuH0$Pxtv_@+$H|tj6=C?YBbO z^_SylY5N#KE|fO^mSW%kAnp8b$Q#Hhc@6npawoY>+C1~==g`k4&mz~7Ysgc`RpfGM z^Xx+Y@i71Up#CH6x;~J0{cn-qB)>{tL4JnZLY^ya-Z8RA_iqqx80GUSd`a4U%Su~s z88%5r{G@+k6fa;~)T-6Mlwt*&Pkz9ilH(yfnoOIv>~xnA1% z^XSi_KULcEGNLb`A59)XE|fO@`$PS_|CYAidh%!FZt^?i4)QW- zx{(d^)1=LFG5LIQ1(wl|C6|&%NSkkaY3uzk!uzna`4&i9cZ#&1LzqOakY{N9gQT6e z5B(nGJn|s&FGYTyere~gmA39AY5!fyLD)Uq=cRa`wENj4?K(koO?xkq41C4)fzz$a{4?OYuJG)|YO5oFQ%fspKkY>mN;jIQ=1VobFRdUqHVL zIhVZoAV2;yIbP>~C~dtrq^24{T_2ss< zKE~3mPcD~kefquWcP9@f43R@rNNw>b-*4D=<(#BPh%cYGUE$#6d zM!&nX^9GX#lD7SPTr4P zK;FEMpKrCaeY8uv-Zoq;ZQe!Xxzg63PJbEwWb!0(1-XnomRw36A#I*K`hoPn?Csa< zlXe}w%NIRlRTYVO`c4yB$rB?Z^K@J`|swiz=b#q zr%AhCv9#-~!m-lUEhUeTHs22P+tB~Cr+**qm3DrQw0S-!uO)X%w?Fzv=NH{oz;kK4Y|=G*uy|Ml8BX?cybuh(9XcHWcp zOUMtB7m(+Z8^}|ot-E2@!2Nfp7h*Mz!GopU=TO?Zg=oKo#MbTKh3k_x-&@l9H|Sp_ zFDE}kUP?~L&E&b#=DCFa0{U~vr<2E#k0*~I7fKu7ogcXWPWB31h_i5-bgvg_`>MjR z(yqUhJVM%h`O-e$Y)}8=&i=grNE`o8Y3~Oq{Tljr$(`gjY4iPo{`d5A$TyQ`k*^}x zkjtfw-&5Mx6@%nI^!oWR&*u%&@(OIg>!t0tR@(JW#R_TrEhCpon|~kr-Rbkl1IfP( z_T&1b&DTrrA+MD-&kOWV(k~%DNM1mmPi`Pjl{S93{7m~9gd2A9c@;h_ZC{T{yN(Aj zBW+)G;X+awon+#p` zo^ky=Y4hAlzJXkeHS|-+RpfGM>m4L*y*==??fiVprS0PuX@BmYMXr@+X#G>9t$Q5( zQRGqN;pF|u1?0_|)YhFP>-9Vuj(ywsybAv$ZT=^vUB?n>+7WwDTrQJFk*l z%JChfJuU&qHxKaVeJ*X>T5_kf`Ja_`e;=d&gS7L0Po6`*nLLYp6}g67E^R*j=fnN` zuDnP4{Z7$d9~*?_71)5+N_&1?A?$-zM|eY+s9S$-#*Zi4Sg4Vhs;smPTxwOl|O4-3w=W0EdQsziN29OBTF<-9epi*jhvu9rmv*0 zkOS41(MR+p@=Eo^^hNZc9HPE}KA%2E9;QB^?;q~>+bc(@?~!&NQu;OWIQ3oh9rW!| z??rj7^jZ2Ad7Ao!zL~yBZq|Khq|eaT$-z3mmcE8QmfNeZq_3balLxDh=u7B}KvK z%2<7dzK*`uvichOn7&e8r@n%|j6RaX)tAs0(-+C3)Q9v1^!f4!-Txf=fWH4Ay^rer zUg@6y(mns>HtN^VchPsq9o4tfx6)_j{_0!k6Z&R3PJI)7BYj4mtG7M`eYh<iZAi`7f>Skw>df>DSPA$wSq5(6`gK%EQ%X>06{- zXCi;4zL~y>zERFppP{d#ua){5C$EM+rmvLx8Y!=WzKlMS=c_NFFQzY&r>YO>3+VIZ ziRyFc1N#2`^~qFyuXN9Ud8@8JmHVk*L*GT;ArDdCPTwkRzgam*eG7d;-z=xAZ=!Fc z&&Yk%*U{I~*T@3(F?}U{h5SkDl+j1@C9+)S7tRaivGOO_|@*MREeKUQNtW@7fpP{dl6V=z!*U-oE zJoT0I74&8D6!j5(iM0D)ERR%QL?6mjeSzFdeLj5-eIP5;_lG?HrOneLFIAt?uc7af zC#mnCZDdOHh-hMT78DTj=okFs;{As=_}Rad&dA;UomSfa6(Kpg(<6 zFQO0SZt4r@^QFz7Bd<^&(D&>61=jb<$?ALT`v~^+5B(asi~2754*GWaqsFz;XX#ty z5jx+#-(mAK(>KZAs&Ayv(AUX})YsD2(8uyJ^_BD$^kwpUtsBvo&=<>monJ&BO8Y!g zATLp$PoE=aDF@R2+|jS^PgD=k{-yp*l-DEQ-d6jUS8Dtkd4=qf@2KyP4=A_FyY<$Y zmG{UNIbX*UY2%uujcby3sc)3^%5}108|_z4lr?f!^|7>ZmD0vl$Y04a`I;<|cj^3M z*(8hPf$BqP;|ipW%a;eq9N8iJ^?i?BbiRGRWmjq6Zwb_=((O;W{mB99JEZh-z&Rhk1SE2N*lLEy8X#ge$r{`Q|b06ZCsZ;U3SP% zWUGvAe{zcLPyWsJCv9A_v~f-HE!&^GU%5`6qg*S`l{GR}A4?loDQ#SZoFdEQCRrj^ z>2**nJ7kf3NaI6k;|ipW%a;$U&yl}V?k^02c{;yW-XVMBojRUM8@EQf{mI{}x9>;Q zsc)6P)A?C>n{1KubUcx6f70zw-l4ux>hFf~>g4})KWgRAvPS->J#bqC*A(!h3Xq+kF1ji*#6{!wmdj_PrCidm(`cado<3z zkJh2{i)E)QlAClqlx~00?N9zweU5xw#uMaL8A_9xx`fl`qK}d7qBQ((O;W{mJ{)m&uIA+4l{X z=zbJS{heT5kxX?wlx~00?N5HLK1VLG{ptIB59xgSKH|f&M}DT`sdW33Zhvx}`VRT1 z?N1(KkDol&9zVI0di#E(+n=;?O>(eolz)V{d;H{;_V~#?)rXd4fgP9maxa-9|1A6Uea0hney==I_Q)O7r_#o)kv7i0f4QTy z?_a(wTjfGsUsg8D7Ws*;Cy_R;S-SnnPt`ZdKdP^jy;`SMek*I_iRxqN_9xx`zzk zZ`Qb0IYT)sua+&cMtvgP{-oQVoT|Q2_R2bWw>^IH9((-cM;aeXw?FCjCqGtSCLhtb z64|Tsi{-bnNdBPXp>+F`Zhx{*eU5xq@Y)ek_aRqdFc+w?FCjCzq(tk#jW8zRx^e_oG+p@8fLSBp9L%n_9+3iod{mCKf8|6w_Cp&b0t?ZOFQr{EFi>2G2bo-NI)R)P3 zWr<8|e{!+yPu^qulWu>~?N9!n?N8pQasB$f@-*dMdAaP7m#I&s+n;p%lhx`wT%+-cbo-NTe{!w*M!8ty>g3_dwer`pMxLuamTrI2?N3fpUnc({OXP2L zezCkn7Mbcp>Gmhx{^X_VbL7{uU*D(xyY5G?d|&p+M>IZ_ZhzA4PySJThrC_mTIC_i zS$U{zk!Pz&wb_ zWQ$C6JdtjH((O+!R^KRZ)3`eMqCG$5a(jNtV)e0f`;%^eaP5MWs$sC zeJE{Qfpq(mzg5nW|CIguxqywjkG*n}?2(cBRNA;T((O-Gmhx{^U^gjq*)dCr{M*welocBlFb9((O;W{mGrxm&sRTiTp;V7Rz2)Bp=s4 zL+SP>-Tveg>T~2=jqBe*pa1OfljqsvCs*ruD&791+n@Za`VM)Y#+n;p%latk#$&Io^o~3n)?9lj7 zy8TJFKiR21M=sL1{#<=OOXv5>Lu8Nqla8m-?N7S>$yd~O$p6#0R(YfDV^-cITV$h- zC(`Xty8X$y>Ko-ujjNN_*yAVlz4^QvxwraQy8TJFKe>-uWt9KociAD^Wve_v_dhEm*&<)J$4}b0 zW@+Q>=WhONkDpwiTqhH)Q!5wC8hNn#SlYNsY2zy7A+k*VRhGzdonI^`$Re4qK9p{M z((O;~qCQ8yD)qBM!8^LXUfCskO15U8rLenv*)M$-kzWGN!y=v z`;%^e@+sS&oTqVha$>Y>_$oHlGt|7Qi*O!$uWs7`I>n76e zPrCidzpHPQ4{2PTELENw+`wqU}%KrEw*4d*xy| zP!>r&wt1m+`;%^evRr+R{7Ci>(0$N4`m=Gct?ZF{O!89c_9xx`8rLeX zv;E1Lwm&&X#}n!HCv9AlY*61QuT!p*|Fr$df7$-zcRC(Rw?Ap)D&+U-%j7f4C2}9- zV!5v@k`?Mh>GmgWT)vzrbL3~TU*B%nVvnEv#U4L7PJJrf{-llTlH+BETq|4Ufm$ak z50WkNEcJ#_ao~`>)E6v$;L{-oQVd`5kayhGzepr`7iGjsZ@6CB3 zeF1$weL&x@2j9-`m3DqAZM`-0UG(;Q$E|Orx8FN%=O^?Tj4{Fx15B@FerfA=Nt>sg zKEVve7-5J3rq^(PFu@GQ7-5J3rdKl_6U<5Rt&GZ5s7-NJX z2AE#XcuX*ZF-90-fax^GV}cosF~Sf7Os6s)6U<x<}1 z=!@w?`T*05m>(0g-xobV^TilpiL`Z!rL7av7trU^2lVNM%#R6XFvbW&3^2Wb@t9x+ zV~jAw0Mqjsj|pZl#t1_UFx59R>^`((f*Fi4!Vm*Y^-U2s9_{xhTh3sN5r!CGTFH1! zFoQ8h7-E3wB*tTc8H_Q)5CcrlWjrQmzh~GzKQO`&15D3hJSLdI7$XcZ!1Qd!qy7G0 zcmFWP2ty1o{SD(W!3@S2VTb{yXE7cV%%J_gT)UnKLkuvT$aqXJgE2-JVt{D{<1xVu z#u#CU0j6g%9uv%9j1h(yV0s4QF~JPR7-5J3rl&I=6U<0ewDwK%bVee@rlgF-90-fa!R~V}cosu~OP~RY<$8h~9pGsk>hKkUqe49P?v> z8H_Q)5Ccq4VLT?7!5AY9F~Ia>#$$pRj4{Fz>GmVt{iiRW&!-RQ)03DV6U<9uv%9j1h(yV0tX$F~JPR z7-5J3rpGWI6U<$Y_ zOfZ8nMi^p%=^>2A1nu|L*?o;M!Vn9jd;gX0{g=M~VBhyj>r?3-A51WVF-90-fawT7 zevP#Cx}?q9PTxwOrBCQH7-NJX2ACFceVAYdV~jAw0Mp@&#{@GNV}v0Fm=0q+CYZq( zBMdRX^dQD#f*Fi4!Vm*Y4`e(hn86q$3^Bm;0LEj28H_Q)5Ccs2XFMjD!5AY9F~D@F zAHPO!W6uxio*(qB^jZ3ZK7%nv7-E2F$n{}@8H_Q)5Ccs2V>~99!5AY9F~D?R#$$pR zj4{Fx1GIl%GeGyH9TUu8j1h(yp#A$5Hy-WZrC82jj1h(yp#A$0Hy-WZeOPXm_INc( zd%QCAF-90-fcEb(+2$=awT3F+lryaW@|A=fK@~w4d*G_H)c`eYBrXcI%`4+_769?dOTzc(k7rcH_~0{@0C1`?+2>9_{CK-FUR0!*%1) ze!kX?NBg;1Hy+cS8IK8OFvbW&3^2`OJSLdI7$XcZz;rO}!^{I68 zV}i}n#y3g#{G+#@GqJvwKBkW_!~oNP`7yx^#u#CU`t;2z~NFU#v=yMJE67rMer*(mLem{9{G`WsL79Pv`h{m-_KnjMMr9g6-1S=Yaj@b9}UZ zz{ie)o5QX6aXd%=NZvk*$RT;$*8P#6=XeD<%X~HDeDaOtow%MR^5M+) zD7l&At>g=~UO#yb_p66o!TSFruVK9dYy9;eNRG%87=HozC+4psSL^fT&I8(m@IpU6 zf1S_i1wQNFbi3nS=lgukmp)VZD6v&zCbl>#aS> z=XUbzkNRw%AMN9k;sN%1H-haFe?4z+r>y_eeqPf)PN=Z+^=}ZkzBSwWijkNENS{crntf%&_td_I8Vz2uu%FH8Ot>(!3(>)por~A=fC3LKHJX?*vC(Y`dq>B?Ks{=K64TL%5p-!{79c8@_+R8lO4~HU!7sOJ!m>zr9SQ}_c=p8Wu#xPfc?F(qq0u5KTp_) zeP7hAPriubP2`OS`s4QR8ttQKil09j>eu_W#OL17=hKe$>ov39pA$d6=~6d57_R%| z*8i=~XL3BF=b3%<>UCnr?dN*zMxqb9)U61?u9`nclb%%ow zw%$+j{YNlA`EOhAC;4mEi+|(iU(I?I#{&9zW{O1fme@H%Mus-Rq9^Mqmkcs|F^JA6Hj`BGoPn_n*_m1=9N1o_&N`8;) zKbHBLbNux+{n^j=6xSb;cj9;jc_!E2`?^2>#n{gum-+Q>=K3qhXLJ9GV}JZ0UJpe) ze)jW9wjcZbK=#r3YoG1!^Xy}9p6^Wu`tkka{dyVle|i30!hYU9(~nQP{rKZ}K8I_3 zUO3zzZ|C?CyuJdCfB0KJe=+Y*402K!@~UtB@tC{^?_U9V>ely1&1)a0 z@P3s~-jlBf{>OUX^Y~>R^y|IK<5f%kna8I>UkBO8n>;=dc`oyX+^-XU^w(Fs!q0a} zh0p17pI`dU=X{QjEb=+a@hkMcZ|{Ezub(52^*KZSnaAf?uD@eDKi|FEyxR4; zv5$*5-b-HmYkz(d`8yt;reS`6T|7Rugzg_#V5Bu*G+Wn2lk8?jOS?_l4pMBrfKF;8N_3C+MAB(wPnGt@zo3`FB@;aUm z0rR!+drctQ!i?J`wA!bDy6z zUXO!)w7BOBf0o>$*QFirB5%L-{heIN`&IkFe*PnPziJ}?i~Cu^daJmfiJo`%(ZuyP zk>BBdRq*<4-uiw@exXFyqxbJ7=DVxXU$6bVynUp)47=X;*u|i-*ymL56ZSE5>v7J1 z;tD&i&xd*(?4#jipNq+J^gOZk64rZcfWIH@Gu-LHl(YQ&#pEvoe>^51e6T-m|BlH% zre5afPk-&#JN$T`E6DHh_&mvaFaGSuN7wuDPx1Kl*85z{>nr5=Odg+hj(76-1bjYP z!sC-3;n#nFKOeX7{F`;5UoZL5&mV5<_Y?i(b9AIX9&@~A8-F|{|DX10_p|qGKmS$b zKF8#B+|N%~@42u1d_kc<|D~<>v%u%{OMg5={vG!-9paC_&i#zf_xTR)XF#sjeYMAL zZ`K?2FF#-LbACT3{)YUl&$BkM9(hOpek0`*>V#@LuKk_j*Zb88KG%}J=`rpT~Ro`k{>V|H|jP>}o&Xy?lO4$baYS zgW3sxKhKQy^Tp&ryxuNgzN2^Z`^kUb&-cYdJ74$f?>@Kx${+6~KQY1|&yqJ?>gP{R z^Xol-oX@r7z4g9gk5|lkeZ0Q1ANcv-zu(W-OK#`&)kJ=b<6Y!mc)bOu`}I0_z4fx5 zy|3ANEj%Bu-1>T}^Xq+lwqGwKe>KzRi2SHtXYTn#{)fJ9u-A9H_F*5dMLuWAD|mf( zvEB`OAF}bi^W5pdJ-oiNerijqR$oN>AXMxi}g0}{Ez?O z*DJr!&ezwEn}OgUr(aX1NJdMUkBUu zHj(Y$f7#mi$7Ezkk8ee!Zs1=PsV#YxL(pdp`e- z{q6dbA78BZLHl@qqR(l*&%giP=X{Rexb^cT$6vnG&mUF!^KawxWk?>$^P!miUB21R zml^7o3vzgV6qDEg*B_6`@9KGC_ctKt^L**j-(%RvTD@=C^CwHrVSjb(Z->y|&su$* zZ6E)r@beXu@7&KHuOL5JXO<&h+co>b~0j{Dl3T%IA-!yZm~| zwtl{-$>-fh`&_~CFShZyi(Jj;lP(^=lTPvLXUO$@zbM0cXJ5p8=lJ>m+v{^e-pAda zAh3V0Y99xGB=E48RG1lLV`Bc{`rgve!|5}va&B)I~QGU(mvHs6KjrG+){~Y>v)tH|} z|KAUOyE`8+^C)_rh4SkM-HQ3ZAnd&n^_|WK(R1K>wl~|!^y3dRy$dv*51{r?27L(n zmt7c-7tsFZLEnw^-Glsm*tBDkuN}<(U61s3gTB!)i9ZOsg8JGF`gWu*eLBlujr7rF zg7o|^#;-A??{_G_c{8u2=X>t>1^Uh4&w}1@1kwlkU-Lwpc(dt8=$SG3M06AA&95^4 z?ql{(A$>o47X1H=15d3yo%Jy2zoQ(OZ~97vXAA{ceA}` zqrKNaAMg_9(`BjjocJ522SKkHf<4s#gI~pT6X*{jKQBf3ed=nKpUbnpDdcAp=nnAv zK_7$soF8QTdrPc;Fuj-a!#MJ@8FUHxIgRwaZi?;ErIz&cB0p#To9UlanLiKuS;)^a z=#!A23+vh5E0CXapr3*Ea0}A+Ao`Pq^H_fd?Y;Yarf)=hp9P=pr=$AQ1peM=4=Ixl zdKS>X%%i=31M%cC()a$WSbp%QtpBPvFx~%eO#kFcre{EJZe==vLI1 zn_=%j)Q_}@o6)n=?LR>OJ?cXW^ZBQ_?dxR5KZN=HPL$6#{}KLPLm-u&Fmxo^-yHo>9zCXTZPb*UYDLr}TV0 z$M*Woyquni4yMzfzw%19SB1U*em?ToloLH4cpdAbbL8}t!5;)Y^it+GgT8v0^>-h| z_RchZIsG5#|3iJAL;i0zW6`vIiy_QzTOuJ>|!u0{FJfbRYs^XEaA(LaKol}LC@R&mh-b4 z^fyrdQlJm1u>Nk$mmWd=YXbdl)W3t_|GNKT|7$m}{!!G&+VxCd_ABPkgHEG9ra@1j z{taS0qI0}d9~M?}ew>B;`ZDaj0P7oc86-W&8^5W3%$Ya?J<~5leF1&o%a}g{x)1r8 zLirzp{G3Po{XnacH|=X1@^dfb*RHjW`cxJ3#aYnj9LDzMLI1;1Y;W4-Z|3yOp?>#t zGd&IZ3DeJ#y|u7+FUE)YSFpX0U_6)ueLu#7?jt$9w_-d|;eF6JN_Y=@F zi1s>fFZA4l_R|mga?Gb!p*}np<7fF!2cD{6{A&Vz?{}#T< z_>0CkeY3r6?@Ww$O`u#-7ju5jHM9KVsPFxtH-KLQefx{pelzI32iaaT z-tWGP`aWyq=(!W^`2g6v%k;xkzv;XUJs-vU(ZT^t)8){_r*k;;jN$!g4*aj8J*Q2- zK+hF;ADTDynw}>RA83ZXdk5HGIuA#WdHr|v?*jdizh|1x#nH2$`H$?+gT8;1=($wC ziBr*YgPHdd-3@va^|Kr0cOc%U2Jdj-spC*Tn?c`f=INxr8}!p(%Jx#APju_&YPR=m zw|;`Y0r~k!*n1oDFP&n1pZh)u`fB9Y4Eon|-S2h&=x>^!FY_?V)448sUhMWa&t!Vj|1f_6^siAKHPA<)znMpQ zKZ^XH1$`*m&%Us?`9rL4aDUeS=&4LkQ^A_&Dc~=F{>m$v-wpa8w4WO4)2~gx;gmP% z6ENR@4EE0d7|YLG!TJyHW4a&oQ@}5S{;wmLp9cN%A=W=_%9Wl+x|rUD{Co-Q?Tzw2 z4*KS19C&Ik*eiqn+DBRcH0ZlvuOIY&uDx!y_XF47Yni?T?PnFzw`L!%uk<};dP-{?NS#^z3IEH1X%aU%iR#&0_pG=oqF4K_6${YslV($j|$J&+@g0Sl?m&Os7Gg z`oByMg8mPaF0z*beZ&aSbIxV>q~SNOW_sZy0-5<}8{7LB(s$m;(6_~5r$$V@BYiWV zPc-8q(R5ENJ+I%F=^E&F6p5ZoO`CQ`PvKamYoJd>|L`%S@3d!gel9%bz*AZD7c-z& z9K`%N(0^=$JWlEF+B_VaKtZCNZ*AAu>bQ{vb{g8Wqs42j{<)d^c^o|ei`&W zdDcIJ`hRyP({yfzo&v_p17Po8N^cxW*jB|=N@7HwSUL_ZnUR6Kgj%=X(#mj^o7hXgMay3z<(~=`-vG>$$t5C zrl-$le)`GdDG|5Ynke*SpYKLh#suQUHR z$akYYJ@$TLrr$9C8L*#T&-Mo{h5YZB zf8Aj$KZE?az|H?lm`~rqrTj@@eR%`yPk)&CPjTxP+I#c)tiS*B%)bEqGSYt|(${|k z^WTB=4Zei^Yli>yaWHz$IfU(ZBYl5^@|!mG$l;^>(q^2Xry2U2+8i?Va##P$n13_; zLv>620{+dK_a1uw1LZ^CJ)~y><esXB@UU&KAruWga7-XeKfs*`QJkO z7{q+{GVo_lW&Vqiz6H}S)AMxHzw*zRzY_Itx{vvHp?sSDi}}Z(e99OvKa2dEGvfd~ z{|5cD=DnGoTi?w7)4fgftVRB%kU#e!e;4*={L@gs=1yh$1E@bu$FTelQGaUYy@Q^0 zke_`K^KWp=2l?}=X|~^gEc5RZG zcTD_wjNfnH!SXYIWd2Aq^ZPOW?)P@)*Ph4vUV1R|ccK0N2KWd`Q802|7FyV@`KEO1pd!~KZ^EUZfE|DXy4PQ-&do22hF^jp7)@9n-K4L z=yJB7HtD42akQ^Fl+RmHf9YONdiH^T&4}l%L;377?S`JyP(CSiIG;xS+4UvnzYOI+ zjq*EqJKLWS5;pFY>nu{r7-df1knW+lcgaZ)AD`<+sa}6Fqs9 z-yF(kHR?ydnb*?u__Nr4(`iiKZpxj;-{K59%^-g9IP!n`0p=eJ`MKAzd&fca;m{VkyV z9q!hzKIXsCtzTvyPS4NW^mj3T#I0YbKhJz0(tj}HpJn=a@^2UN=L)y{U(50rx#f@e z*gluAeC;#L{|e+6RG8MN<5kiPD{Sbh%an}z?Q z@V|Bv%m1Mn_ECR_;D7oP%>NGB&phJWABO(sr?LJEpnnei(+afTrgbd;BDCKc()TO3 z{=9mkD?sN60*q_UwzlQSp*`+LBHuadEeK3D0V}Acm*r)rH==mn>&-@+hdoj|#us`z; zNBYz7|0uN2`74t}NM7NGwjw||&n{v9qK^XIOAV*h52Wd0-QzjvYk&tm)=d?oX* zcsA?rNBLfH9^@ZlK7D_d%6}g7!+(D#^XIlOe*@+RWsKjqqW-3S&-@PL-#o^b3*Qa> zrk|u|6ywhf>c`RNFn`yT%)iodWm;`!w-t&=3BA`Q6CxlaaoSptqp>_eFj_@D;{ihy3{YPnq7=t&hmx8t8#fGygHv zpNdnTYpELaz4hD7--h)5&9zKFi2CveTt4EZ1bjQLHd54o>FAM*F)?=ig@^!LBd^dR#4*C?N6q;Kk9nBNb7 zevbUu0sd=#$ovOU{?~qo>D9=OcGUMy*!v#v7s9`TfxiXm>4rbs;Lm#We~&@_fG@EA zPWW@}JxoudJdeAd>3-zLYtTOX;qOb(f87cC8Ia!z`OQCK`5lly5#_NB{QIH*G04xL zyyubr8{pp@@P9)7F93fr+RrrF*V{kK_GZC90R81O(tj(;YZvnKaP;Rhs1Lt%`diZ< zqJHj;_S6mj@6o^Pg#0w{gYa*SGhUec*^u7*A-@29tDOG1mf8$@m(xGhQl0SkWb_ZS z;NSciPS26Zj}4&9pnrh=W)SKBNAzFUfv!0HMJ+W8f4=Xex0c$7^c;%u;X>4x4vYs6 zqCTC5`kzMnwxR#H4*7YoL!0pl_CAC3>;!!V#^a6fxBUiA&kX1ffxZs;Ig0*cC-mR% z)Gy;N@}rCTt9@#zGjHB2MbH0G`5XETpmUU-eayFYKf?Uy&N2PnPceNy=yzSq^!?O7 z8vG5QFI`}IzggyAL;f579Q55x`iq}r`r|YoFmw(6pF-oUp-=lX^H;*3*F#^8^2_k= z_zd$~A>RUj_NV%~Pc3x^{J(?Rhr#~}{3B?*HFO^Syp!syppWy&Jms zvuy9xRKE@V1o-D6eNTgbPo?qB@V^E7*HU{l^cm2<0r~Yy&@VuJd&y0#|C2P{8hi)p z%WJ588@dzuy_&{9LthVjS5bdq=$9hDpX#&+vu_9a{d}4~82%QN-<WgZlG(l-Kp3 z+i1Kp_-)X)?lz{c0{x#fz8d~j@c(vd|ArnydF*i7r{Saie2K-6&(nBr@V6m9K1cn5p$~!nw<3S{hyEjI{51T_QD0U$^|_Yn`#9(4DKwuj{D+W# zJ8Aqk^iNS=zJvU%q5dBY`{O9@A*A;mu>UCEA;014Ca8dLPvHKf?Z%!2bsR{T%tX0r_(v{5cK&G^77J66yUh(*ITX zQ>FQUv3Ci|^T7L=z6trUAKK^Vke-KW{5JR-;Qzfy-=WagO7jWB&!YUFgYp=L{!c*v z)8YS_G@mf|pP>F%X+B}-Ujcsy^8a4gtD^mU5ACZD{%i&R9@u{y(tkC|>wU<-zd?U~ z4(h{QPJf$9Z9@J0CB~npf`1?Sm$M;13H%!P_X_lv-$Z)9ejEG$X6QS@>7Q$ucC%vXW zMtXja@!}BFm*=8?xd8n|C+h$HNZ+aGKW;&OKJ1KFwbW6t_a3C@c%|#EzXxNy z{4nUVLB9t1*@OP$577S|XMC)s4nuzYl*)VWxzrBKe_u`G+ur7NdulH;2$=ipC_fCn z;zFj+pz<^H&U2Z*mBt_9znSUs0_b-$UBmom=N6_frtzBOfxnsB578GffA0q%e=*ZP zr16FL?_>HH%5OvOcq`Liq4XMhESgWURv{5_1uFTx}JRch~s-tkVx@1*{o=<}HVZ?`_8 zye4TrKz!8i@4DrK`m!I5H-^6g<@LhbnBEBbD>ObD{!XOl1Js@kz43gucNWsK0`>JG z8V^Yy^81f&et>=f%6kR!^PMyvlm2Pe_YP{$BoF1vW{M&*0o^tJ>d|Q#e9kBNn8gIxx+T&r+w-NfDe+%<>qJHh=rWgL5P5mGF zgZlV?$j=ohuSZdSJ3+sZ##{0i_2WG#kB!Km=g{~_eE4%7jsN7|Ih|jkiR@|7(!GjVO;4jlaZ4e$u)f(Ho(E>VBqIAb(q3{Yd{Yz^{P5 zi)s8f@;hPgG-o_8`G@xYT==sQ{13tY3bd!Up?&W_d-+fFFDp~75&LZ$e-fkk)8w5A8thZxd!!RBlI2O))(}TRg~vW;13491MU5N=s$L#zc|co ze@O36^yfR#9v^l4PqgntP=9xze`?_rErE0F&iF<$LNdwdbv^G?Wr zG-dMZZ%jN8??3x)GcozS=2CO7=lV?dlJLI_&^-G-JxJgEp&)(6WRSka2I-4K_-9-Z-8e=J1jLikfd^!_1#9^D$$ z_uJmR0{WjC!jo;k{ZwweFg{$~p33D;?`x?}lrm}azp>&_E?+LTZYmTeS7v**nI{5} z(E*vZv0}9_P^fGvRC2}ArU}wkl$F_7qnNR$_hqXinf4811J#L2p|W9Opjs)GMl&6g zMCXRKR|}K5O~u04NN?XjwI!F!WU@o~$>MNs(gF4k_YGvtkHeeum0Y!wFIFdehkJVH z$FBU?*u-$&=%HWe+0wsec>S6Uxt^BI1;x|$N`7lDKRi4!RjLkD^VI?+YyFztwLNfb z?sbl%>8VojjZ=kOxmqy^O6RiKVyRlFl=5TbeQ7d3TrEzNdPkfTWLifGoAOg*)!ay7 ztWYiV4y?>kI*hi4-8VV?XX`!{eG3=(aZ|;ykwRr`vWHV9*NQaPim{2(C~z&Iik;1v z3@(|PIbxNfDFCiOyIBUUP8m?9nu?dSGRozrd2b5wFTndu%h<%IDb7NE{P^M+wVd6r zd2&95EoGL^QrA|~jTEX@Z7MEpfyn91wwUg(dg_zuL6$r?p-8=axLe#KS&$J6fX0s} zw*dB-2U-E_DF-rHGhS7;=Qd4LMhjIM4#f#W=j8aXHxCdInHE-LwDe-WAmg&6%AmaQ zSB7N(TRAb}jM6eH%|<5+r4iNljH_x@zM9uj!Hh8ZFIuc;goX%bgo+DhgbH)LcQQgn z`7=TVxvHFu0BWGxWo9Vj#gdr~ZJ{KOjP>*1dH&m(!e!S^jP}x0W>bE+kZCo=XQpjq zW}=g?Zl3IM@O^7|0M2G|IsY6kH#{*uZYDizhcZ1q*>o;f-CUX2nj0&WMys21g-T_j z0tGZHXf@Sh_^e~yxm{~MgA+j5i?EIa(+cDrPD?Y=&H#icnG&Q3kU?$5d`wQdoS~FQz+Zec&H5W!2 zf_L#WzX2yQuHFW)os8`%4Oh08&BVA75l-VGM6zkuqs0idxHZ^6wOF6u8dG073Y?ZW z*hs-iattinGEoXOf%Sz+^VSt3muaIx#c6Sk;ah0Hs!Wv{L$`bV&MJNhjB_W0nJT^h z#9`Zf^U4PBtqovW(o$h=@aC^EE@cg$dozDs;HhtnXmExS2X5g;W(E+`5GG^Lou;@b z330egdZ<`#=~``G=3}9z(pQgb7~M6wy)^91gnCQ;m5I?xVKUZ2E3)v|k&y=A*$j2) z#;IdD?9rf9E2`U~1v`CpZ_&aXB+RcPiFgi7sk2QhUABt4RB*BVS$Kbsez8GBSwJ#3c>5H$Ms!6ZRaU#yl+}Ab4;j@!Y zmFJLMESTFzL*P!T1jB`~u{fm;uwGkMHXuUn`IJIsXkxNh-M+T4r4VN%o91LLQizkg zIH4A{WcrXr%6WayqU16il+PuniLELOo8BWfFDA~4DU$Z#iPEOxXbdXjj#lRFxw^6u z3DX<#_?Fv}A1l(UXG3BwXN_!%^Tk@Ti4%}QiZL>3BsNY?3E#zu$;%iqQWA*0^=;vy}!&=iQ?VT$>&#dzvYgBCB^;-3&L zUOW>B{lyev#*O8;ZwfK^w&Agf$wCY$)8f5&tePmrqTA`+)*Hd|CVXaw6AM4LgPHvs3jKs+}b-}zipHQf-bLMn$ z0>0363^dyoOvA~g$*D3$`3iAfWxZ&re_DGo7K>xdI#ax{iF~XPWi>xWeJeG!IE)!G z^D!8&+EDmDhz-Z7gCW;dS;Vu$ur4o#szQPRQ61K4#}svNDCln1WOxN3?4J^D*YRSY zU59&>Mhda(Vs3|Q8hj|SsLEJjbrnegb(I+`R~1$dqU#W^=v7ECa2^3;RU8A?VWD8T z3ap38RY=AkAlFesXgmUJS6~$^hr@NaH?i?|PV4hqRS7o)t^*MKRsm|*Ta~Z^-a0ZE z>eg{qkXwiP!`nJ49N1QoPDoqj#s#xg!Kg5{DijQ0>#$(xTE%%mYZc)SSL>i)pjyXC zA!;2R3Qns)B`mGu)qu1v5*dot#iD}Hx|A4xR^d|MSp{n$XH~#`eOCb)E6l7z-M3DE zfLTYo?^Is=R)xwzWfd-llXbKmNLI0K2w4SWe8J-gP(5s{g4~U{@^nWE6|1T^NUXB8 z@USir9T?W-#E`HGmx94MI2;Dnk-h-14iYvs%O&9jeRW;db|+a=MhNukO2Z*u9T^Dj zM!-1q$YEU-<^^R>yFt77HwZ3LVX6bz*5a4lpTA;AW$Ag?MRglSc5cH%6R zhtRCb7lN`XRtv|f0u+c$k{gJDq}7YK;zFn=giM+JkRIxZakRFQh%Qx)-ISJ=)g50>>{r>;l}b4H+r0H=<& zLYq3&7t~Zi5#dZ-#*0b$`&&1Vsfu|aOckLWMN$Qvu%*tWfThayikm`}Iw}+gT$Nc| z98kxLaX=mJ<+&6G)WzJM#*PE3GFBW=MN%A4Wd`GbDy$v{)FECRP=y5JfDtf%98iaa z;(#i!9tTt*fjFR!65@anU^@<|g5@}%4)?}nf7>>3Kvlwx1L^?80abt+2UI1jIG~OU z#sPJl6$jLz{y3nH3daFeq!R~Jxp8qoRWK?Js0sz+fI2J~2UKxh98g90BQTcr^~Fi$ul&b+M>8pe`lG0adsZ2UNjY98eW-H^Vm zKu^vb)@nCfD@F?y?Y#9FP(^y7K@}0&3993S(4YbP*YP(|wDLRG|zA5pkaMb*QFDn#5B8G#nU zg*w^_7wS-7xKIT}gbQ^UFLdP(DY)T6Rm=+)st7Gys0ujYLY+(DLY3ZYXs*qr~FaqWe z7wWK3xKIVw!-Xm&5H8eFLbxyjY=;X~upBPb;og|+Z`-tOP%CFQT&M%wZG)NyHC(8w zw8DitG8it@aaOochx)^XIw~A4RFS-GP|KXSaG|O;DqN@v1;d3pEEq0SabCDkMfk&o zIw%+})NxX{P)CQtg(^@97wUL5T&Rmgh6{DEsBob!C58)CxD+l_!CJUb6>!6aD!>jG z>QE_MsH5Fi120^tLgjFw3KzqLI@%5ws#rH%r~>@q!U#}3T&RM0+o0AhN#R0O6}Am( zy0mbisxKQIF4X13*q{oRVuLz392?Y;zSy7+3daUjq!$}h5uwoIyf8~)RBSM zUZo8GP{)PifGSdt1F9lkU1^BfGQ{=4yem`F)4qnz>Nc{VqP3jMQCwARe-k*YB}5LY#Y?LUU56y231rj4!A14 z$ZdlvUW^0k>b*Rd;()rC+tb)_Kvl+y1FA@8+n|=fU>s1@QI7-a5HAj>LV|I?2$(+( zsKY{WKowYz1FDcf98gCIali<$9S2mwavV^Hdts1#S#dxe>W>5JsBj!mMe?>mEpy`HfU4T4IG`#Nj05VhU>s1zd2v7$;g19A zpkN$O$4PNO9UY1Tsz4Z*pe_;_2h_!);()r87zb40QXEhPYjHqTz>Nc{06Pw- zL!~&Nj&@%Syf~l=mE(XaT#N(iXgdz5V%<2P3h>7PBS7^ypbFw`gIc#F#Q{}S*fyx? z(&B)szL+?mE+@tTRk#!f)WP96ppNv#0d-I~4yYo%IG~CM#Q}Ak5C_!3;W(g<48#E= zVE#Cu3iINCDng0_>R>w#sAA1L|-s4j3V!!~s+y0qA!D&Xu9R4rSvK~;|!8&uJ1Y*3d_VuQMX92->eVr)=FYq3FHAR;!X z3+b^zUB-J43B?8@B$U{oF5yl9gxH`e6c-y*1%t6c9p=8VyRktPi9Ld9tq;ZqRW){O zP=^L%gE}q{8`NR`*r1LI#s+mQG;7Pz6QA26Y)PPUVjuxUoT1%!>`G2rV|K3h*95t*D&XpepMXx3fpk(UBiAS3}Y# zi%MI^osTu)3xL*F`=l>OhCd+Lo-db8M6SntM3R-!*NCjo7oI786e=UV79j?HsRjKE>2#O3u71IQM(@ny(}Ahn0E;+H$fntkE?lOs9HA3e|jZEYnr4ObnZg zQ**OCiE=*Lm&>HhZ?EIKp?f?z_jH4s z=|;GHrIR9Htl5V)6C=~R{ryfkTC7 zO>SuRtAvV`UnNwy^d@Q+MH=@*!zz9-JU6^8pBpNS7E3wv?c3qaCe^v&F>{BnA_b@UR@zfs?b_MOspt4hf1u*T7FEd$-g?8SV?&CGN~eGZ8NEG+|p-Ky-_Qp zNp%JnP7`YhuB#?h<1M=;Rp4KhO{^ohXq#A#^tzi^S!l^OsUBrTII%i)!8ozT$o1sJ zTBDYm6Dt*0qmycr7ORu$($=z*>T{R6lgisG;fXa#3+0KGxnXo~9X+Wgd6_+_HgOd` zu`+v+KB+2q4L_;8e~CZ2j`|LOq&l1p0!f9X{R2sL@%DnG(%SBW#QLHSDJ51b?p;W# zO$sO_))n6QkXVs#V?<&d;e8WH6?xk#k}3%8x=5@>*p!i2S9s4xVnu;19m%!$cYGw( z;%x{?szBN=l314=15T<+4$UUlCT&JZtW8_3NUl)X%92!}u+t@}DzgzLsVL6NB^4L8 z%p_H%?Wjqrj~4op%G!5!CDtTe>6KKOx|=7lLS?g0Vtw*nprq==twKqaX*-D$>xlZ<$==}}XU|-h*+yl)hHkbl(J%CD zF*}vkui223i^mzKcrVaNQ-unBy4l?yCv4I~e{t-{NX6`|R5t0gI@|GRSEKPUsow)9 zYS+e?}QD=5~bVe?HkRdY8Sc z7UlhJsnRT_RJXcBsTQqfFr(U3C`?AR9A_aZvVStWhT|Da*8I}7coU0?)|Pb3MG**l!hzY z%T?oKGI`g2gYw43uIfZ?vRWyYMtjesA=nwNy9y;5@pHvZy&EShEt7NC{Ly=-d-@%_l0FG%r$gCTttBTCZhH|47n~8dWvjkKpaoYV(1Iu4+nlte zTlJ^`DZ#S_qy!J$=$XAeTy-x_MDQ(6#CFWuWUjfR0Bt7}plzDArEAveJljB>XX^}Z zSJ$*lDBF&NvYU8kZ>c<0HKQ0Cv(zn;Gi(!OqD~zzM z1P%mfh6IppO8^PxgrfthRTV23SFw^0T02+ z(1Iu4;+sD-YK}Rm&O{3c{zMDdF1d4R&4VD{HW=g!`Z4EK^#}NZ{s7fUPE?Gx4G*=X$?ScXnOa~8lsD>q&U{-<&My;bDs$B&sm{yR2b^q}Z)vyf`Y}z2f zT=<}gYElLYW@Vsl+Buq{ne#Di6F#P`Htx`hX0b6j+nL7XY(Jw8!Dv3l%h>+K%hWJK^hkeU+`OvnleW*hZR4{7E?0NYRqV4LutFVd{o7~7DI5p0<;yn0-*+|sqW zSgKB{<|LS4QGy9ZrBh3)X&o#$po0ZBLg$@S4@8_`T*TRSmGe=W`AE3!MI>BsMm=4n z`V%7|xD+EHcolgtzar3rLlJ1(6Y0#E z=7)~8z0k3?587EZ&5vlj?MpP?_QyTzrr8hjZF@n!t=~Qir&-dFwoMHwSeMSvsSfC1 z!3P~IxZ&>Y^iJNXJ}5}R0R?GWmrv_y9z>ySFQU-4C*nyz&5;PO?MDPyaKk<$s5+rR z1s61^?SOl-P_r83+opniTfhJ0p=QIz*mi7;WUGEcQMVPwNVdWl+ZHbmD=Te2rmfw_ zwAD(RuhgV;vYUm;YH>VYEgWyw%o%GN)%Dsw@YzVss-J7y@pEm>+PO*1Ry5wW9*r0L zi9UC!y48r7;9VnPf|KGYPSv*vwBS+%+V(^`0jl|-V{I>Vtl&fV2)(K*6-{ ztf^|%!UzT}j9@E#CRH^k0|l!x@RYtx+Fa4LZCie*xFwS{|DG(;jcw*$McR0fE0#7* zu?+q~t{3%Nv-N}#w%6WqWzFFbz_t+r*e0X{&6+hG zYa7p^3?2b^F@Fmcp3siH?>$ z(b0k@+OcibnP>sQpJ)NeB~HMG{Ah#uLjhRR4iy2(rAPtWCE@6}mOm=gc0+~Q4wwVy znn90c8*o{D&Sk0I!bIRii}`hcE=sMe%#RJPEtE#9o7vJSw1LyTDA_e`{nTrtZ0~U_ z#8na=Xaj6J6#=%bTsRT08B(FPQ59-Cpq-=Fyokozu0-Q)f9M>(X1mU_?bLa;PWybm zWpf?u&Rf^YhL4618! zB7$deB7$RPj!`O9io-cGbvSl-cw(wlHP_u&3#wbu0)kV~0+LJ0xgp)9NCC;ENCCkm zccnnMSwi(HRz`3vR>t-%?uH7@zsBTj9~+ai-zc+bx2D3U+0nosnGwL7TR!Fv8Z+esb9yBu68+6$IFJ;`z1^EyaGWt=iAE z{mNv`HeYAnzJZPpX(w|8l!UUt%9VV(>1u2+Tkb?E#y(g+^2`1Q; zV1m)WEh(x^0VS9eP=ZDO30l>l4HE3xAi-Sl?iJOb1QSe3Fu`c}rWVz#3=|B@K-;u_ zv|95aPQrF3Mk4CXzSVuRKiLFoH=&cTQ{i29LHEgMjtd~$R{><3tKU4M*$N|ULt%t% zMZBFxGZ+E3ZR=p?z-!k32`b_9Qdm)@v#|jv`{qPbB!-ki;mRC6g(_G|p$Zn&F zs-T1hVlJps+EsCR+Dn(Y*{ga&aZ90+t9Jqs|a5uVu~%I&iw@!+h0Mde4GDFE#zT)_pShxM{d6zb04GA-7SNitQ&2$?|z}= zQF~qvt1T0ywZ&>-pinVg?MZa8A$>=7th$Ugts~&eXiIyWSWc4>1!?Nf9xuq{vuPLP z^4U@ga`{a17JO4vipx}HnPA{`87(0x=F`%9C@ITlNjnTjxi{oYdzPb{%ubcc=BD4m z2$l+Qu`7KCeEE!K&hjlittwWW&%)C^h|5%n-qG>pGm)Vkg!KdA%V;R{lD~YGvf_Ew z<+JB)L0&!+St=!IpXc(K6t-wCpRuePUlMjtET7f5eG1EGIb*HYE~BmRqTceEs;^Eh zpAF@*33bBDXDHkWFPkN$6J9oZ^-g%%Oz55PvYC`R;bk)x z*$FS3)!0sW*(?j4@bcNRI^ktA*~r{HZ?qkU1*X6rp1y%qW_4+`19L34Z*eB_y#pua`Uct!??i_uchyco z`i=maf#?5|l(*BCSYOKh*VwyRC>EeqTa=P(bF!UO_`U^VZo8*%ftZ47<-&}p4perl zBFfHAK|SpH7m@;6Tdz!&PAF7)?VK8($s2yf4!4}pB74kgY&KWV18-$Ebip~V%pNNi z6gND%)mZylsM-7l_?;f|?n*N`?K)h~r``BYOy59L z(TCS}eu#M_dl->nd)~vqo#jsBr9F@OM^fDOWtDX%e8V`+PV8lW9w6o13i?9X^rZRH z#kXpk-TS+hCz-;w@$42-<>}9f3|FDN|0%aA%?j$6TSrLW3J2tG$S|&U0HIM#de^CXq zs4-ovYud@-Wwsh|E_j(OYe#IC*Q~dBeR<7zlfpm+im0s1Sb>(;YE%VUUdw6)T2{05 z3bd?dq|1e)s;su>K?!W}hIg?e5-mrhb?GcSA8v?Bq<8D^qNgFOIwBRxRcjYvnuO@_ zB;4J(=ya&YqJmdRjhSGbv&PSNsznuy?_RY4ZtXMiHyz@@}=I9=Wj?4(ck)`Hi2byolS5lpsH%eTm4ErS~P{ z9))r5hlQufy=e@L6^9FvsdDDKW2VLzhcE{FXrFSGD>v7-{-SYSUv z4hWxMep3AC5-#I;QXB~uNko0vqeb#$_#qa_li^5cXM|HNB9>>xUQS+~PNb@pu7yb? z8Q$aJj3!Hz5-OO*s^XL+k<7G?c^`xrFITr`dsjJE>{yq{C?_~{eA<8PuD7(VFg{U< zQ188hNVh)dR@|wPecW4>;f<|q#yP63B59;hnVBrB=qqeBtLrMPzNV~0ygfE5BopY( zB4DhF#~~dSYKSVZzB56EWc>Rtbd)eWMSwXKJ*DBw_A+l8Qo(Y6pu@G`mnz|Y&t3=M zgY+su{a(B(VI2wAk-;yr>p1K4={nTENkK=2w;8BNXI)9<#>Jyl!Kkltt3ts~Y3s1y zXQox0cgjpf_;=;%AX6!Q$9Z*}^xv%O*po>JlPU~V(U)9y6#G}M2 zTw2Uk!P-i$D&Q`fssN6x`%h@-P~wJW$e4}{YypUX@ofOSQ$U4zE8QwW`i7Yf zwm&zfV&!jwMZh^h!H-_)aP7NV5fW^``c9TAAuOS*So5(dm4_8%l`kwvt5|KNTos`2 z8mUZs9ae`*>y|27UE9+olqE1-Kwd0T@!|$S6|HR!)deE9<>^BDr&x3u@14WcXa8o$ z2nl6zNtbX3d*Ln)RVZ$$LKWmAiY7G!^hp^V=DwY~3l}PqzaF8oLmz3-an=nTIyCqZ z1RWRna)A!>A6C{;!K#pw*0~hNRJmSp)BV;C>V%ambA@fgg>p4l z%@2(gIy$;i;omaCZ*A>1E-U=jnXz&0Y5TWKXQySiGh_eOp0*}y%TkN0Oy4o#R zSF8P7M);|#%@S?vw14YrwSQ|9erpwe>uM2Xv-WQp`=_?9R?EFk`=>VHw~X*xM~5xj z)oTCNCj8bS{njGLW`*CnTC8MbI_=*&I)vZa?BBXt?cZ9Y-&$;3d)of3qdjZ+*U@JG z*41kNma%_o6Mkz?3%IU~ZMH-Bt=;~uwblMDlMxqF{-SS)KYDm#Y~<*M6Sf2kUhY9? z;UG%=0CaJ;ufC5;m>j8DiUrmN6GuB6cH{np1ZmrI1-G1O^X3xL`qmyRza_cVJgN*c zcChcSCvksGcbqS_5cgCoT;dv<8{M`oS1wd0CrbG-^Wpm3mb5jn+P}1Q*}rvk3cq#O YzqJX!Wrg2bTW#5FR`@NQPNh=+51#FJ<^TWy literal 0 HcmV?d00001 diff --git a/thrid-party/ton/lib/libton_block.a b/thrid-party/ton/lib/libton_block.a new file mode 100644 index 0000000000000000000000000000000000000000..be3ce479d6485610eb6629e556b6a165acb43df1 GIT binary patch literal 3791360 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 z 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 z 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

    uU^KH)bzYb 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­A10Mr!N)jrYUxG%sXMgtpJW=7!$z}3 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�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%0Dox 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

    <+=a#ESo-m#k>XFax3iVyyc5~ z7X4$iDbr>y_Pc)m^79X2G9BF6ix+anjJNQA_wg{LL+8W1g^P63{P*Yok4^obI^O;j zN5#K#{{Q>O#=ms7|H$_L(h>51n61Ckn_A+i=sCZ%oTv1n<$Et!vTViJ-Z}EW{+#*8 znf;&IJpYPkoKjda|I|fG z=AE@{;e;*nZ?6TXa{}@fL$6v^d5JdR-SCY6hrO?XkMk(*mWY!m32-hD;*^gl#1JPy zqUWU3N1T8Z`|P_!a@^PnDIuI?=^Tq#A4qp#Lk&))qrM(jT)?eMo7VJ&V%pNzZ85JM zaN>}}a)5#fX-OLz5=bG}1M2c&+(PmDpV{5#*?o2&=}wYE`}@_uM0dA4GdnxGJ3Bi& zyDKcd46Xf#C+@`OrqPvg8%d-)D6ib(E z|8RN$hOg%hz!J>l#`}kI6X^jgl-eiYV;JA&<5K-wg8KXEL6s7>jKElPWO#}7L^yx8uszYLAw6KyBn$v5Qyb{^`gag~_=*i!i(bp|bsMc8_T7rgk71KpMd3-oKIE2n2 zJAezW4W0fL+3VMix_F7V634P$TBmfuCRUI454$qr@o=@-apMB@TGGQ~=qjtSS!Xu0 z!{Uj8XbA?gtID2MWj{Z>81pl<#%9Fzy0MP(_8)EfU6?CBKbmq{-_SNup)O z?9SeyjZvr_();6L9tQO208~YG@RqUMs0+e_TMkzCJIEdB%J1UpZyD?x5Dgp!*9tm) zP$*fbTsI|C*}KY02r>RzKAX=*QE6K@wq+>SmxWaw1>#916_wwkcq?@9c>jw0_;_|?VB3n(EnDE_gPYC)>vh%!=INbM zOw+1vKyhj9of?D?8r%oj%#!3dC8Ht zQ&SF7zgPLZuJhor#VnKCJTzkFbXuuF&Am7jweLsv2?hXxci55XY2%nXmkq~X5A$smiAaaC6f`F6j z;RzeaMndQ|n9r$Lled#Qd5e?(1bV2LN>^;|AGy;7qqZr0qCo?DZT@V`R)`D4lihd? z%u!cD}>%p+HRypL<2Wv$@=@E!S%JWtgO12pO9 z({M^)G_4;^uh9e*Ha3&9VJMp{49LbJ9RHa%GAbf-TOFAeSAlI7K_{qyusdc2^Yp1d z3~iO~S@V4uMbNWHh{1`LMci?hj1KykS7$O?83lSy*yL(h2gE*5xk}d!|*o!kXoz>L06Kq zBbX{P3~$#!SD>>(E2TIqpl7HU4g7zEyVO@}^>Z8eLY^}h>D;+J^UkGt@D@n&47oym z-e~gjl}(^@wRr+sM{1UJt=JR|&0@Ybb7-Hif~W&G7;JSQg$G_FYRwgHqY8(~*m|VX zH~82?Fw(!p(~ttGdJaIpCBm!a70O)K@J)AGi*%=jU1BOdK$I>qJHvK~IbgyrF$aj| z6e5?H144I+IkH18F&n~niP>2WmzV>{bcxvj%KUON&xR+5JGrv8+M@$FAcEoKXPPcC zo1MTVX6J=nVh#w0OUwZka)~)0beEVT+vyT>z=d66Hb}Hf%!ZXNF*_sDC1!&fE-^=T z$R*~0&|PAVY~3#QTRj+(wk7NW(pJpE_v9)__k20>!=5h(i0=8avjfkUo#%VL>?|+j z`Eo!Qo-aqf)AQwkGnWW1L54hE4jSQQgNsVo^W`9;)}QS8a^%~dF9(pr^JPOtd%kQ~ zr{~K7rmut?0`NUw4pils5uPs_z+X2x=o+3c8&!F}>>TO&vNKH2m&&(2UwV$e(sFTV zdcG7|FrGEfmz`;Qz8o-y=gX0=1T0)z4glTr<;vDPUyf{Z`R5XWY0tSJLQA{|5PebS z0x_3yE(m?$=E}ExTy}kxh3P^M`?zdu-xI_REJuFW$E83_AD2oEx{+u3xEwG_$FPsf zk#8(O9Tg0GTn=Qz$EEUX_i@dPp^Pk;#|EIkj8Hx$`S#2nMzISpC$KQQT|{`YnjJ&e>|tn&A7598AuUdPAD2slw!cb;@>gNA z__%Z&$12nGaT&l?y=)(s0dLjL_Hh~THvNzS42#c+psT~#5lrP6hPP{=tIAoSl~SA) zFuc_EM|1sNqhCTu;5@huJTuRok4yErx@G$u__*fITOi3Z<>OMk&B4c|qbB62_5EP_ zE{|ywv9qXF++eVUhucgA8gu&$<@wq*nC-NQQFH1kAD6+ltw$WLD~;`-5T}nz(9R5Q z8|fcL#1}<9HDrdf!#GtS&i&NgwSO5=nC&8vIC(PypSviUn4{z7T7jVdKWCa`K`U_P zmCM4i8_4?%>6=J)`JkFQcah0%9YE|00#vBujJ$K0`;X}VaU6O%OA zgl|xYj5|0IHGz#4ilbbgS>HlOm^w0RZ(P@w5e0<3%U)uF4|(EX5Dp8`5lcD%)pb1r zA9CZXvm@ynHz$*XnwiMqd?#4CE3>J8XbW>2CKmSuu{0a7L?WUDMB1g$E_EHO6$U=U^CdHsX$pco`HOD_2~ zpOg+EP8n_7mdj2g*KT%!v}uQ0`M~VWE-35hs{^QWbY#mm!Hbe~z)I%?0->TZLp5RS z8;#Xw+#4Iu3Ql2ji33qwYr7<`GZN0E>9zVasacbbDtU1wVwA2RM1S|AlX0vh+dnR` zLnXBNC2;q07U9VT;Ql0d2vG_6)L;zpcrAj6mLH-K_c=jLTzquMnyNfUzuz+2KbR2} zG5bA@Hz_>>t&N8ZqcLZZSbFe`I%dtdIA$Fh+kR10K|7kf6DM+qCN|4M(V0!7<8;28 z7IVgNRR0JaB2(0<*7nSh-}Ce^ZLfvT{ROmwUd_yj^TQ58D5QNbn}g=@y2eBxC3F#v z5N5LDqG}aB!K_3-K^W!I`x%U~YWXOaV>M zHi%=DUONJ*h7sT2&jFkLx&FB9Cr}5QGIwQJ6^{3F@6*JHjp$I1rqLrs>+I4R*)Xw4 zN=`!YfzjcOLnAnpiU6JD&Ffk+H{ZBMYBO~}Jk7_qXBaM8Rrn-0%y?p+?SzflJBLPK zA>)<=m6WA}yM6*fX79w$En6}ajLzrX72utDT*?4zl8?=riTwj_&kv1fk@#lg+`3wX z%-VC4T^mOSxA7r5BC`6{1tBw6B2ZA`K;Qg$(aGF0^3EX$`sVCJewgH>89ppmD#^O! zLfIt3rs*Hf3d3i3qZ8We5Ecv+Nj%XmK+%1m<2tS%!fh0})#=`$c%lQ5US0yVYy==R;VUw5GA-E{i8rzWAeVjCfnPjLgPu5z{Y^${ST#@wksECiq$Kg8AMv z0&!;5oub$PU4-M*jb;Vw)K4K4%2Pi9EsUprWb5c!{UnSip1RT1_EX)6`k}b`kwa$E zY(`?ZyJ#k2y{MiU;Zr~BTKrG_$gb$1`l*Cshw3IEHu>sC(*uO&fE=8cs~=h4Zmb{M z3bC)BgnpQ=erzq8sBUCG)~Iew6^T?gqNhh8)sJmP7S)d*-pZ|?LMSS!egZ0L*}^J=Bk{he6bhU9*$K8rY#ovbsw);>_yD4n?8WPaqtPRzC$bw@|EFeb{$qN6avj z`p~hUoG-c_3Rh#{w6=5vDcOfX>!D|b4XMKr$z(lbtWABj9IB6uADtj$_3B~4#}$!$ z^`KhZ2g{;4@vkk%`G$>o5(%Ayomb6lFV=jS3&$7EkG-(TS|4{-LwdT^RUa*DWN49# z^QxnYYpjQe-?>AlbnBquNA1iU6IlmEhcePkk$Fnnil>|(W8q+`dZ<}F!3!BJ^Q|h# z=_bs4$(aUCebgKy2={xa%c18KrR>l-urP7BFH+rp5W7l;qyZItq7 znH{O-WyxGg1xty!QqWXb zh|Q!HY~|Y@UR!OA+@8Uh4*SS8DzzO2bW$;VNL?a`6}QQ{)!WUAjX*ys^<--&hjQv) zm%K@l(B+|SG4^I}n7HvajV%=;`d|Ub*_*WUCmLzQE=2uZ+qv^+**ado0IUWbc>es& zAktuPh;^qC)<@IjY+Xv@bKbN(?P40fsTVT3 ziAUP}r_LZHSF1Y-NE-t0sEy$;3_VLVn$O|fTht*p)Y$8iuLNw&!`y|n%WtKrlWy(e zq#IuD!hh82{=uRo4#0^Chpb!onS+_mrohFB|8&bIblA>)E>AvMfGgZ?R_JupW)=qM z&;$22&5l&)zz$M72XIJ`&cx7B)Rv%v0fg6vm%eg1Suv5p2|}z40ziWjai~bFzg2gK z#)AO1HSbE21lF&cCEvLI)`5R3cM~UfOZi$y#`?yWyR#$rAC1047fpbUfOfwfdh^{iC`rZ-0R@P31Kke zgjk1n9I>0O`$7frbVP>Ec_Nnyo>fTVlqL5iy}3MX9p?iWoy`Scuu5qhzIWKk`cj!4$#pbez(ZMrhSvEgViV?gWV_~b1t@7HVr@XM2XPx zR~iaHvj^me2wL0IPMkO@YULV5hjX=Z;}}~Qa^d%z90GTpT5)g^4Q8+u4Q7ZvbjZa~ zo)f|-$^{XUfb5EzS!?ymcq{eFC_rOkh`h7cW`7n?y&f}zY88TgE+Y4+6KUzaG@}V? zCdfA!m-qfzT2xQhS<=$Aa^lcv`eYUF=Q>%-I zVHvy;Cg>O)RC__p=12Ed+B{gfdb!-&Sc>%Yn4@6xB4$U~E&yEwP}54y21TqhXEv|p zP5kaN-zmY}A~f~c0HAUxB^YTcy=@t!_FV6zj ziKTbodQ0@QrmP!RZ;ZN;9WMX+gf)XRx;{eA-Q#-Oz&eUhCjrgd92+;05((X*;C1znjnSna!>xd!!cu3meXNb228yM6t` zzIKtJEWNx?mR=2Y2H2)&=IG>%9G!J6A&sXyZT>?q9N48g0rbLM0LFxCo-U5|PSS-j zuD6>N(_RZ*FSNCP2*lKGBO=6Qte` zM7F6xEo`IzTG&Qs&~~e$J1lPpd+Y&A53YhY!)_goPNdYtwz5qpkVh{RB;>(YwOWRP zy1T>{ftjP%-pJ83iHEID=|ARS;E=j8Ozbkv3sFSAUa})!FCUsrJ+p3?9h?xhY==;m zUScTA=t6v+cDR2G3pGbotX!R}esv4uYSq95EDR#M4)W3#yEG$1FG$bO%D@oe#iw0_ zJZxggNKe-b(9$*fu=DluVP8iTj$1Z@ zr^{@{!g;!K4Cm<#h4Oe099H%EarkLT>NOeO?jE`s#?3@m+R9D0-ET^mlxakwCKKDb|8Kbpt05m9VFq85O`g$uwCh6_Lh(1vykxG{A0X!BdU z4T9>YXG^O%3}Ox`<7lScmUgzmyOkX(AI2f+k^IDp&A80mrRu^DI66j_8^qwl38L`= zgSam{G0`ts&~j8voStn+$Uk*z3CGOQ`7v_z!Z5(3y)65#Yk;{Rj4lxG-wT$7F8{G0Oo`1kX7Ox;@bGdD6DLFeXmgym01zU6_);!Q17yUSH z9h*CQ>OPWS^7KP*lMBkWA38cOvi@aE>Xx$k*Bl3L&_uYzWgetp%&Z^Pd$bmuIWNN2 z{YNrpX<>jHH|9mxl8L&p zVgZ^Fn$!b*f9XCSM*Vw_X1Qf;L3_8p(wGnPwjQ=`VOvnfL#u-Y<~?lmFFbi;J+Q#! zLst5{s9U4QGwkSvrS03I3rp6z^=_HU~K&*>*1~SV;cdk^`pDCEo-FW$9L8UAJtg= zYF@;uF2E5djBA6n4g=SS7CO2+6PDNs(XKX}2{@>Qeo(eX4C~3C8u5&?jJ4sYbz^PN z`eDHuG0cNaH6ppr|I~;Y8q_snX$LiG#R!fQ)QF)E+Zs`D(nH5;M6p7=YQ%FW`5H0x6?1JUDx{${ zXfq6SaH_|YwVuailXh*)`+5Q{?&>RZ1>fO0W)3OhpQb)+c>Kc zDYRa#9ZO$^)`(@UE^9>67mYQdg!Tn$#L~U}HKK&P_cdaLPyW=1rc@NYJW>OS_1s7e zIMy2@HR34IQN++pC}gLpei z%g;fynj^H<@-4^YY>57Pd1mk9Y-H?yVfg{)Kq92xl5>zDJ-nbRyE)M?Rp0C+e4z$C zaRzTut%9l1B{Uy$y5DC$bZqBN?bK=(p7h|%Mwy%-Gr0owP7l`d2!`z8KQ@> z!`J94)o@)=)Cu<^0G4k?pOEA2irY=^9OPJYT#7r~k9WxN z%CeJp?eMf7Eb6r?Li{;9u0G||iyV1so1ZC|fdNhM=G8b}3q{Ta)X-)UF7w15Hf|b)b00a=RWxVN0Y3afNvuX#Txm zb>M_<@vH~aW#86=kI?YZ0USWc4&E}B8?6h|xO=1?Oxswk13U6EfjVgT6I~rR#!l6& zcw$s(!J;)`_@_5#h1SNPaqO}V#Nc>j9Y|i-ZmkDbH(cw$^X<=BaoCcy*Q zR@Zn@troRvN7!jI?_5c^Le%HTjU!xqu9Wm`?m0_Gg=){02_w9Du0&vCX*;rWu1hFz zc8=Txw$B_1gkAD;CFAgs&ng;R#_l@)gtVwfNIYTQsH;5bD(~!;E$g-n4agJQ^n!_( zScy9chek*G$G5E-+L|5oIyb?2J+V16FrLM!<&6J^iFs8aUlkH2Nc21^`en4j^rU3YIq?ii^cV+yq)!bX_k&YGG)2Y;-&)ZgFwkhyw4X@l2BCHMH-@7B3LV zdWBggcj=4-BQG{jm8k=NYL)(h3#>2>gq&A{l`w#>%B7@@UYmrp68p2h=J!L|nPV3L@eXwXLvyg(rt^H0?7BH9dhHnxZ@NP4nV zo>0}uXp5j3smOgylYnutNB!s&+M@4V&W(argUFkUXm0Q_W*x*6VeMN+2l}^UyYds+ z%%=WLpe6lR%b`>xU#1n z7$o)NKg5zu-niMpsj*LBbL+^~IkvOc+*tqPz`+B8H9ZcTz~*#U{}xgUc-kqw?)pqJ zxoRVnLPzLoZ25R}hi=3slX%A%PDfmXyJZwN_OB&ff=389_D^Kfc!O7nXfCy=?e*KP z%(|{jvUO>u^}l5;W`E2vp-WTNr7cvK9&Qn|2feSruU+CvMo4~DwB%RMUGlR(xa#6L zzHmH4?bPh|P(!Rv1aY^R?ar`{3Bg4#H652=9r9NGTLmWx&k7e+MP;rjdg7Hpo6#^_ zRE5HDvRwbnqzqwoRnp&i6q#ntLYZN*V*AleRnH3()$^i6q`RDq5-dNN4H+dS8`7*% zU|FcmQKMw5xlJgumQl2#N(^nN&Rnn)II4UnaFp0xZaRY(OZ?FoQOyvEVcY;}1bKN~ z6PUHK{?X3p_k5(~leA}?Htb^%9`PMyeNJNZ|kKhXHXjER$ZyCjN;p7|6 z=xZSLq`FZQ!RxMNuT7|4FfDw_K~XRdbS48H&CTn$$8pYhkf&cgC>#oY^ANN@5~WQ|PG^H_gQ#|8br<=>2eT6c z_QhkhQH$L1m17*>5n{1e(aSV#SQ+N@OfOXidBr{Fsm1 zsddeUh*W0&u6IapSZd4yj8b40V3eLvJ9{%L2oowwGni1aL|F$b6wN4bW+1bY5tKx6 zei+cq!E1Wqb)g7W>OzT<1gn*dla;M@q(uFf_Qa>ly)X_FYZ#5%4qdvrfENzIHQw zQnNM{=)2%&;>QIa$q&S-Ut()^U|T$H@JMdl;E_E?pDII=u{(kbIC3z#fTP$@cFSxW zgyEtJ55ehPX7iATabPN#w!$_?u!Ch>a%vp5sRf(%zv@BKdc6_y7dl}#OVMF7A}Syt zAY()+$POCScHwXgW3=0S$lL>vw4>V5P5ah0|06u&N)Z2pn1$h$Yt6vvkEiT5;UaDd zNr5Y$zNX)-dtiJU6DxrHM)6SW#B;XSAS64NZtzRkQkZ);_@yyBmu~P&V|EVR;LPvI z%(>B@E7s=F#LpFLb7|0^_lY&W;iVv#!F)HY=H8&s5o>d4(C3J?b?#Y(H;8GQIc%Sp zZVtow!@HiMEg~vBKdQnVr%qq3%lPZnz!K9oir}V`t1Eb;V7mr4e^TfSbvrSewt}gl zfz0Sc4lyso>47!a<@FF4+CQE_AO>O&5M_gZft6Wvv8`0Bx|VacLTNXDhC+i{*Ro`M zE=twR_~)WH%i3J9LTxkHj^D4f72!3jr4@q?8*ET7R1sEnf<5LlR)jX}YHpUgMWr@v z7pfNaYF^(ss(s|nRuQW~T-&H;u2SJWpM@&Pu9m%-bLPr2cWV}^9IH!c4(Ej`!;+iw zFQ2gjOxNi`6=TWD@{2B1NtVPcAL&AsWY@{^XP(ibOjqTZD=O@VT&R-lmNFfUXRMsS z7&&7_gbk20SCI4U(*hOe8?Q6(B-L6Pf-!2bcl>a)TIsgdN>@arEjZbTcUNXJ;%8yo zpjs=>I507ji2WnH3q((N!9}>kY}Jisje>nbuYk3Uj%7!%gDh5Eak1*cq6@dc(W1*i zixRcSXMY(cH=O;h99Ywu9jYz=cpavE1jN}~FohRL7)K5C09;pbHqPuU+BmcG7S_|Xa~Op=JD*XQVQy>gKGI{MciO-M zFgGgUTFi+G??O%7N#j@@yHGJCb_hv0k`65)-6+9`4PR9gj}P~6+nCMpad)vXtQ~CC z+)a8YPu+1Wb`Yt#tt?I;PMqQL{fNlU;0i&0`y`XIFZI;x+oojRW((a4j|`;lm)Aix z3u1D|IjU_YN8cO^)S6jeT1UrZYMY#KRmZqpM=M4%sAEuMRGj8QmSL~t9X%%~5F%C) zY${N0-qpmO_jv!vL_co_J}0HCcrV-7cN(sS4yy}CYOK0&gvKQ!MwBaP_`i9U!V|c3 z9jX`a6zVAGGajBf#={`DAOt;24-s`(0KnA%){ahOymku+Z`*1>J_L=wPEmGyn}rlA zy43=(i*AiuK%t^-h~7Ak5<;Z(%(n=Orpi(%s>j68x|%#(ElSGMJX#nDWgMQ1g3`-_ z5OB-S+VSi=(zw|;(~@jhy<$ZsyLA9ZqHzn=#x2?Qt}ZLB&5_n=gS9)-S{-R|N1EqI z>u?ldCwc95TEda!NQ*nt+S_d0xM!zzc3NU;?Xc70jx^7a)^4M=JJLKyTEcgxFfB-)d3fGqlUv<}Y!=Sb^lvEjU~cB{UL4m&OGNb?+N@pcn29BJ(d8@Hp?PHT6hB^+sY3+`*)|QrrhReLG_GVw2y$>DUR_%430Pu{jZ_^rM@` zA|#&L)Y!15311d9>`*ZDnaQBlv*TFDw{vnPW70bz>9h!P4g0Tb1c~6^3xlr`|IUE{ zZRs7R*St&+8ho)peCoB04bQ{Z&7W*+Aojxla0QLn?U5N_dQ-~D*j8)n|f~Txus|Qy42m@JBWgNi{;z?>-6c~VqpV5isg^};`HfMarZuaq>DdI zm1vANq)H8`V)A&Z)SfDwj7_}>jHQde=q+a#r%LCf%J(#!CZuoPOO1Yd?b_b*@cy2I zB#PeRzj-H9#eec1d6ww(7QfwB9$dN@$-TwzaMIL~*wn+w+7$b@Bb#FHEo`9jrwe2F zAdG|fe@6<;Q3=z9&G?|?bm?3q?kCv7k=&var@Na{(~C&X4XN^BW~Y3Bv&&_o*jr`_ zz2)-P@he^Y26*D)`-(qFl@1F+r*khoar&mF{Mnp?(kPipmI_R=0A7b7vve^DksM}L z3#Vg+pFnw4evUs%T$4u@gT1GSy=ktI$rxvpcN4x6O!@E@&OR=gH4E<{cJR1v0RMff;@ly)D(ha&s{z6V4S8;LLtf*|eiR@91#qJ;yxl&a|NB)OD! z@4$zmyA9tp8k?!)@_`oq*iEu${#M35^Kr`REgjy9kDikcHRjIig#_@UdQM;QJL#|f zAU&NVVK=19?~(0Te2@S^ZU|uMSn{XTeA5h+Do&>+rx*1Wf5`N&Kf1DYQ3FBedruaK z<;MK_lLeAVV}8R)?m~^Z=cDOK=8PhHoA@3KmgULgv8i8R>{MRU6i7$X%>5-OkPsM4 z($DQhB1v2(QVTccKV1D|^q@U}C4TXBSMZf6$W#)g{7T(Oe!VUDx;FTll3&FTIta{Q z2$c`>@A3hvJ2NtMB)2V9Do_FF(MLki{JVU>Z=m9XsDuEr1`{PSVi&5J7V7CQ{ zDWpywCOy^=o4OI23F#y~RO1+Z_}L-k_1KzC zvG*K%;HkyX^^PblbE8GWMkfm;jUQEp1ixf${bb!-IE&mYxjrH;2r@*H7 zC^RuO2cbdOA>BsFRFfTtN#jFAABKn^@bYd#7TO!w`|#sFg7Y3pN?k>D{ykzzc6Xud zQdG=zVXY(^@XHzH-IO5-V8VEupv#GT0{Y`}P{-sUgati_64m4YO-DbWIAT*|SVG$^ z!*3{$W_(m)NK*3#S97{RBZ%0&zZri7$s#9iijAKAy-OMa|6U%@sYBz<8*y{sUCpUt z>Y~)4e%v_SylHeCzZRzs@zop6o3r@UlsYufKQc0!YtE;NO-H*gp|&6yX-v{jX7U6| z1(PQPlg|>9-$jyAO7~x>xYBgcp}SBJ6_3I$O&yY4ZN{&crw)z5Qpz?Djo{ZyQiuAo z<9BVz5+kYSrw$E`;L50>L8`!_qup0De3p8J*(%(#p=?Op=mSzC3iave6x63d!$G7} z7(-s+iCEzodXZ=TODJ^CZvEjrsQ~6-=6)I*{s$zFtGcwxWKrVrt^YOi(<$IY`IwBhfXaNc$IF z4`t9>d^UCWLu6*%-t(58J9^&QleyzTHP6Z7b9bXu>M%@QvJxx29V)D{6@T1g(mN>! zQ{@5@JU79`^vxegiS9TC7p*{ow8Jd~Qa(WaH8k;4j+&sm397Wa6CY}V_9!W!eaZuE z7_&O<6hN3L2Eaai4<>)gQM7L(LZ#hn@u6s^DaogOxP>}N`M~3pTHa0Lnk7R$gR(IB zcjLpK{5$cZhRNRpSgn(P=g9)G+?ek^Ss=NvIk1Gj@Z`S?-&7az*{i(g=cE!;D>8oW z2%45EESr{TlCVrQ!jH;F@F!f2ZrFt9x z5{&m(@4~O@Ci>G~`7C#dX=a&$gd9HLlEZIR7c&S;B{r3(Iop;@w8X1Jj4s&tr|L7+ z9{dIco(Z7rZZNG2N(Ofg)i|s^X0QqcCBCUo5U9Rb`=P{lMwM#iDw<3sC!z|+&^@4@ zV^c3imRSwTqH0u5;g7;npTJfubBkZ3RNU*86?;SF2=IaiCQZ`}mx9KjeCKT)HQ;;|) zNra3RN@fybjVDKjOE<>~j{~ss>!xT8;k-_o}y z@X(k$UimY?Y2x@23zick?!&~umjqPhA^G_^@!4DaDKj6tK-71?yS|hR1QOW>0TG*e zAN|(moq&`kLRGb?SBp`#6WCm!s^-+i$dCh&+cP$Gt^oDhbk_AwP;yZ1{G-)xY>Hhn zMO-%+{s!2h*Egq1H!Mp{KJdy^*Rj~-#{hB^qAk5^Ngs9gKfv!)>CMeMmc!_!O!6^Y z@w3$QYH2B~ZbBkfLFe+v4#E%N-lK!r-uXt6u_|~T0;&*$CzfjJAo}-Iij+Q==ntZ59o3I%d zYWBc2te8KCk9#jgxhj2Hq<@Uk;W-rPN;sRYQqtJ8%a8~BFVschWI;8Rf)Rd}-qNb3 z(hFCX)+|buFFeT9x9_^|jez!!aG^cLhhlF!61$?nYyauw4rDb@~^9QrOR(wx;QoY?GtLEO&1?d6_YzslV5C174IQBy~U4{y#c4dF80rS zi;G%ubmgld;xaFJ@4E)&h-#OBTP!RFLTnkA2X4q-viVAv-?=zd-oDE;IBwZR76BG( z`Ms&qEqkixvJI2}U6d4@s#pyNLtmxhFnV@ZW|ILC|74z_>YQWVOT0KGM0>j z)H43ym89Ta&}JMGY8$?w-jc* zHSpW8O`I;?+LSK7Frp$S3q-v!fBQ*ht}%b-NoKtIv*c!bDY1Fgteuz4q*14fth;3$07L)q}B(?;JB#y>hnUs*9h~mj`-M&{M3O=T` z0swG}eK^U})E3UzzC#MZFqNkU6nLumpsF)WFA`c~{>`e+IjXZVS!BIQ3H$XX9jm%G z>>@|SK3#>$jv|8a`qhy<}BO_s0>sH$XIpd2ZcH*@73Qdtv# zj!|V}Q`a)6l9M!wV;4ZBt`z$8jt2vcLi!|CJe4ZFF(p<{w4}S>7!5jb z>=M?;>r#{7!`kvkDJY%t_C2CKCb#cv$hE6J!wdT431s8{{2rwp;Ru?Y zQu49o$uGq|{9yHYEEsKca-P%ggeC?=mm7u~O%N|W37H{|+}as-`rztl6yBdO`+5$bE{ z;<@atdjWe8x9eJkAvzi9((0m zj*#c=h;qK2IDKPN9P1i|&VeTcP&iFir5LZV zDOwDgz@nBV081f})C!LRsXBE3WdLU`r0zKcHx)ai;E(#%)FEsjHxErT58)R)SA08e z^BDQK;JK1_<~HLOJXf!hEOVO_wt#wNGpRvUX3*qliu?_|(0F%0L=wAQI8@ToAS@*x zPZw7=qlJ#+a|u3=q)L6q(#4xF<*vqjD}++0QVFN9su40QUv~oD46L|+5BtCO-miK9 zo8~@g^eWkrxZ`{QrE`aQKnVfVMV}&>RlbZrfeJGhnJT^Vn*f649Mz=EZEnD95vn$N z5to%)TZME@;=G&?{qG7BbFYs1((2U;Q(zG9`IpJAkiSaFURkl2PJ>~RZ)L#+d1gVb zPLn?tK&yhKJ&e&k`90V}=a5JKF3e114o{!M+@dF!w?8YIsg!&cJjn0MQ^m7rj9pHX z-K%8c_5c7`FQKd$XH~H|C@_U_zZe|{N~e6?Pp{^NzXvPud(VSn5QNm!5ZLRyTS~jz zeOO=@zmh7RNEd&eD!o96^t@ED?{ON;#sFrsDpfoxnY)LL!@?7}x57(K-x;^O{h(t0 zAQp9$o-V$8sSZMV>Q3;+-R-SDllq`|JT~>~$f*23NDaFjJa~A!R+_!ZV@M@~hPFxQ zqu6%@y6a#{7`0ddVF%3DqipCl(452`fe+3C* z1g(F)If77ZHOJ zww}Q>s&&gAv4P>(xmW>)?@s`c>!ef{eC!;4R;40T{Xp5j@NQ{78ssfLcN*|$W z8E)>MfCIL29YE8?uS2N?9HJYmd6EVbEfaV!k+V|v?10<9L1N`QRE3acRlln%$k9k8 zpi-){PMDPnI;$d_zoYWI8d0Bs=*y>bagzWg16-41{^iwmiUl8A$~f1hNr$WULEx&Y zrG)h8gGrKDi}+UggeX8Y%+)3fl+5t1hROc{+^Dm(NdEF_%Hr5&CU+V2%U3eDJ(H)O zmwQF!`^1@e_kuR8w9ENpQf|`J0&uGMWUBaiDORCnOXV>lsytd0r*)J(T3l8i z=_qW%pcU`g3^4X=M+?WARA~ zv7C4S(P;Nl2%D;knj%8Xe;yzq<_{5;#yqkO=FtdJgQ`FZ3ic6Ad35C^i!fhayHvIZ zr%K`ZHvIA==B|5wCTAGVtvvi6)J)f{zMQ9&HTVd;ZIyi@bG^v)DARYjRZ7SdH0~B) zX9=+LO&WtDbFs+$K7#)=8mmR-BS=MGIZm0hJP>5BL}qnSb!nCCHoacev#T*AF;w+p zeB+-w1ZSz%g*l~+4BtJ7_2*g!;y?a+Uys*1hDknE{93vQDRTfxZ+ZI$5ryST6!ZSd z((vMy%ZE3_3KybB^^{gFUDUIDHG&Y%!Ot{)Hl>%Z#zgc})GJ;7jirmpL&v33FxJyD zwFRjyekx5>ym0wL`XUD2Wasl@@25qB>Z~QW$CLKbyAm)2% zed`afGVi!+0RprEue^kNc$VG03m?i$SfnJirYk4@hzKs%37Y1cQa2w(O~i;Lg~#e< zH6L-~HIxI0D01 zHN@QyQLoh;j@$uRz1|IuiVsXajfMFmvBCsNm=q5E+d&%y9686`7s`0&I^v&t>%9$V zHh=#+bshbTO|{AF7I*fAM7?}?89sVx_y{G103k|g$U#Y6xbY>_^Ekld(CfehrgxGV z*RZk?QEt7ZPqh$!=|Cqw(7C$_mmo0{244w=QnA+Pz2e!_hjh`r$QVlbh63A!_nZcCIn56@ZNmI-*?#7727*Q)4bY=ERD63rn-?IM@if+){6Ob8a*^E=NVEix@;iwuVGsGm9 zf;R1^ij^@ED|;~59cRf z{NooE3Alco*Aw`KMZ(CYp*!>AYLUQ;iROV(}ipAb`5fHN_~ z0;YspW#k?86*b+xl!Aqhb}thpZlV(3PbF$*9D-Gq6cK{!f0f?a>EvFp0|e=GnojPL zzjyLyiK8aavzBlJtGHYd(j^;^D+BYY#BpAZUO>1+jiUX&$Q@fzZRW<}UtAn^c_^iP zfHH)TN{1Q9?tPTZNRy0&zV%J+TT)MdYKJ0$YD2>TbO%@@`aPwK(xscQwo%c=2S^zr zo|xczxc_t6G<9AMO;-{@P9+ifROavx@JL9K#{;*4EU#aWqvxe2k1odOdkSeh*f7jW z9GBFy{M`KNQsEim0ke00IW+3C_(5|w95iL#qSt2b+^-^SG1|EyoMa5R*MgW3Nzk{mK`7j-FmPxQj-|Qi=@U4@fop)JLs3NN4bvJO zEAJpej|SD14Ha4dg~rl#j`Bu_{dIpET$UsK_uakE%K~r5$YHOCi??ggfq&! zDZ_7(!?H!b^g^^q8^BqJJ*8M*2~N)Ph5z+(wxD(a$J{fX7Q36&OyG%HhYF)@<4dq@ z{KlOk_8w~q%J3JcpOOu`>;-7prGQs)3qjjn`m%c4Ha2-1G~EpC z8!NmG0F`%=J`{%sP?cbiCtg6@V4esDeksskyWt%Y8jNGBrMWOIYz3~oToj?*>8G-R z$@>n~Z~`C72Ch(&vVq-=emhDFHTqS=Kq+YSH{$pF8=Y8%9^=5Q(qVtAK=y`Mfx_}C zug0I}a$ul0zyl$BU}D(?XqJn#P7*OtHlt65WY#HkF%2soC^z9Z#o3rkr(lWjkj&{V zHuuPB5W`v=oS4se!3;}^&0z#kGLIKy-rC8X=I}oHz!dKXGxLJVp7SZ$O#}x41gW)D ze4w6*>N%;>xu+4VY%Fh-^%%CsQ<6_Ok6vhs4_00Noa)u-$)l(Gx_**-WxDj9Q$+p; znv*R(z3LP(Sp7#e&>@j!QX=GDqwfU3F1_FXp;AAgMePSw1{NkQz`!~%cMZlwC%*S~ z{U~=+s`PFy`^8$>sp%D5c53p$Q|YcJ^G~2?Lax%@gDO`|QZl4@Y8gtZei%-S-Xbr7 zL|>FVYiPdX_S^q1d4{*Jd|e*PTKH6cgI2efqFRhzU4k5PR3K*~<@oL#4sGobIVlt8 z8G-uGK)pc#TyCINX>;cTBInO2$B(0}eiAv~qu0_?8^*zcG$E=OjCeI~wt^D%a1>TU~P&nzW9gTtc@)!VCs zmBWx(x=7$^GCNsdO_g6#5gWghC(~k6PXZjRYHP1ABcnpQ5S0V?L%uA+t2~Gw;%hK4 zV}*wa?mPISJXVz*K3u>C&yx9Hsa_@ssA=;hphQ!=knA~KD}RAM;c`s+qV0PofBrlffbkhDuuKrw@?T8ctTbtkRy~1~HF%8`U>`SBuv2M~ zYLd0N))WsVb8QgVCLr=x8Z8xONkYY@{tRd)Ey|L#e13QgP=KD2hEH!=Iw#<#A_Eg) zu`h;wQ^}H%V~mp0;ReB3?l!YLN~ZEih`Cjjye9K71<6m;9LLR2Xk)R70ll)+nJV3e zxC-6ko#n zw7#+s$pA67W7d+^mD}5Dk#Gde3fo8cN8$3_MFPevMXzaQX&mZr?Gn7LpC^MCr2m3Vxqy z**tcV=hQc2kpbrWX{~W7iWP$UPY5m$A*S9t1lTnM7R<|E0~j)2Dl%VT()f%|<1Yo+ z#RBZ)^9>pw5Sfo66@2_7Wd_?mf2@)IeqKBKan2kO;H1`Ux!u z$hqn22x?KiLscpKiA=R6A~!kmuZGbMlq>1atMMl&06%8k2??NMmvoEs4>G=q}Kd6k`9msk8D;h?s}qmnB^4R;~b zaF6evx(=0K?V8`o+j2Z@mWFrr?AVUYssaT8^gQrPQ_llGKhHbuom^QIhb?-F(|uR` zq_>nkqPk_eyj`qwtJ_oMS6os{**^zwdf7iBUW2lKfuBLy_mQ+~C?0b#Z4|C7c47>P zrT@v^;=gi-#4%MePjypK?3jLhMIV$MZmUAJ$8&Rwr4A;Fuq%WcLbt;`R ztHVHhBhrDkin1>Svm$35a&8hiucI7)HmG(909tS^5&##NsI=gGiOBhP?1%@bu?wo0 zH6K)>uP))As>>mFQT2HuN%Uw@0qL?rj6TN;{%?Fe+9)Ev!PGB^>BcbXD}K3``qr1i z!QIE9H=6y)YLdS<)X1Yk)bO<>_)0L8+FN|K_X?aHqy63=q8~#k zY`{EC1RHXf;E2x>f$Kc?p2m?cxYWrZis`zEA^pu^N)7g8QB6v4EW0R~F}2O%+gLFh zo5Q_DUQ*Ka5Qv|T+9N&(>@n9xlsB?a(@&QC!N+ARxtT=k0w$A5%7=Y-XSGk(#Pd*Iq=?}=N-R|(7CZPx5w1D?i z7z^6?FEjvMj$hD2Fmvf18nWaMeUpDawN{grMtJoyO`WKQ778S{qH-TX*w~t353K6t z&A`*K$oVi1NE1C)*umI*ssWu@i7sxU#r@s(hF`H5S$YPg~$S z5*~|0keRl}8T_178aVd11)h}&Aq_&wZX#meJzZYEl+oNUG2uTG3NgWSGk(zLD|P2noI zN$)P~yc@gOdD_k1G~NC3?D)~{S2lc>TB~yHIkM7+-~m#dT5Npo<09Fq&BB%)q|7&i zV9MEv{IK%7=LCy9aRAP2Gl;eLO%+QAOK{T{VD7& zaVLyTwb1Y=iC#dlYtNFMMt2CZ0`X(lN_T9)ewr9yEgUQJ4IhxYjt{8%6?dq}LmypS zDx`wKME|517jQ^UNlsOC4sZtgCl7mlaz;di?4KX`H?&k7Xuh{ntI)4S@p+I+gc}sx znL*qF0cF!HOUi#HjQP z42;sy^@sI3ickxJRCrj^-BCSs?hS?Wgg z14vnHa7&-C*&)uRp2t0BGe~P4;z@9f zDbufVH_$h+7L*+{e_{3JAW!w$H)4o~du_h8nyy|~VIxVpC@W7>w~{}2 z4_cNXJ9-X!=CI$xtLFy=$+?1SrmK@zkveI`AE~u947rJ{=^kRGLgyj$qGk1}@6{7g zgg@mG&y`mIOEEs%r_GAbLq1=5UxWxkHI&8YH&y-=2riN|(K<#VB?CiK>*2Agv_VkG zT#q@2D-BS+BC4(qhV+@XUS$!Rx*Y;GnNSL&((RDFqkMk>;hA(6OMz4`R+Vue>&!n+ zf?c?^1#ikn7cIJJ^{p0D)f*L3_|pOfw@vQeK*`)2BDC%&$)2Nmbk;JY14%Cb#r}MW zuzw59h?%p8i>#vjR}60xs((XJ;%wZ%QNCaaW1tctccjb;!V&TO8G%fqCIt=_GzRsFqs?)J(< zB@q2h=d=F>6GS`8@|R!b#9L|YQp2Y66wrkEBsb)9@1>OiCNVahC=dds6RgU$)PB;H zqy-|Xg<5fz8JZ`*f&8)CQ|1*x{js+!_7gn^C?Quc+=4SK%&m6q;sEBeP~sjlE&h+ld`x8iHDw0f;(a2sEHXb#nfoCN(WFC^ zDHW0G0CM=}Z>sP~TiGql{_>*gc@mtirnEW^6IU7rA*U1MH0|yB6lt8macYJGNXIFK z0}z-X;cuSguEoN*S@tN>&{KO*i3H5yV=~`ci01-g% zZwd1jutmm>cF0Tb?HnGU*f%rap+$&*-v+7<;#1!Lq@TA<@gT;9B)IEC=uJ3$`C^Ut z9Vcnv!V*}irN`-e=|fM^M>*HjoVwx*XtQ$SO<25pk3tdcKt+O+LMnD6HuZJJxbQ{5 z1k`3g!9l>l&BzfFE~~r1=)ygD(;sR@Q0NW(0a=*$pag)(3g3gW1Ej%jfs4ZdT@a!a z+TG>RTY+Cu6+n)iy#$WaLK2RrY+AX?UgOJ!ue^V&%D~Cw#pnt#7n`g#zcxi{1aRBQ#nLP6M%`e_)rcJx|rEVE+zLO#9^Nw z;_w7op6BxId)T-7D1PI5tGzsv%d{N!yCe-rpIQ}ps*yR>c&sB;#+_Z|#8;U7*$KY)579m3t< zKJ3hwz81fkn*6sNZh%FMp4?Enac!~ONunv;bz7;aSiY7-P~Liuck;S_XDN-0h5rBdbewU54+K17yE zs=U&lzRuqBjF`T}o;r4s(KO<2y5Cre$N_PQJSB4>P>AxV7vdgv5bYPyltKfvkfED- z_~wpjao3)_KabBN0=P6uy<72fgua(Pbc{Z9ewvt{-g0t(Z@KRvCd^%CwO}!HBZVxF zv!M=FHDL~dL+*}U;ME5eRp`al6B~MQ3B_%x;#;UPJo(~KFA+dJQsur4eZ~La?oaf7 zmDNig*9FU+W_>$P%%rGroafLIBti2~KQ?uZc__I9HNxR*2xJZND!+dUWeMo;?U)Ry z;*k1^Il5a(p!bwkxAcJf?sRGOGP-rC6JMI?OAEd%p)bqu1sC3}T-uB$Ug+#{8WrW7 z#YyiZm;dGeMEMs{`Q__=^evKe;t!riXQWL4u5>jgJ}3a|KI8!4VFI`mH4r%zfc0gO z^B0ukTfuq&)}#RVZ34K|M5DkPN*VwhTPl?X-LqA>NF-Kb@)PlD1jMa(9s%G^1V7;vYFI%Cy+P&?N+dH? zq0w$;1#_0GwsMx$-T(j=AEKtu-`1$SpQ!wvNKo$yys&yJz|{181H>PmzVmOWrWl0l zm~W|GgJ0DI{b|7;R4dJIEu z7}@gb!hq4>8|7XjOF}PHB@vzf0=I0T{}^8+h^PtW{u>gjbQ#(Xu8}XQ{8Z&JWU0FN z@iF0ey-x08Kep~GPnF)Wl{ab0#^XIXaY7+@5w5SiW$A5Vdlm+zd=gIGX-a21&IW1I z8rw%4X>YKp*eDf2upjxp)h*sfD<>ZP8kE9PaG|6H)&4jD<-OfM2=48sR5s1N&Ltms zmWnI!<42V*BkBIDK!qhJ4c9{>qa&}+4v$e>1nvVEY|f1~Z&Y^^;3kl<>_Cpr{9~&X z*MCej_m9&rY_;NYfRPE@4}f13LGik67?C(-YA&39pLEmb7eNTq$z$9)>bg;N*Q}g6 zk-v}f)1{S5w_*i&ocPA%Bi_I(ALifX1LR+0?m3!A09iYAluWcJnuk12v?>H%dilzw zYh#5?NJ*9!E$u1wE?tx^t;e-dC0vw~!or+@@Vy(~m&xyl3qH^+zqjD~68U`@zAu*F zoAJF#eqVy`w6#ifa23>nQ{bh9%ce`X__lP%PK02d;1;=K2SsD@SH7hlJZ=RVYW@@@ z7Vn{kOqbpQVbHz0p9a$>POoUH&`zzey8aOWL3cbhZ{5;E1jh`kDO_97S9}e&(NMNnHxXmp8BTIgqDUl}aw4kh_m)t%EVNL`d~H09 zeQm{ge={V==xTU~PCi8U+W651IeFi&em%!@_sejz#%1)77REv4udIRpI2gmgC-zYW zOb-#-<-Z6-8FJv`C=~UrR5@`OW;(vqPnrJIs%zB`0Q@sfGjX%~X{7_y*@K@2>au7Z z>cxKR6v3Wo9V&=hXFGFz4?*)Tkw@fS#i}ed_6_t6k!Z_c%T^o zOL~g$xGi0L&j#euAWIkDw}S*N@0TgA+KR8-3Z*g)GN6qCZF9Q#$2&!XMD>@c<5=s+ zPIX=EacaE8Yw!_lXY1Bs7XB{)Y{7?S;*oWj7dbamj&I`W*5Q=`z%xKqM)c^N9!d_jZ!pj?oC&J%r zA44c%7%gAb5}P6)Lz>=;#lRz*tt`!LJKFskQIct~tVcnW zLHxlG9)3)Ey6w6b*w-YY*>DRX$F>E}G(yi)3fLtd^AY(K&jhEg_*&|LpPiL1<*}Si zwxn>d;(=3(QiuNTOX6QD_J1Epbz#ix-VdZ$;dg23jxe1NJ&txtLe9yZ_{4xp?!YI^ znLbz^Wob@~L3^f(BB-gjeV0VoFA??y2z}^Q$vwSY--=Cj!(hWs?LM%OF0WjA3RcM; zeD@x~#3VH9KUAB8E{BtvC^QePT;2sROfqYGi$5dZ#|~f;0)#;NTFQgwC;nO#@Qq)V zew}Z!7l$7c1!6aGUP{8(Q6|NlDt;kV?7_waJS)W>nnbv2xRH!AZ-5?rUYZZ~L)ZkvI`4WGJ+$a}CktkBdC7;F6;6?Wo ztxYv#UYyWrIE7AijbL zMFt0_mHEgHb|2|g#uC+B$U-)H>3Xz3`Jb+*KCu%LJA$_x@iG-`g$7YLmUTt;qTy&c z6W+Olc$)SvkVu`qlM;%_BRI(S1lQyRs1o1biowZj(%S0*K$&Yz%0eO-6T;IZ3;DYn3QBHh{vR?;s$}@-I)slWKhS&qYSd==bX$w38rcQ~7U9(boCkpfpy+47a z3t}+4w^A~#B|b#PZ;3bLdUm`4;TwO1g!C0prq$EZ;av?drk;|`7KKtn@z z_j^cN5pljqq4EWA4kxI0q&nDJ${&Oq1c!`h2;p=Evak?3f)gvTDR@2`Fkj7hUghow zX?)XNK98sHqDSR#31=~`#V#d}Nvi&97Jd8iC^3^U%A{y0Zt$M1Xi;cS6wbh%rCLGBvD{=?C*ul*93Ehpmm2wBd{Ma~k+(JW_Wp;ms1YF2(of4+}D zCkRr{vpWg~RyTSBArZd}Zr!yBAwfGxq44YUxLT8vEeqW1o4n>v*g{Ru&zZI}F=BU3&l0efZ5+f&V2E?(fDgB{?!MAh~P* zlqI(TzvyyU|M~W-A*-R0ep*dI9?S5CIv#Rw9?a5(tdQf#sDH^T%Q1)NU22eH2gz|4 zG&C*@XGS1L`pI(ariD-Gz+P71yZ7Lu(t#v#!|GyU5W!0LKqVTEvS(&l>Y!}2O)x_* zCXjQ#c&1VV6Z+o8(jORAnrlNFb49_&Q=u zdL$R+EG6N*FiC)OH)gaAtSwfYAJ0+#tOYi z4SdHK2t))!`|W?sLz@b~fW6B<#`aQvRf&}y1~U}jV6zxB_yxt+Pb2-E{ctlw@x7AT zoTTJZe9cYZ&s2ODQ4)`ruTrt%_H33$N<2JEH4pj=DNFPhDj=f2KtulcUha7Wq*J0= z29!=wam6xM*4^{K%w_;-V~2jKv9p!%WxUw=T4;&56I?5|juGF@jL&bx_w4u_t9Z1- z*%vXrL=%0)R-QnGsMl${iCqw-kZK#(UqqNJC~XKy_rLGBeybYSo78X~=i&Swf5V+D zEj6SIAL1X>c@RAGC;a0$q=p}~M<7)Ltg}-Xcz=VG@ZkRlM&+0ijw~_vJJvY=%~UYX zsb678Z{rRcyriyJni>`v)PcG2q-H>Ti^!lcA~OW5VlNwKz*KYlY#*nnd7+3ZOZ~a( zcLDdyYSYRqv7&cb8Xx?KW@(HMWZBk$%2Bq(1fQy%t8IZ@;Fi0Zk9NnYGt;op6c+vD z2_AR*g)IzP-KHl$w{$-~;Z=Sb%tMXr!8CK?bWam#b+atl^%LCC0+AC4Etf+lH7S`$ z!EeWy3q^J_l84Ycq786Z4>8>Fg}YpdcKN_we5i?yI-I*iN|q%u z9+lWZ_9uI?1rso>dtZSS*GDN}p4Ia&vx{K&rT*!Bi5l(Aa{MEv7{^(wR|W%?+PN|J zlrc7i4G^391YnWjkK~Y%J@tp`Xe`aI`=|j)j*Xaj(OSD8V(HIKQP(Peic)%uKQMX( zrSanSpD++ zt@jm_v@pi=38?1OnKGWmS{%$bv;JiRx-v;sKNCX*nt>))9sxz(fsRcbqrysjLssSU ze!&Z8ynmL(cP1uz;f0q5eC4y?y|-9ReYL9mqCt@FQEkivei>v9OCD~6(2`ibBh_dNpED(So2i`A_Bv~%RI0HitcgTu!i$g8~n1l*VIg-7K#f5gL` zM!mY38|_Cw*)73Jf*VYWs?tt?O&9h86ha}#EiLcl*Hh>K@@r?1+7f(SCcn~J{?DO0 zpoI3ZdI_SE#5g@b$=Xx1!q@GXm zPhu*)cNJCHS5m72#bGb|ueX&H-z{<`#$H{k&dPc`O(-?9Y;-ik{!laUZxId6osrgQ zf67(j1_#E$5C;DiF9R_~Pw`>&PXPtj=w={mo<_}A2PjcGrt>v`s$}rTdqmumw!q>N z4;Lv_brjc%u z!r)6#^U3+HW)j=MI1Onw6OnAiTJlt@VBy5emNJy zjx6nMKoNC#FGMG;5D~|eTF#s2v8mDXV8fO^xAX{=g#{@8+kx%z6Cih=kA}XyobM>Y z-UrSxq{|;>X9aB9V_fV30>@tcPJD>kO>#~{Z0e2|E9G;XV1oP34TtYj$b((<_hnW& z40&jReUlrvU@-w__$4WcR}Iw{QJd)}$|~PN5*doLYQV@i5^6_TS4uW4L;+{587P_Li9#5Y z4q$x*P91R-4|V4tZjvvTq@>7;nQlVI6iU1WV31=sK8U;_M@obo@4+qvY(9oO#Lsm@ zmXITsVg12NVYRz>u?$-_4xwI2LS2k9v}G9mWPx6ez7(>yUWp{ZG;#xEzdGE>XhhN-;;=wiif^6giYjU?k$_98C7*~sd(Mlqs z5vH{v{ZuY98j5h4J&q6MZeBR2->?2T#3NcrYC$kv6gNlt4z5$g!OTv-5{C=2wex-) zS%YL*O_K17;`%M|=AkS^-jd+IE(hhyZHrl)%EEg8_1HqqFO%SWdnstHMJBZt0bE1? zFJgcyU90ZrNi9?6LC*PsmZ6v1bPb~fO6N}@h7=Qb9r|O%~UnN~~`70quR&9t)3q*zUDQ^ho^3BL-%>4r(w+6L!VCkEj z(xsM%PoM?dHRfN3E0c&$zEe5gmo z<-JLepz&8(h3{@vMJsvHN)&mj-0(NR9jW#v%Za8xgLQlZcRvvcaCF5Ds-tV;jB3NW z@*TD+8s;SYLA56NiDlvvJ&kI>sluHLg~S=<-IU>n0o}8epv#HW$H57lLKq0&WUhHT zaW4|?CEBSgK95n8DxZBj;syZz>+}&zo>0(8T1pfy(kRFQi>|y=iBR7teHwI;M>2=r zAm4xGaY~xOMNqd#d%=1->M9OmM6XYk-HP=owO3>QGSwejD<9%H?l7%#WmjU5+&`P0 z?gZq7{*@KbeiyB*=LBj8)y6bDOl`7(L%RV zUL;zG`nlXltenS5@}@$LEJe5QkH)Z8ghr!@ZwJZ|-Cx`?=2(Oh9H7t(0=0ZGRW(q{ z9N9t}WQqkAkA_BJC%^YX30TG#1t>LptgsV_mDh58 z@n?RLKaV6Y#<>_>s1%Pzb8PsMKP}v6y5vv#?lb8Kq8=ofp4((tPMrQIs`cM!KB;4r zLC5oGAstU*V;xT-Y0Rf8w__!Yk@f$ndlUGmYV8j^w{1Gp1#U}ADYU=FQ4osoWU1|ppojvU0j9%1RTLCdRD9x&iU@*GL;)2Qo{FF#pt6ib#0^0a z{@;`2&fHm8-uu1(@BjbZ5A;luljP*&oRgE>+{C1A0@pz{o*8UY`Gk!pMhjjBUcO|? zBKji1PoIYVpEpbChFJ=74&P{mFiEgate8`?6+a~B=mNL^=kS}xZJLI=RzWO7=b)5C z`r>~)AhBY%gc?_ryai3wFrzLq)>IqJ0ab-DlR7ZqmK;aYx!sbVsDSe}*5Z2)lbA>j zP-6oeFqP`s%JpG9Bcd<`?7siCy;Ao)BM#Rm9HBk`H|?58b^FwayL2qh&8 z*vsq0AoW-sbwF^XLG1J05+7`KfF&wx(AJYYxtpUD|3VB5QQ15ln;6c{=5d5^RyN;2 z82?2!_nb%tCYt-rvuA+kh_ubVo+BtZ#gy!QBa?U(=%=1n5k@r6>A%`{*h@`)41o~p z2pyqrKg)u{4OcIZV5suog3C*^?z}Sw%Tk-LdkD&>_^!K&BL8FfW2BhoU^oC#waGn@s=R_i z!W~x=PclD}S#tXh^?h*SnJN0ymqOr7n{IkOy%5y=H#P#v$#&@Uc`)cR%;PX3-YYJ4 zH>S^jr>MwPgo=<>jFzn+3wMTAL{2J5kplLU3OJMf4CSE0?6OjS!H;8aeCdQd&?FK=v2{K`?Q8tjo$Yc^gawyj066h-3H74efqvOGcT0+VGjT0vviuefT_zZAs%x0S|)ck%x{r7`&v|Cz!t z(UZnLRWk19Sa$REJo1oe!BOCCBDP7Gh@P`ca0{~`W_ z5^54*avhY!&JYGks=50W5s>t{Y0Hi=l)E>HfRflx5dgb|wFw=v-M2xQ{oje{pV{z; z${h0}&!pK~bT-V=auE=gLlnIgDo+lF`yS=ka2zGn)=FLLO{hXQ? z)`zN(w?GE!-QkIU!W2b*2rG&ILkh6wz(xqGVe-FhVevo97d+5hfLfCo}lBf=Y zYcv#o3M{{Pu^d%x{2i&Pl&H;>?_oj-Fg06u&7*9Q>t+_fUO!29bu{W0YjF!T2pS znwa)DQT;PD)Shp{%3>)Jyfgz;|qoY==yE(@c^o z)bTr0dK$~t6+wZ`03iU(Ejt6M?|4VRvM<@Aet4*B}!7J zV41>lZv&P;TND&cwNaqjhoigb6-#J=#$Fu%SE9e76<}8Cwrc2f(g}@`Bc*eSf4VeO zCe;w*gyWM)VV4OjP*Pyzie75_`U^w(78NbZi*nt)22%z@OWd19U@I9Be1|InLg92* zfi!ufbbdOp?5qOlSnadAORz3_sh%UqX}ogDh)l39*JCAbT-AUt6?@%bcT2_5-_sn=Aaa1 z6aV9-UES4-x-{4Y!mF8tz7fNPe?0Yb2vw-mP-xd+q=t3~B?(5*v@FQUXbdrHYhZ(E ziLt@-4%A~eq)nU>`w+=W$Y5WKbj|Tmq`u08<-lGH6gBXX6ljj6k=Qa}F0d;MK`~cO z->LaCsq%0>DEgcZ|A`RsldUy2D2L~w{oWYH!k4otnmC6J-ix1tX#A$8$lpPJxN0H< zkVp}^;f3I*bVGsVpB9BOHGL0szIEdPP1B4UV&ARvUqLLHgv=+AQe2_?aV=*%*9D_^gKNq6H5H|D>Z z>Wd;kJL_SyRC|^A8%wqPNwfEm-ZQ>u2>qH^yn@4L&Hi7g`;3x=4C1I!DrsYsk|bwc z>nKmCS&(8cntV7o#5Ua|(! z_JaP;zJA8q;F@WIa+87jkJgdx-YP53Q+6hL`zVpXiS)rCTYa5=lteJFuksLu{`;pH z_-SGhIcSAjBInS6U1rbC^KQQqB_0;I3*ZX)_9`T>D_5g_S8phyHrh!7Cp zja-A6;AfMpMGFZ4DdkzB?N&Ba}ei5P;97GMqxDLvM#Q>s<4JNt1k_jZE zGC>%)Peg3sa0baa*G7rU43#q+H`iM-fwWYWE{GOxQ(q%er1%T5H9#@LG+==DH0PX5 zelAJykmeA5{)Swr3z);` zwy-bq3;IDiH3%EcU%AO-3r#0TbhWRdqjBi$6<9xPJ109x)=}C?vV&wD5rUl*pIpE? zB7|+{cZ(xsY-&sXontB;PH`kBw&eHz|I$FtorFI7KWQKr-Xkdg9~($t&-(jBNhFU_ z5ac`m{}rS7AAJ*!BOjFV%z*G3hQN)_5rY_3)&}{9YoRc>_%Dq% z!qnpn4zta3_{=V;s@~zQPYOglC}ZrSy#}UO)loYrc3uEi^b$__GcDoeP?0fl28t3YyWaljB1L&bZ$3P$2DJ0cq_mKrS)$I2%uN7 z<{r~sV}M=1RmGY{H|IZ$0^L)EG{~-VKScrIpu8-iM}q|zlHL@7qcX5T1eDBvA_7}w z%2y&Fx#zx{1dA>K4Ypb|(D6WoU`>r8Sh~xBCPoU^&9eK0Y!lsjm52?O&y5aIB(0zX z`94wgl;o=G`G^EX(&G^cilhf35+vtc4saeEwHb}T??@3b34`vMijE8Krb(flBFc7* zHJ59cfMJLX=?}-%_Tce4q8SeC3JflI8}BFj``<^!p)%{7r8M0+PnGXnOcLpQQLTeI z-w1T0n9!PR1nP)vs4C9!s-Jo_P+2Xwr#YSpi9|JyM?zxcG}+MdM`b8A-y&haHJ+z4!M`O;GNci3h~JoXMEZ(YRu00Ar!@G41e5>T=I1lMf>fIygA?Yrhopv zXs$Xx86R8{n@V#J(0L2%|BSJ}WuW1_{x9vmL0a*;>`iyjKTAp834LZYK1wLb-HWsR zV}S9F{Vks?HP)WDbz+8HtFz~Aw(I@Y(+RtD2*{%-{&HX3+tdYi-z9ZY_qqw%3YYzIql~sa~L5JqyizNU#Wt$0GTjSysCzebxZa*jcs`-#xR? z)T8!QlFCg#*?;%jJzMST4_#*8_J>`2$L@>6mA=_CaEA1~4I$r9bK}f!Tt-CAhd3yH z3o7IlO|V4~taIQ#!God&1*hLrclFtG*W1^hhy^n~EXnihGil=tEGw0ZZJwfBc~ZK_ zCq;8HC7RB3!3{}7hPSuf+ZRm}q2jzvaQX3?up2~29QJ|p#3327VDZHqELmypZ;rvm z>;HmbXKeVVewmnS-*z0* zg;tm7{rshF9Gx+N9GR68_4H-MdGF~n+le&}cL(IS+;_=KBzJ=I#U9$-Km~yaO1;w8 z>BR!iC5wuEH!X@I;lMt#O(h;s_H(IcqsUVVxl(yN&xlU*JVvc5@w`OsEybsbdWkZS z3K1;aizK@j5{$mg-2qLBwXZTd2V#O-Fpih_%5f*=OGkmJ&!7)oN_;&?O=vSGvuhi4 zS1uxh7m#4*xJ@K&>WedlfD*YMp3)&GQ$^*2V4kq1>>Y$TksXvI*}X#`Sc54@GK`Nl z2vIZ=Z$L$+;AM7@1xH)EHx}RjBGY3;B}zUH5V%`deH2lQt1Rh*%_g|DvO}r&%C03o z+(%lR`+mJHf>(hAnXM6voFwE=Fz zDEk(O#1Afyz51w)lwupqhKTDUY_vYVZh)`HROl6zi2TSi6es2uVsysu^KMfi-S_z^ z1gp4uQ}2>K;%&L^o=)2^HX)YAk-EZe-}%=-(bW}D>vB+olCtLJ-1bF?2`WUA8;1yWAePv2PpDjU`+npW$+g zt-9+STD#*IJdNsFBQ?A_I+R3J*VMkMN}W@3?&?}aR5ygGdl-MZ9i!nj?XimA&J6hKv@fpy(`WX7I(|hnZgH(w;jP=aS~nQ5U;>}6Jp)zUHV3f zz9YneWWN`C3Yn4+c}TZ07U68+i|C}HcQq$It)zBo&TKK0=;Wtiz&J`>r8&NX!J!rl zIS_MT*ASq=_fuo6oaBg?s6|Ndm*P)B^(n5qI|@882f`3V1`S_$Qxip5YSe>iUrZ@p zpRjnjKVg)Mu~(mnsk9Y%dx`5}M%8+b7I=F+p0`nVk;2(eZ?NZmSouA)R_LWKuCF?b z$L>o`fa$)o4U&Y8D;Ah&dU*$G9*)z#IqzEH`*e9VIW(rfUNH z(+uShS1N$u3Ptd`zNkZ1imPl82`$Me5)0qM5DHP0u2{}47pD!8qF~|MrnCVeydZQ| zz=8}HS5^jpUABevS-6CZM35}sJZTW7VjL|ejHrQ-XVJvb}2aC!TMY{VR zkRAUW_#mfH9p-(|o zcmtgUe)>ekuSM1Z4;)N0iWEZUr>$+GMA2Wm>m!6wYLq_1Z4F2hH{>Ei2=#$+<^nO! z*!?q2^#sNlMY_^b|R$({?v1EVK!y~#AM*L!3d(ObIWVlWVS` zzJEv&(LCjA&RIxc6bjf6N2mI}M#1%|AaEbQ?hAQpe2dPg>^1j#I>w)9# zAJ?b<)w(+i!f*FYPOal>Fc_T2*8aixK@vHy^;@^tqq_~0d;y|^od7-uqL zcHfk#>ZU)sd#*U|bIeWQWnmV)fO^qaO)SI+I8}y-jR@5uLS`erj%083 zazqsLDZIL>d2#i7gJtuL+42!^VPiF+YQ?@gRU(*#Xs>AG>AK=+8}}j|Uss~uS*W)- zZ@cb3fgcz^h-(Gj_&l(|MIS!+o%j>tOOX|VFZKN;!j}@>;3_(sE_hmSVi>CLOfBYIqfH*tCt6-qVCp{YT@985=^Ff&@2WVG3eCt?np@GOn`2$x{?G z<{k{xpc%&zWz0Ru<5#?u9F_08D+H$D63AC8=eQhY%TP#2E< zMUa1Nx}t)DMhh}2qxYc{0HXy76y*yZd!x27Eu)47wlR?nLcPLRovGfQtz`=c$;1n~ zyiPIVnps%5#oWDb3PggIHz0Hb=`VRj1QRbqxkG1MbeW5D znskA}^gMjJg#rV<-Z8N_1uwH5gbhZQ8tQK>eoMPjT?eO5E?8_5H#QS>;E-s%T)@Rl zintnh@$uM7;*YOq2W)nEE1uAUQxfkRr0$X-zMc&Tqk|bkb~z4$7buXpVL%sda8E(h z8&a0UO&tDCh!QJd&>83D-a;2Fss%*m@O6f335qeZUo~9*GGjYcivK2r5K`DMl~fH(r5(U9m13dE&}?Zkv3f8`6!K8O>`@PO zKpc9AS{vx0u2j-FE!rEoKs(PKa`rdYkOrv^k#jnfpjsWA357GO8E$>?e@ud;=D@~O z;0-g2jedTv{&k~(|G+%pt`P97QV0=oXf9Vh-* z=^f9u@5#wBF6jOLL7$rkvSDbfn#SW-lrEQxFu~30v`*+sM&rb{GqLy~Glh86y6Y6a zw(`G5YvJUTVV+{}Q^@kgL5UFrI4`XK8}7RlvpJzqA@wB_J0CA z&=ElOBP=c<@@Gie&sdr6sz9;95{04ET_dTk6Go{j@=A*Q&WI!v0i)JGByyOHq`P;5 zn8GIF`;3rC)k3;{!T%8c2=Zm5OSp61jR-j&z3!)t z2|*S+U#QPP$Sk)ZB^&GuMh4%GjuQ8u4zY`UH-8#d6>ot&g-16PZdQ8>Qn1oWyAQU& zW5xlLg_yMz?gH!p_#K9<&89U~v-Tc!CfYqa#1@sIau0~Cui)B(GP-TG`Y`U0-j4km z#h#N=_dRN>2o}#h8`V1(xUYB-Y`3MySZiYilRu6%RB zEkidLs~*Io0E*n`8nW5MMde29H<^Vv&!+{R-wQmareXE9?zBF40pjekp#@m#sykiX zo9T193-MLU0bT7rK6wbxJajE~VI6WH3*EF`T4(o^fgv{V82bVM)rdeRII?MfGS-*rv!BH80F8L5&IFBe zG22Ar7gQnbE7?@I6*-8;&7g5>2#t@1(D>lr&qd=LV4Q(Q)i}{n^|1w>-8iIq)B3%c z1=IGQK7Ah>kZ`o0FK#rJJBaV5<&Jt#xxt*-=t`_Jbcda)L-4I;w8cHTx?eC%e zOLi=Sc>89qg4&)QdU~&!U_meP2HHUQ;bA-Wd8zGafL754c`Dw}4TP`sslf9w7QJwD zF{o8!&XSww?q@6p46K!#=l-D0b5*_U8eWjZ+Bfw_fiW00Mqm+aa^_nSb)%Y2mUt%j z9pI_52ee5P43?F6`=~|KQmn>j%IMrpC4I0ohtg9^JmN>t=m?CU!bS4e%v12|KD_2P zHo)Oh=@bg3g?uH_U(Vdk`C`5Ot>{T|0aDk zmi&0#O@2$wKrO!rz8ASGH3MVvi|{cec_}pmWAlq*b$6Qh9hYB(ySV9eiXkg`9&7p{jK=?tWJMZjfKpKzA<`zZ>QkHPqd6#cw^oNY~xf;&)1ZQHpbN&A`+aMU9-d*9=U{FG_Qcs2P}^UzF~=v1VZ7{G!IrAvFUt@{2N@gK7pg$uDZ+>|Zl5 zGruU)*{5b;)BK{Q&WmaWHp?$+=ImHAFe|?(%h{%8V0L~{wlk|{VDtQ<=FYU5fi3cj zS~!zx2DZ#EYN^kw8@izz{;U0Z=Kk&wrEfZbVv;QWW|o3Hp4K?ZWZ9B^+f0xsr=L0oTg z4(^+FBzn88KVV&dDxp56+cATDWawsOFyc^nu{RrezH+46t2e|ME&}!lV#~9y`G(>E zv8ecKDN??k|DtGE4-Bz#>oQ(E8*PEpa_Lm0qq-aHK-&v6k^X=uEDrOoA|sf ztB-4r%ji9yXU}PDqQhI1JY%r%D)(iRvE+-yYDx-=IA-h?BL`D75}SiJF`VbfHujB! zJc~?rpP)Z5+?t9CsnuCi?*sE{z%?+h`9Lsl7MLu`rPgkuwQZwN6)R@|W}i^_NB{4( z4~tj-gZ4d-hM|3zk}UoY+E;zph8LsWUXl^Mp4aq8d87=6Op-fOy&>N2o3cY}b%Fc_ zHnm-|gBBVS?Ox|0?9$(hkG5#h(z(-6I8O0TkLZaP$g~@#g!hndoDkY{Se2g5c{-u1R}l-$$Qs{Nmt?45^sn4 zIQn7tV9I?Rm_u7<`=*rS)jKX!_5y>#@hApd6}dqanYY`y1Dlm;t>j1H3S%lfR7{42 zWettmAiqeULxdHFqzyCKC*|+0!!!Xe$f^m57GUU#hv7Os7zS(gac~=n1R@iU%0vQ@ ziHBq&fyl(Ylo&ZiQnWz!uI?QjgQ68i*XS4&tuQ)7$DnA1VT+DI(E`J_dM}{e`#LdE zGSa(x2SshFCO{9hBgn9=Dkg07r)YY>(#-@S+fLE+M4#vw`hLDJOn%Mwa$OzOvZ@`4~GMlk`E+iz8#O>AJoWw@Ye--ym1ShpZLE=;Xx9>=>>LgKUzM8jqjHNSZDXf z*uC^URw;GUGVHNIa=%PKB=<`J#Lk&gq>FF1Xh{xxxbaOzVI3ew2JCjn=ZwXkQha<> z$h`fqJ-XE9x!hLZDYTs~e32TW+FP0K&q9NP$jL1B3W~F;svlIGk_K3hQNx;A@aeGlLekD zi6JM!kdnMVi}eA!q^$4v|AnD0(7(lbd(httbQew4LpY(krkK?{b{lTzYJ@B<YKDxMtxi28$n7Q{M61c04FQWb^=p} z9Q5lpz+J_jT|oiGem?4+VBb4`z@Ta>E>U(*k*)GG;>&b8E`Mblm{WZ`ZsKLDXfCKf zymi&H{(0)1wg*@(|W8>H#i8E+DF7q!}9g%y>_+u zi)ku-x8&YHiPi63XL@rGjX>$f9x7Xi_ipPbkSXO;?)0I$9V@qh|q7I z{$>wAe3sP;O7GtTri3?&)*p*~j+`9oAJMumY5a`Ry6~KMH6U{q`>xKh2eR)h@fMyt zyR%H>D)yD+j1`hWB%u0Y&kh>Yqf{?M%`g+X`w|F)xBtn4J{Z0A>5m}f&&3}x7LBTH zji2=YPW*3%reBT!58{7N`b_T=mH*TMZxn@}2LDdI=YmthY16B(6`VS&yFla%0d@3oHXYrOvF5xYcT+&8{J!U)KR0!QU2WTmH z!V4wI6JDrt`;-$(R1lFSDN(|s96#7QAuYnr+d{3PYZZhMN~hceQax0yX+N8(Ss87hvd=s@q%Uav z=zt!?6=2OgC}P3|!xCTThO$D?8F1FFl&V0FU zAhgCuc)1D>9XWJyh*6^H5%5Sdryl`oC_SV&wA(4-44}aLR;*u{?6)1K7+^iU*z=dE zBq&db?>@WTHxb_3A3_?ihBUS$?p??7z&{0rqsFv>T zg)F31LY-(6U(jKzrFbFRVrYkKiYFO+ogHF>i7D@d*1KN(plnILnCs#Tj9ppn$R8^lHY#i}NY2m0 z2|u!q3=+y-sSFavD$$v8C?jim20xN!)nH5EN*c#V6Tq5fYIZHGW$8&dUPnxbGElp} z4Uym*0`aZNfh1xAP~v%Cjsm{^5aL5P7Ya5V?>X@DYw4!KMQ9mh<`|Yo7uUjz5x&fO z#(Fu_l&lYJ(1rIbykjvEqjh2=M(ePK56?W%I$?j*NNhKc#CCGvJ@G<;X%e2dOLt|X zTpZwp6`3isuy_k@hRV+szL6d6ScdF~J)PL}Xh^D~Nk8v^jst*R-_4u>?J!9>l6Ch7 zXq`ZYSnJhm5W?65b6rB_`bwB<>^>~^>c!q`VW_VrYn`0a&oiJS#QQyn_g^b@_e6}) zm-`SUsPRuh8HPUyLk4kD1BRm&Y6Qb*-O27Ng6Lv#5&U-3MX-M2GxVKSNMXT%rcb9c z{3uH}KF#pzCrJCU7yGJ!Es*L{1sQ}76`Cbize^!6XbkC*XpEsqfz}9B@)j;SUFRuW zRDB%hfPD&5LI~ujkVHMqx^D!YUm{nbHSfu#PHekZ@)U+XpU{_xvLSj9!9W&&z!3?_ z;uu{&Ns8*Au>x0$Y^g`RRSiY%gR6qcJuv2+&Sq+`fv%CZ>#UW-zFoxHZal|YM#>Cf@#Uti{V2q`v%z~Jy z!5C{znYH&eeL8)VAB;_?DNCSOS{Vq&Cf1ZCQtaPCVv}mhk|>t;x(9KSYs!)-woyoI zgPO7i6ibIn1aTYIlr^N-10k_`O_@%yTSH<~YRXb5mX6sDmXKOgmP)ZpLSh@$lr^H* zIU%uWHDzfOJ1HbKy{0UkVs8zJZCq2V34uUfmuZ;@@Cm>D^#!e3Id8F6}-xr&i-sBgCdq zY?6q@yLF0`yPTl3;%TK|O9cxQyjVday@d*63$S>wT|+!ZdU*beRC+fBbHc(GsIXDq zZM%ik#sAFL6Nf!|$)jr!?hGkT10M;T-WejgP+Q@YWf(+lfjv^QheZjIr8 zuX!!m(ipy|xppchduB`aWNiBB7Hnm#{(B4dLu~d=8}r09`KATi7?=HkjeQfBv8@Gr zoVPyMk{#vzRCD$le*q)&Vr$xx=Imo@+P-Y|o0b2wnKnOx@66I3N=$n?3m4P#N1AEh zC8j>vjIB<}oZE~YNJ`$@l(~}mflTem6$&bP8Zw3NdZ zwj?GQd%6$Cq&{n5t79`<7WR8=@{{qbI_}Ll%CoSo){J#wtV_!48mrd$3!3(g#=SAx zK@GAX3;wt88fbAn`1P8~d3xa(Z8$?OU({fKJX@kQdOe=Kr}6Dv`%%mJma|7vz zE!yiAh@5Kw!c;AxO~S*P)~PZWw?)(5&^onnCGp`2Clf7uwe$}X`6(@BK>~j^Ci6`T z|1u`?5i57aa-Y@mY;5kAR=y)PalVy*8OQ&!SiXx(e8|do#dEjS@~V~p%WC=A%4-uW zza{W@5-ooutU=u?k}_7NuuqfHUrb@YB(;A#h3!e^^HbP&$zbdQ4KiL%VXrhuUzox+ zG)R9Wg)M5xA4*|QHoOwoH8s2p*vs|H5Pe+F#P3&AY+t2Vwxu+p9@VDAOo11Qhx$tP z*YY@RQ5<_1^8Ij3>bt$zwAk!v7qca?=_h*$4e3Q1GUsBpJC5(`1>Nufvp&A%sUB>f zC38_H?zQsob1g4hbHDDyzqe*C?Z~GmblrOae>Z{G8qK)yA@-1^2bJtZs2LV~@1te{`^X z*^+PTW!ckmB4gWad}lAqd#&=ou&J%{K*Q?RnW*OT)_JJr!8Vtnz)#!p{p~DE+w)`X zEibi)max4Y_|F|IujcY^axJGX;EOw2KJ3VkcC@VS#J6{{{MCuizQ{7Ya{*%;I%iMo z!47mzKYbB9-T8tUJ=n=E{P0C=+J$-8Mt5QImlv^(7xrN6j|;QcUBn*in*R1h?A5O6 z?_R_fbmPw>rW^3KcT1jk5j)uJGGu?D`(;S{v3n+de|pitBRwqd^x(&OSl0C9@AtB- z@A;?DgrL}%JW;k3c8+g6$YkmhnJ5t7wfa7#p>W+IY5C zYyEUQdpTwZ%*FgzULDV#k1cy5o;@7Lr^T~{aTS=#@H`}L$!T z?JPUvvi7&xooC|f0oN;TLv-qg(dOL_I$II`+8cQNZ=3k zv^iX3)cC=+d|Gnb?Kym9GXK7n<*#J^O)Jau4YIbk;qx1| zey=sJ))VKn|x+QmT4bW~RV^}6;r14psN|Oxm!XnFt@+wEmYOzv zV;jqhZTQD+EZ!XcagOEH9KJEfaw3O&+gf(Eo-hFq+QnHh+DVPUbU0dKe0@+$cs)~Fq`eO7_em`O zv9b1CT+?G2@EFp6%3xo{>4!7e2A(~q3ERWeZ_J)fE?^h}ve!3es~Ye>(%HO*-Tmq83;l1NboOM5by~XiMG8NWrcF!bhtk;3 zshMx5vDuCCK*y#=c_?OjS|0K)NVo1w*Vd-=iBjKtr}c%h=bD?bLQ4{?*vD9~!V7vHX(; z+6O#)hR%NHxyKu_jq%pC4cUVhj{C_LSWpOCXifa00dps0<8Je%2?KUDV6P_f4;!!* ziEi+Ab#f+heV&|$T(u4IkUG5~U)oTc+3+Rg#Xqtw=j~%G)wIVnHjc4zi3`%%#E0=3 z$QR#eb2?iQpS&zxJ7(qc8)@$(@Y;0ka6`MM_BoW^`p6YZPE{F5fyx(xnB6YbrMg@G1Po0cbNixSvz#2wf4kDk)lt1*dt z09MBkU+UuYqrhL!_5Dw1>@S|Y5=n2yr~DJ(RJ?va!0VRelTT{+;yY~#z)>rIaIpqI z^(1otl%zlJ(%4JM$y<>7XmZ-?0B<$W9|icaLGm&e&RRHy27`~(ih|R zlUYLG!;~4C*Kd!f6Y$W1?gGc90zS{?Dyu$+ox;%Xp7{xr=#I5)9OLY>o$IL zn#Nb!UPTrDR{Uec&1{o-|9$+`HvIj&EyvoVeseFMnS*-X%+a5}m;aKJycsndXv<#! znA0xp%X@fTyR>f|{BS$|q&7 zm{mj2v0 zzV5QL?PK}uzL`75@)dpg_oFP|^-Z34yJdR6?9I3HXZodYxSg-+m$vqHexhIUo(jIE zf7+|~JAi*Rfv+Dxe$20h$^P;Dha$dsJpZ`}Lc(U-`TB8|7woN1Rr2a$zH=O(Rg9DS zPZbY)cQXI_a(%^E{@|e2C-30(gZMYM^Zg~mp1YgBSE@gLJO86};scZUvsdy(xAPaT zd>bwF|D8{}&ocKaz7|3@ZAj+Nqxj(=$=-kPSFTPwGKQbHI&Ifz{@OLk{~XOKtl8Oi^7Q`*D$JCtu7&R-b1 z82BF!%iKSVpB&4d9B0{A$&Xc9W;*$cPRkA_|G{bb;VwS?Zp&|X^P0()Q}^%(r&w0r z#}`i3EXVHSPXpW!5nKWKzJ~^EuF)*B-5TEtc)we_gt3p@TH*oN(KR!m{V&Z45*?UR)pRL%`Wb4va+FQv@R<>fF zHLxygrOj`cxYfpH=!x&!*xZ!FcWvx=O2#8LwmdcASWEUoBfhpJTh?eP%Gr^Y{Gp9a zYn(l+C0o*X=xG~!EhBMX3$`J%yRRjCwJAT)f~{zJ8)J_(OJ3cA&ClXfTd+l0KOn28 zdGev=Y<}~0-!^CKnx}o;oPE~ZicGtjd*DUvZ2a6BZwC}Rn?gUuwmMYEVjR){$v(=R8O9r z#e6AzcQf`t$_Ze48)ZL{&7N(PvZ5K=-Kh0%S?rZGezYlDp0*CDzocjXmdWNe9`JHg z_G#m^Uou%uM&bvV?Bk5K^O~}!oA6IE+0rIh3&3-FVJj_z4P`=;@|IUCH_VBN`X z>A=`bjW5%**@$G%iJ!9Q(+kDgz%V5~vYaN2HA%XFwFd6#h0V3}Ouj(Vdhl9J8_Z{E z+E_kS3*i5E(x23{OZg+3c0Ipe)12I6Dj#bhS^OPM%ja)tS{Z*$(<=G%ng->4Du5;0 zpKx{J3XR=7NeBq|5gu;9Fd`1MV(2S}Q!Du1RKv0Wtm2*+{%WlDUCcEBj-Ot5sn&zd z1(RSMcE)P2YJ6L)_Nm6-kJWzD`1)9Fehgm~t1XHtg;5pRy|Mhc*dSjTYe{T5@-Nr; z#vq}B-#z&t1CP!&8*#gBboua+<(1-eW*Nb3bco=X@gpWwR+f)&*l=T^gQ7;;7-Fj& zz^C)h*ofid$0Nl#zG8UPV#bWW6L%Djw3U`u-j2HsofSA5z8ocl)XSPUb zaL0(z;W(l;TfRZ*$np_mhgX(Yft>P56`-(uq>T+9F=B#qyu&7otDsvJZDXhvf(90B zgSisNXq?eLdU)l?5#n?=Q(k6Vv1nYpD6V6yq9)U&jUtn|u6!F4H`m(EiqfUag(E8O zs&GuWP;mOf5p>;SXF+V25fv5en(=`Kjh`^Svphau)+LZwW%;P`%5og#qYHVd55#S@-EvrCk~>!wS4RZQ0$msqt=eY*>vTVqPa%@jV!M!uN;G(x?3>= zN7j!YHRd*FrMz=e)-0)rk|JvvJ^apc^v3WJjQlt&E@=1uM~AA?QLDhF+g2gi5L%&=VKomS8Vi&GGKo=W zEg>c@->{03G^zGv(WpvT-SRPa!m7bw4j0BaNS&xZKp6;v2|mx>H^`Ayp1H>(@Xpf9 zg6V9+t)v_vILr=p$W``fQs9^3HoRTD8% znM_A0rv&TG8JX;DMZeNvkYLoJTFRgz0Yk5#4%$T8LmPtuj zKr2)X{^H*McG49#=w?Gh^QfmW(71=Q)TNnp?_pCRb=W-B6SC(+ZZ53 z8ph55=f_gTtRJ}wgXP`DxY1Y;B5eMx6C9(lw^$rdJRFt?lsLwWm&Q?)L1S>l&=Xc1 zdS*PvaVRH74zqDoB`|b7$pGj=-+|cCD0~b0m}9DL!L>rS zNanz0bCQ6bf!pU~+}Ws5?T|b?GbhZxouGr+CXRum2PqDCl!gupXHFU%C4M8zVabML zyehwQ%mimuq-0CS)+xqj>R@12m5(R;r+j89b?9odQb?PtY>VOCpsP(jo3w;dT)@|W zzkrg?Br_NfbDsD3zFU2Gix#v&M1VPBivrs})8a0Or4n|5%1VcxXosx7bA42*f0d@ox zD5QxrE>T1jH3UneP9wtF6{bvzD9Sv}CTTdI48c<5k?;RK6D`Xl2GYUu#&Pq;A@s)4 z^q2z5E{>w-Hpy~EnKAScr-z$NmaO2`^4s7FNRct*hrA)B7*d5q2{?sYoXs8VNQK{D zopL);R1waRpx*%A8i#ZnM|T?sdK<@liwX=ff)$C*2@ED;9u;jsFfKkbu0t~}NmDnc zvGDYOY|%w$EF?s;F?Fq&aoL!01sU!TI}`3m<4z^xrX}P4C39Y|+c|2~m=R-Ob1-T; zFt7%zo+yUceA|Ta7(Oxdq93P)x1!f+Q*i~LX*i3xm^fx%!pe?jU9d)oH}PY8#R1vRXMw&`<>%1 zE*mFGEEJ(`-O9$5jj415q8uYHz5hjjc6eWs?$a6Xow&G|>tcMy2$=!0iGcnv^LME9&3{|KC8LnZJuw`mjQo9^U>#Dt#(m=g{+5v(Wr0T~ztQWx55Q)SAm5rcMj$ zI$owPw}hsT?I!adb;|Vc`cJC#l!-EZPf}?996CN2&(Y~Jee&N!)3>VhiqB+vGptaX z>6>-2%wM}*roRO_G^c;2(gz=s>GSl^^fkRz{lCj}Y9{1EM#?Dhci3?mm=9p?-&uJI z^@L1+4MB7LFRJvqKVS- zkzT9PZD%NdnMz-YbTfZ;srFTzlo>HTh3H>gzHG`~m5wc1A^b^K>9)UQex>FS?eDA7 zvm{zX`Y@HQ_A5uEPgUuQk>6||a*X;<$%4bv2dMNqm0m1Mjwn9`rP33gf27L4Or<{u z9CQ6Hl|D>~{MTm@j(57tM9x&d)Wv7WzqPqc{}urJ ziO65qQbx6u<7-4Z%aKtFQ9quD^u_IDlwBlh5$S4pW7^$=ORi$tq!i0S)WlL!k}cL+ zU}F;~%fbI0bPE+8@)PK>9^5LzrwbaU%!ujVAbxPQWp=!e&xxChmf{^O{lTN%ElSml z@@OAF)p?w*BEb`oSfiZFL(8H1m*D@7RT7{440^0DY&&cHM6(P3_r5LjDf`EmQ4bY@ zhwxs+|IG@o4MoxuhDUUF0zbAYJR0xlv0fWSM`5*SKjGg5oH}*SdI0~*Gvi}l23xjH z(mPy~j`9bF;r9!cPg}f?Dtz)^=&`mB!!M~8eM0mc2L9p=vV8Jq=&_Cn!yi~3HwR@A z-?Jf8Dep>r@^9#gpy!I}_}PJ8m-((nzU#KgeB}3te0##`36mG1Z#MGnJt*@%EweG} zo=-#j*+kzO;14?_@yS1;$NEVaerc#YQ9ZvR-{^XoFVHXH^{9Rn@{h8wJ1p_ZkD|x= zMOZyy?V)@(Azxj*B%k~%daOTw9@?HL`Q{5dRa=%s3$!ci zi_m!h2`rn z^_SY=0)AJ8PyVHN47!vZAv`L#x586?X0W{~8{vHhJe$H({$^CXlfcVVcxSV_Ih1%F zcqPC)^q6e7P0pGi)(0B^6tBY%`0>z`kR_Q$}`{vf`_LB~cbI>=9@$66nj&t!Ld z0Dq~%C%=^*>xW_ZrhZ5U{z`?f{Me{`qjHxiJY_bc;@xDbU-`8Wc+{?4z+0@!TTDda zv0fBLr>R}Zu<nei6^zxPwJd^Jr8(j6ur)Xpuyw?8fM$&VI~ zLAUB>qPqk>-{*e823J5k|XBax(z zbccJt^uU{H!Ij%!8DaVJzJ(9 z%aU-Sg8MN4qkR8Ta04KIf2xtjh5>#CNcgWRcsU@Y_farS!9P=F z{5}O=NRi=13f`vRWeR?&Yiu~mc~8OlfK+arf&&`La7P6*6#S!sjIUR)oq|mid?i`c ztKb|!YUdR4UFHn1K0lWv{s{lU&ECReA@D$cBDEt8+rN044@h%mAkAl4bM2kA(?}-wjCNIzXalB_PrBI$%e{KLtqiEC3{W?pJUs z;N3{S3y|n>022N-v@X* z(!T`Uitu}Y)DN!!ehK&t-~^;U4mcLD9FXX}5s>J;TEPN9>W3aG+*yU2t8gmdKBS+( z5+dOp2BiG^0ja+>tN7I_ez^)i2k1lkA{Cyi(%mXtp~AN)*bb27tA&CY3N} zJO!r!QaQsFEL1R8!8KSXru@qld{MzA3i<#k{~ZcmqhOwb*?^QkUBP4p;}rbiFPVRv zf^R7Jh=P*=NnY*%BzgGJZS65iE-glAXj z7b(~ha1Y{t{e=npx(@JSgr5PVesKd*Im1+Xcfjiq-%_PF0;GOR0;K*t_Os0Q4IssT z1=tnw&jC(EIr9ODKhqT)4M^n=2PFEgQSluCi7p06cK^elBweop5?$4RHvv|u@F+m4 z?-ms<1*CrL14!lf0Hk`e6pUB!r=v1{mx7Ne=mDhqZw93LfBq3u3BWo)s`qZdHGty* zsot(C{nQbeJ|7TMpvE4+Pk=WX5Krf;6|@3UIVXOQ?Kuoc&0J|c- z29Wsp55SKQE(0Vwy8wO+_}O7e*JeN}uLh9lz7CM;YoyZSRr=<7nf@>!rMCtoy3+xP z?mNF{>}J3MK%zfa!Rda<*NK2s|2ROZ?3SXjNGr(Hl{d7Q_}KxF`1r=RvVUp-sa^L1QhWXZNO=7K2~Puj81UdX(q3(cGeZ5i8IbzX z2Y4~yoq%4z+W=<*-T)W}ydf%nfQr9Z#peQ&-2J{+%3TFu9l{p_ihfg2SMVT+BD&V# z57AW&Nb=VVkmy^6!Hwv822kh)An_v`knm3+K;f70hr$(r)c>Oa-GIBn)RzD^0utSe z04aSQAf*ojd=M}Wkn%tKm85erAkj4tkm{}dlF`%oD!}UjKibLIt$+^!QoC*hB>Ycz zNc^9_kbHf9yQFUh;5|sc2N0xpb^=xdmI2NIv;z`d9RUfiB_QEt0Tv)Py@LU%eV=^B*tLKg0A~Qs0wnx$K%(=& zrxJb%NbQ}j;5Y?uRDHhRNj0Arz__y_QZiAd-^38VFNoUkf4J>1%=Xw^Xnm$oPtY$ja<2 zAj4$>D}Y~gY5E;t2k2LYzFY7zAmz;mQqFjxGlBH~`3CL&HjwW8tT5%b04cxcDeeAC zAmcv|NcU{PKf&mf|16N*3!A?2r2K6TxBPK3MSMhjsWr2zCkHD|n4yEs*h-2t5u+y`K4vZkK)mWIa9s zh^)*$0?2sZSgq^jeZcdwX<>3y^xR08;N+z%jsL;8Ngd zAoV>B7y*5(@DCCG{=)Ao{Lk*w{yzjVd>4>*|BcXhiTg@m1pI4-e}(Wb5q_=k=Lr8C zp-%!by~hAcfN!qSdfx%0-b;au_Z%SOoh0;lAk#4#7y*B{@Q)JyA;KRh{4ej-{yzp% z-Wx#L?Ij@NUnh7ckoF4#X}^*9E&6!`5uI^W&}GTaM-YXq+bGW={H!~f%MT`txG z>3@~r4T9$Z=|3At|4-bd%hf|brthafGG6-d1c1cwQJc8Aux8%VvU z1F7c_Aobh_NV(s1YPp{QNymkLSFl_7>x6y)$oMY?GX8QP<&6i@PB}p8c^t4W@Ic^8 z;Q!%vt>NNsLyB`ijRn30p7V!sE{($s1O!yma*8JZ9$-fHtbKrO& z<(vq-3HU1hoDaMRNI5k?`X2|J3>*wZmCAl?1+EVTE&($9Y~TaHmw%z@JAusKm|(Nu zcp&YwACUQb^Nl*4vw)OyIbVX`J!3%1xfn=)wLtm{0O@ZEkp7MbLUeY2AhIC)g=_Wv z`U&7$D9?`qnXX#|uM|8NNVz#crfc&xTK`Lcls6AZ`|Kn1$1yE`C6IcZ0;C>8fG>gG zANV5hj;pntM&Jve&k-yXJW22X!QD~q@9%=Y6RZMKzXBlTzHpVc=SCpy&?a<~(2E35 z5dILM-$P@~e0dB=z3YL@mntCToFMN1Sf<@?0Ww`NAk#G#$aI`2c(`C+!4H;d_w9mF zAoZ>UQt!{M)bYiEjPF-K>azq$eMXA=DdPTFSi3(7r2AOGu6C{0!$9ga1IYZH3}k#o z!2Xbb5|HtJ(x$^-31oVjfee=kWVoIy^!V=2f^P`ED!3U4uh}aFmjj;%9R$)I| zxeoU!5LGh!??Bq)&w_sx{x+eX73>1O4gXI7-vq7z(msoUOvm{`=KvZ12bXF7AAzLr z6FLfHxOO1*-PWSrF9kAP3xMwcOM%RvK0p-F>~~-k6qW2(fYkT5K=QkU|A_GK2Ihd@ z1iT3G90g?j{ejiMS1-}@Qo-28T8}Bfk#Ij1=mRcj##N`lbAXJm5cn44eF&k{t4;7i zApM;Jr2Fp0+PANPm-n^mhvI zH=qv!ZUNmNh%P7l?U0V=bs+8c9FX~Or|_>3`g|bcnJWBAz$u_d0vX@oK!)!Jq`%LC zx_tBinf|{Bz9IaVg?>(OBk*m6TPNV18a*0%-t4(Pc+=1Ue3O=0#vK$e$p8nynP0m*+KNd6nbe*wtyatjbyIQ}dk z<(vRyd`AOmmxF+`>$gAE_zsZqZU)l-#X!m}1>OieNaz7T+V8st?Y{mAj7`~q@H&Ispk#ApMx#~GW_vC=G)F%U7lYM+z4bjd|dD$ z;a34ifqyoT;m#DCD0mc*dL95|_;(g*`nN#Z<7wavzU7NoP6Uk?pH({lxIpLotw5Ha zYk^GvGNI1}vYed`d=c13_@B<#{yqRM1%D0jeBgaT-zx6c0awwgEF_8M^11WD`Amx8u zrRfiW{UQH7p&tRV9EXAQw^;Z!K>C{vq#maMsmIQ_T90Re_+>vTxB&Pj=;=Vpn*w|u z^f#3n|0K8u$nyUXa0c)fK*nHX!X92GV~s@Ooe!koqkUJWu#%2|Y>hC&C{kbhhBJ zK$hRbfv*Aw0~ycfvvq#G3}k+_0GVI)z&`=c17Zr4Jw^CMKbU5A11gj@NM|#y^56g>G@jTJHU59uLDx= z`9SJ@4v=!E3hfhm43PQ`08-!Y&eQt73Z%YGKFq%Jy9LPn9Vz@% z1rGq83H}%7Xn!vODW_X-gWy$yi-7F!&jnI$F>nL$B;XS8-9U!_YNmF71xWfi!H0!^ zwcrK7XAo|xxK9$CAeaqgJc9+}XKQ*jkm+6lr2IO;`GT_rX9!Lad=Zs~;r<86a=skM z@XG}2gg*kv{2m5mz6=#SQ22v{W+kNir_*(Q{~gG1JAmZ>LGT6PZxZ@R!PUaQN9fxH zZxDV&=qm&l3xAQ&)q>{>f2z=v1t$Pm4#$eSSNNw09xLugihHK;_YveF5T@tzX*xY0 z3H}X8{+mMoPVjl*KP~hVf)4|!#|j|J+s}Z^*MQ)7Aj`q2LVsJK-FE<)U#|g~Uuy(c z0$GnP2eKZW1Y|w>a;hGOtOJsM5XgMEN9fIGY5yI-8{s|;NPiQ7^j84P0nJ6!i=fXx z%k_Ar26!F#xxfyf2gvyQ0vZ4PNEGF)1X9k8KqMtQD*VfY-vG=3e+-cFPX#jkt5bCN zEkK6f0A%<_g@3Q`Zvry>93aE*1AGzmV`VPa!@%2trvaA%yWw60ycKjNuo?7sr8*t& z0a*7{@$3R z`OgAL&jM24d|(IgL?G>$A^b-%=%5|%2ht9=0-4?_Ak&)-q?`kR&jWW_x*vQKNdHd) z>3*|d8xX2ymjiDCo&;PD{KG`;?`a_ULxFDs2LsTw#7c0K|~JG+7O|A|lg`wNi%wgKsH9gzNR20jA%3gA}I zxZ_0Ge}Aobi=u#fP+DAD|#g6{!YA9ny5?seh6B)CQRPYV5* z-~&L0yI0&-3japIYlR;c`ZB?4AoZ;PGQYwMn`><|6d0O`IGNcZXD z?i2UXK=$)T3;#gj?<@4K3A)_80%W<_0;K<61D68t05YDNgaf%GyvEJ z{1%0MU*JE1qkw+}(!CqVa`J#+RNSusqHD;W4`le+K&F2xko6>A`1=D@Jc8dAYWnv; zhI?9Y9gy){2W0qKAj{1uK!!g~a33JuKRI2yZvnmvdLxkWw+nr_(1k#T9|>eRI2lO0 z94B~~@b?p%-^`)=mp{?v;3FWz{S`?5+k&qMf2+_N1s?;x4gbFaGTa@)zgh4aAoaZh zNPQcC?*RQkmWO|i*ZKDsAme*W=xstj4P-uc0GW>w;47dTfs{KRNV(I1l$#Bt+~1AU za=U?l0{sZ^7T`U?zX{0rqCm<&2T1vofs{W2$o$wBcq#B7V>Nvjko2WOPZK&v=r4Y( z^Yu0${oN?I1cfE$1(0+)b) z1d#Fe2h#n6d~KgU0a=dj1k(K);a@ELBH@2EM*Hgk(%)r3=4%j0d({e70^bJzY;i9W z{uzQl7JiP=2xO=pY?=v9d`%v(&!hb{P*93nHq&$3xOzF8!_>TzQ zFZ@oSZxZYf{*^*sF1Q#-d1nD>uaUsFVAnxF+Vc%GUT*@Q1(N?Xko9;akp81U`kN#; z63Bf25{*nV{J#gJ`!*o+?NK1}?M~re4rF<50#e>gAj`EE$a4LMk-A(z52Ssb5&8xo z{mllx1RMus_@To8E?0-Y8_4$ZBH;PJ2}0)qDQ|?(zw_c9IJiFzB>zz$!`&}!CG zryr2=ZWy6)CXngy0~u}{P^AONaNlI>a6Lf$vVSkw3cL&SOyJ$XV}N%8Klzc)pErT` zfL6W1MU{^1zY z@DCOG0KvY(-!)A8|EJ(zfvo>;04eWf;Xfz%l<*%F`a!`vfDCsl@J--VK;};yka}MR zq}~gG%%3tK^QRw>_Wb;Kt;a_|((elW8j$(%YasLEULft$0c7|yfb^daWIs0ycnk1g z;SU7%hdp*3r{%l?q@1ll%2^GhomT>%2QC)+L?FxWN5^XZW+46j5=j1)LeCYtNazAV zuizm-%8hw+xRZdi%K#wxHy@+Z5d~820YZOsw4SFu1|BL{(%-p2`uj2PQP9T$p9Osgknw$RsJ7FiK*sj~knM82;5mY01+xS{ zJ4E|?56EyUfo}q%K-#xm-0K9V3!Wk96&xanZ_uf5mjl;BP8sk<;HL+Ub)EO!s792k>+t?RJXbZnviY3}pWN0Z9KZ3;%xLb)c^i{^`R1>HzKkE#O)7 z51a~I2c-W_abF>Lk?>~#8Gnx8{(^7qujTzta6OQ6ZWsDzK$e?&;m-uJ+>8UV+?)cW z{zC;16&x)1`F>j7b3oeRDc}ph`vk8LyZ}f!KN31VSmy)p_hCM57ko+h&j|gL;N!x7 zQ0RLEZwIp6T?=Hq7YkMk&ID4gQlXCkG9N$OSGO-~fnz}54rIUdQy|ON*+NeOQomxM z4;A;X_tE}81k(LIp|=5-Qy!4|TqQUM$Z~j&&_zJzZyu2Od$RC%XK4Li1HK6ULLkfi zkATdlBZ17nen95adxLa7Ed|p5RN(nQ7qBn%`sYAhULORKe;aTq@H!y%ZUg3kJ_~pe z-qTOp;X1)f1?K{3 zkMn@cpEHF&1jzjPCzNM;c$XIQ=T0E?4g#4!vxPnjh^P*oB=it*A0YIuKHB}CK!)E0 zq#b@E^j+e9Ban8O2c#WN1~OfE4d1m22p##$ZowbsZyu2P&qKYfb-Bvs0PBF`kT0b3 zfuzreok-6Fk{*Wik@f&d>Vd7m8X(G)>!-j5AmuCs;`x9%K+2g3%m$VN z3xF0dA6N(+0mQTG$G{xmSm1Er1;8v|5SR(1oD5(H2vGD6lusmiV3%O0V5{I9!9qcg zpi6KU%4a`>-wAvJa(4igJi#^MzFOQng}*}h9l~!FezWi!gg;04GlgF+{6gX93qMEr z9^q#RKU4TF;qO5HEByr50IC0KAocGQ{tDrD2)|YM&BAXG{v6>K3g(M@j<|b-pC$ZE z;k$&t1C>VUBiJd(`b@n#fYhs1_|3v^5dIwD&lG;S@C$|S5p)UefKU~mV5eZKU^5W^ z1~%Xi)6{8r&N3%^15bA&%r_~pVc6n?(&bA;~^ewOevh3^tR+byL(Q0Wg;`U`)X@VkV+ zM)<3R-zoeR!tW4%tMHqJ-yr-s!k;Ppa^V*WKVSGc!uJS2OZb_>cL{$N>bcS%sPqTI zY2bF@Zxeo(@Ye``weUNI-zqpqa3+v)%Yl?zD147#7Le|2cjyjK@nSehy6kG)|B{75 zx#M_^(++|sC}!@wTlp<{t0aLYsTL zPZZkR(;b%h%)Q)8BtCNw_cNq%rG>dK^(b*~&DQ$8EBbT_eWTFkp6$s(n|rlil=#g( z+HFFcd$T7CZSKi#6#dM-*bhtm<{oT(3qaY++z70ybI*0Y z(B|IiCnSDzPxYfBFY{|HuR+|+J=JXz-rVbag3$ec+(!jiCH~F5&9{p_!^FKp=n|oy zl<@O}ZVUw`lACKl8g_)4#co`4y4p`cnJff%adyAFAn}94_)$LGe2T<7v7#Nc?^K zY1-WX9b)?6ZtfdDM(8e)7clPMYI)B|d>)}A;%@Hy9%=lup}_BLGz^r#6N3}}P7>PO zU!RZpDc#L||4YT)gLLq>P4qSQMHed?V@V9|_$x*{97CG>-dCvnz&lkZX!qY6TJ*^{ zQ2RIc<4-?E(>uS={_j@$V9flwreSU+UsIT4qCI1L=KlXSvBw=(B^*cK0=%O z!0$Kq`%X&?2;D07?2+`E`>zi@jParT;C>?h-edU$ZSJR^Amzt=FJQjpzqucLqbZNC z>G%eSea-#RqaaqvllUuy-tmq0f3wi$dk>S8K4`xywfprLc+ws_uh8^Sl0WAD|NAg* zr+jnY^i5xjBh}z>k@JQh~*V@t9DzFp{h#Qj{MUl+PmXdmN)|7(SQlkx|m zz6pJ$(!a~KO7zK5`gOTx3VouqcRPgM#`-&`)wNUT>oK3F{W_&Sbs|st;J^9B@ZhBH zhkqyCAN`Ay-k9Ql;IYZ>e@hA9f%H1V&qw)k(l_p(Ouvo#;B{@)Z3Br0D-jiu;fh zdkjgDpPgdg&rsi-@m+`V@1*n5e>mw6Qsi$+p$|^6{|QGYhv)jGQ=UJ?J`bnF_cN4d zr~mU(+7x9 zFNJPSvB!>-@T*ejr&G#1?{am@zbJ)%Iwkx=DdAsE@y|P4o$?-qS)KIfDekwY$QyHf zvj4)A@^xrRem{{Co^d(jTb2^v_LTIv0=3n(RSipAfxx*_^3?b4a!0989_nv#2K2WO z1L{MRK7KlEBtDSl=O@QT72|thKA&&O$Y6b)H)jIBV(OpgYYzI#r&Qzw@+Z^;iy9j% zm-tIB$juuKk8{f}DAy733uGfJf{pm-+JsQeB7A;+QIii&z8U3#l9~nhgsi`=CK#x0 zcCyaEXJr>DULa7_Tp0*1Y^=XXdnhXj6i=HOsH+AYIJY8LfDfD1@+-8}i&er9-)Q}j zx;*vKGJk1JT^=-ontS#z%Hd(&qH^VNUZut|=jV zEzOzfPx=CzcN9PKHos<3b)ca#xUk8HNj2^0V11w|*eK3S*3{~z(4wG!N<|-G6^a{}7FfkoAI3xW&v z7w%F7z|UfQ9j?BSa+v%d7@nygh3u%hu*iJaZ&Xcf!y*x{)$ucuV!dROgn3g8Vd~`pTYnH1c~<;Nt2=&#q+2*m$9Akkf4mR`IJLb%W>bj<;MeKzttRmfM`FyqI3(F@j)-t4R%5^rJ{wfCc z;-jC90epMCCfMY!La$g6C`f#_lnmeK$_B`v=PRF#mn^AQrIyJ;I~So;E9~|1QFY3- z4N3^Q(ehy9#OgZ#WAfS`~6$6WRlOk$n*;Hh40GW;03|cBNM0!8&(} zZv0C3Fg8SycKGuCr%j~D@_HB5FF^073MlG_9ZPZtj^5UG;_&w0Q=p(BgwA0u8Z@6y zO>+IuRrMduVpCORT}r#i*12}BQd^ooXZb`MsH%VcqIrSZDw$i=%wy$F9pn47ko2|< zX;iI)a}a4fvnn9>wJOPZy3&f+Jyco>N0fT3>?pme^%*q} zmD@X7>N-9`U0+vH8LX7Zb-5UWLWA*0o}W$F=l~`TO-<}pM>SN|ps$7O^cmp==+H(7 ze7ESdpm}dG&GtT1C=q zVHBr2s#e+qFN~Kk^x|AMQL_V0i|Q{@(`>(TU3{j*pt~h+fv%~QRcgxVSox58lwM(_ zhpq_DE1Ea25#=6AYw@-me!8UMHb9eM#`&HD?-x(Gf@_}zLJ-$v5b+LF^;YZvJ=9fQI?+4nn^Y(l5*su zZg{~O^4j zLgBR+3N*8VI@1&;{h1kum*aSh0@zw(RD`mg>RB6873eXQp#=e_%1tU}NfDN1 zr&4svEK6AehH$iastB8bPp%}tf)&`FwWYV5&@EjG>fKqbW#*7{b6sxe`sH-!oujedA-ah0=3v|sBz9Jly^tj&do{MbKtOJevMjoa_Yvq zkl49MZnt~c$l!XDv(@I50lyy{RZ8oHM$PX3b#mFlvBkj*yt;9IWtHT#Dk>?dW7p)X{$0Z!R_ALr{Lk3J?( ztz@!A#+;}Ig&t${gk9}50OQ|o-SkRC{*?L|wG|E3RgP#IR1Psx?zf@r{)i zsii;N)_Zg8CYL=VYCiXw^%902KqOgqD)M1&xkGJlV&zTgtu@FU-RlxGR=}DT`Yz~A zEQU=f?NSZ~hiSvf+@vxyN;OQ*coR$CEHiAv0!_PHh&7t2^Ap!P2d(m12iS>AM3 zepJ57c@U02$fL-Nr~A5I#aUz!t@xYx!Om4!{a3raY6eg~ zui2^kb%;D1<5Is4$a9)m%qgzauS#zO3nx|H3XxZZbGiJjfIR0fnNsrV>u_+u{8Ht8 z%>#@0{Y~Ci_9Ow-OtFIHzN zg#ZKs$@22cv^rmvyQ3zEfg;un$6`hn}Mb4Z9a;6m>2xzvtacU5{#g=vwy7`e8^}}PQ{n%kYF0&t7 z&0}Qg3Osf%U5&r|$i3CwMVN27>$*O1U%r&e&D!KXrWNS=|DwJ{XBW*VnqD-mqP!^b zl0WjAKk}JB^4*55NY49AlNH(IkNRBxZXYRENo4F=0Ph-Hfe*-$ z$qW6_{f7CY(}p2WDv&3WXIhcsW-Hd#iJ(?@o1GJi117n4PPExM(bh^={H#cu%89l; zNi@GS+K^#IaTFGMw{^j8(6`&SUD2_YRx1|TX2qs&_dctHmd2`ASh2hp(3Gw_ z6@E%1?k9T|Pi$Z?+=+x~U#AquXlh?hm=8k*}0% z@s^Tt{b~PJMXEpXPrlo&_3A0LV&m^UwJ$v6{Ti_DSO`&mdUE0NxOVwDT~2|Kv`ZFT znzYNsbYaFT7x!SMQ>)jrZ_fZwJ^PWB6uYssdoZ+B;Z%NEkzH2wbW73^-W?qL`Jg_b zfwSUF*Q`x;?z)dr_1Vtf%%aHe{gF>oYez{WpGB_~MLba>{==f)UEEA$F?d z=@dnbHSB6_ml4w*S6Dy$2emGWyzYJEF5DJp-u!&&xYru~?ac+}0Y z`|K|F$-Y+PYlnoJneY)Vw;wJ0vCw|Zw;yxNBZnyAIiT1>_20R>FvE(iS9I(#7ud?? zkMwCrTmA&1w4zFBgjvWijwHm^D^4t=+g%0;USLH-sMDXj+qa;sLU02Dd0$a7g|cFg z4L8xWuIHockv>89s6L^=R@-`&I`_{vSy2^~&BI|y%|n>RuDn`$XdI^ zqc&GPpoUp%s~bJ_^F0?7xUN%BU^kh52Bk1=O8d#8}b}wd?zQs1s zeAWMRq_)tCd}2kuvtlhPw1BpjRj%M@lM{L{wiC|yA6j8W{-}JRW*v+Uajb7^XmHf` z+F0N7s3JXmy>BFkL#y1fhE+!T(rC-7Ui#Nns%#{U{#IaU7GdAC@Vr@@l8oUTBmPI? z&8XI4l*DLO#ykJD4|3+e_UXNN{($ns@p4N4+a1m@jbV2<(FJyg3vI4xMbOwLx|VL$ z*(pW3RbMHOGZVplotouaL6lw^J@snz)LqJn{j8n_N+*l?p`(Xo|9USxwyEaWm^FPZTe!W9ZKH?^t-y?=rcVzH+usNkZN zuf6m{X*~}nV3%O24hmfl*n6jwFh(Fb!P`}IqIPM|EW2UTlQPv&Xhn;XLn=jkeq;yO z)N_pXtqhwoVUZDcFUd+Tv}OX&@#25mJ7my*+dExKlR8?il%x+LQu|ALeIN(x0~lCf zeZY!hEHM!6#_HYWnWfR{)n(zoxZAmCgsRG^58IS&y7F_1ZRU&7mer`wt66DJ;;O`P z;stfyc!AR)baE@F9;`U%CZ#NLBH9Kvd|EySYhPiI2*2(y?^#s-Hk!?sjecicZ%ohZXb}q~=Ro)}#MiUf7|l*{DA8JuOK$V**3!=K&}}_O_adUT=Lw@h zS~>?JUcIcDleW&`XitAYGDD}r6Bmd=6ZaU~b+AhOMw&*HrbX&{vq-3>=chj)!5eyV zY%NVUVQ>>-(Pi9GIcZO4;ScUh9b^RV@TY}1+kaJm)%rIoZfSHxS@;8Y`^i{N(yM(N zGVrLAf`xEdL+gFXFWRY0@b9f|Czkx89Lsb&R=L%}HikTyi0*x*&x%Eo&*+uYcIN8U3?58Z9N zd5}+A+J@3+Y2;TPAiVIZLjLfWV?WA$eu$$`Gh4CdxlD)P=8+CjTrOw{77FGI<_HcK z^ay5YY*QOnct+&A5>nfC+K=zsk2}m`FIx%0-nJ4h*uY&}WoH@2q0wsc)ZxugG)2dv z3FBEM-DqJo0%waojrH|xw6GeXmN(Fd=_X8XfQK4&6LvD2u>WMILd|z0hp&Npu&ZPL zEOu?Dvc}R?0RH}^EwS#2%_>af+7&?O)|lE2WAQWQP?eJ0Bv*{t@bo`%Gdj)Yfx zkILPSt3t71rT3}aVdhsaOWg4X5t-U^TccvqJ7NEFg5LcG37YIk5E6OVftU&LK!vds zh7z5Q9W{5`J#chtypo<18s7)17maC|e{pv$&#cJDmqI4yYG>fST4-1Xa4gE#!exeb z8A%s=QNBXuiQ1bRtUVl*9F%)=M`@Q`?xdjHoBKUji0*B=tcC_kTGHNJ4j1rcO@BZS za^K#f>*)td$Dj4Xckt|`e)lmYvfuvS_U-@Q?Hg8`xDU9YiFUz8@ef*KjJW7h)1U%6S zUkE_p&mqlGK$-=~8=GXo|yGsQfA-ETh?v z<@Vz;`?1x2Y_=a8?8k-XF?yxy0Qa~xl?jh3kKfr^cvEyWXE@t=eGeuEqN zqfA&^_*!|*o*QDPT5IQ4d(^x4ps;o3ksUEm|I%P}B)Wq2%v+rp89Jc2j`eMGhYN6_ zA?Ksm*FxGkC6$vlMW6dzeckOFRGJ=R=~T(nIB@@1P!xMUNU{)4U;Hc(I zNuj%)<1>gaXG(Mev=Y(v98C72eqxN7P@kOAC|5#UMQ!7T^><%=EglmsK#mm~(1}?o zs?Gb1r8~S6K;I~DiW7~IV@1?qtde0Fn6<`~Gp;p+=-7ZhpY<{3En17aFkNf=fe5faz__os;rQdtfYb)h8xG;>>EY?DLXjLT(kz^{slYJl(4h1sNFb=NtRK* zDP=TCY>+a^E^QK*Gz&0^;zVQQB$-4T)tKZ%9Kn?g+k;6mXcAncnQjs*`k1cg*m1Ah zm+5wv+_KpE9HayVhrkkWkYfqN-#rK-nRUAGhUuxOttDf3u&fB@?(U<}-0gl!&_~ub z%uMLeYm;#)QnIeX_}Nl?wkuxwjVdQyrkr$#*T|#VGYNNsa-SUDrfs*wc#DL&#p-OA z6&-tw{#9Wp!l)G$Q~64+m?)NHGi|H2DH+JHvBKOa`X>WJ?O7PX02rCS`}3Qc!JLe^vj`agK~jX?d7c{7J^dzxoOa>bx(Fe5bYNr#w?jgekXe zJoKj%9Bt`f$w+J&w~|U8G5A`Qq%>ni)hPvkbP#0aB-?eo4k0Qmr>h)7g8j7Lv|J;b z!Axm83C}7ijt&IN8){ircM^@YdKCi{Ry26pf_FE8!ubky8G=4-(SLq-;jo%{TMAEf z#V^4O8!2?R?}iC|-rbHIK*3?oQUzZ-e7pr8(eQp?Vbs9M-&NsE63fC|c4n)KtPNA) z*!r!2(&%~?&(g^HLU=2qQFj*Y=Hf@#61ixf>4qXjj^xvNKGW($la(=nAlC>y5(05n z4hKgiu)UReRd_2RhjK%q9Ll?@Qaq7)7g8Lx@=vvL+P>`Tz9LNL*m^pPanVV2b6Tv8 z&4T?WC1Lpyd@oGG>Iw3WeGU8}iyFU`^1P2Z)w4X=uxJ^GkfXA)+ z@mBb~3x2z_U$$g+JGUKFd^ut@1+4(jsRgZ$D`_ZdC`>ryGrwLJHBda{!}~Vi2nr(= zy%SLF0fj=?sNN&@)PO=ER2vAmP61T^?!r;LTwzOLzAOG24!APyOgC+U!34G94|=ZB zO;tJ5+^s0(pzAlv4joD(ADZH${Gs?b+X#dsTLd;x63fDsV4ya|Lx|s`J|Dc))TU+bw=I~+&_QqS8_Jh=P|6jI+5)K`#!N*r-oR0#^HcOG%-E*!}>s<#x5amByD zFa~3$E+q3`?94sT^M;}#pF=ia+Y)y zaqqK5YZ$4vb(?a9yq6&l)nOq#X_wR*q)V_qGZ)ckx)PI&q;^!-D0S{lOG>I_j!tJL z;$mGJ!Km4Q{S8($ozC%KqSGmQw2!KDhl6ZWN2gpx?&X_xCzJtZoPSW*E(P$1$DsYV z$bRH^&&0#|_Tx1BvDAJnkw?_;LOepx-R!~IyOwy+gY5zfV<`gLxPA4+m>$sj{y)?o zqV08umqGvd)%XLeAm-43o}=-U+{DtTOeO{j!H}sCi4hE6KuDh$E$+c6X9@zT{Mu4H z6=gYb+$^OIvVc%N`bad{YC%Bt5h`fBP#`@yHgBMow<=Xlppo&hWz)kNJm3 zws_1xJen4dc?d4^&sNLbJ_mIzIq62Vv|MvX=EHNm2!EtRj^FtWhp2gjzD3Ft=l|6C z`Pa3}2LOi)*XW+qF0UrJV7EUu{!Z<(Hp!*uFK}6=U2acyc@8dh+9jOqf<5a^@fXpS zrSI8oQf1(J*gpPX?;cVpPL=s+v;3*nCkHGa!g}v29J9q}&u=t>{hhRlxWJmI|2c7Gd6? z5#l-4p!n|{g1FmfBha3QA@S3dOryF%CV?Fi;=rywB{Jq{P2;xMO=e zkx=8qpu=SD_RSKXJ3JZ&&~@)e$`rkNU!L&J0l)% zj!w*@_^{MCog*yfr1c*U#^YVdipE!i##s$yI)`}F)v-1ZzhCp>cZyr0oVnYt1uHon z)DY5Kan(mE*$sx#Qh}09d!^L|_VJ4g2p<-g57iS(A%g3LkE7FkAGdMxT z=vBGII+)1O_={Cd)*Wbz0U7R~GZk=Gf2tmS=kgfcpou{qa3WQz#> z=lj?L!+Lo}FZyIK{eGV3EY2`3zgT~DAEBCR$#-=)=&;j~%m6h^}Mwwbg%$vt0xWo|6K3r+4jV_JqRMqJ{sGp_< zGO?Y~Ggf<9-AjRGUt;u1skBlU(i$ZbuX#U8z3+?tC7Mu`soBUEWa4Lv{xoIneAY6( zW*)*}=N=JA5COXJjX>~60 zQmnnkTT!9Rq@%Y&gV%%jijX;T$op$?fJf%m>SGo9zzz#db&!Q7J`8eE_&X3;2Nm;2 zZymOb7-?6?jfl(8&Sfz%`&f}nJUX?KaVQ4LsOLGAZI41goOKYVG!v33>C*3!WKM^3 zI(8Kn`r~1)zNH8$`N2Yh$MR_15T$X?p+?0xzqxD(mAxK!`)z%>9+wTBxuosFPKL@G zX`Z57wtpR0YGC2g!xCUG8Dr+9IMJ9Iq&RmnzEl=att@sj#=OZnQOmMk*6cemSL*XN zDk44xWtS$UHuIyEa#-m3k?~T9SjWuAD8&2uS`VIdj>t=Sk+<=lbLuL@92Prwd!;JF zdR!fQj7$|Yxe`Uy;M$7dz`kQmNEOobJ*d4`sV*qTDn)cuDU5l_X~gvEK{ouFEYJp& zUW8dt@uA9s9EP?RUy%ih6OE~1r85gC&C(qmvf$A_?llW;L=LUvy&q!GmSy_E-ZH)@ zsa;RJ>CqE_Hp<2bY+I8JBi4Cbu=+au7qQMBuOAzpE;#ukxAtNsiiDLy5th>XD97DC zrLV4}tq8>`HKtT&{5pKNs+TgssVSPJ)H2aC7#hv0I0&fMZ$g$zh#9fAmp>W{5N2U9YVANs;^V zcI6W}-2g4wIIThe4ri8FF|}$o-`&tP1$SLswy`v_Bop;iMb%xH0e{eke_cIiqPeGfvW|STB=QRv_$RPMOBS3cDQvW#y`MQX=E()X{Ld@6;LQMlnp6WB(jj7 zAZI(|kYcsHY^C7c?J#X{9HtcidV-t>j&;F8`rPdYBS}fE z&EwESwKg>24{vRv+VWgIZbd-kgr!YnDhQILIHnk=>6zlB7dWyZM7?->4G^yp6~VF` zSg_ZkmDk{zZyTA{Fhe7IaQ-_{9gDiPclbizslD^r86>rrHkyXt2n~|{Rv!uAD8z9j z!1TrSVC!7!bpdcXmg?7CVEk+;u5&#BTO$Dpm0Np$ZU#Q7h|_jv4q^LW7(X8iK|F|u z-ayKS5#|nG4C(Q)@DQJcCnJ!)?RA@!afz|Bt&_W*ODDazcji1~Z^OlIF@#1Hsf=lk zqB4$#A-n<+#3zDl`$`=pE`yy|_DmYtL9j&}5?7;mnZ4_ziCeHPS!uE<#ZDUDA0CRR zjbVCzY@R5`7}QQ9xryP9v2rLY{s*JE;pvyylVdkU$rk5~Opl)2;lE;*{%_P|cl&hc zpqeHw`6?sX5!qG^9iK9W!USG2!uD=B5EmRD=i#9rJkD~rzX0z_kIi^U(IY9rW(ifl zznE+*)4MoyO3L6uo%zA4RLpj%gas1S*SOhM*=t!#7v@|*aNO^~_c1U( zQJZpnok~V4C|!743Tpst2f3=u_qefXhm5AKXccpyw%n$`M|8m4-%=?k;)&+(+x1pk z&PsBd+MGobzH=}$?J-88&L&O9NiMXuJ3uFvG**&|?~mfLVF(ma@#)?Xdvl)3xlQ=k z5M~SqV`tKXk4Wj40aA7*w-g?QI*SQXBC$L=)qXyrk7wdM4HCK&v8aS{=|LZ&(5Gvm zPrgnr6;aWv4nQ%}I{>mNhZFZI99VG=4>KG#;<^AxEF)5hy`B-rS~`_Tl=n_(!A)ze z#d_^8Z9k=2&NDrqE+r*YPBNZHzQ(lonV4L!X zoO?Dy<&^UGxr$aLBf64%^s&ji3pTpLcf(If^lqlRB>LcH1?!&&Y{-FF<-a82DTyrX z?+foPaZmX=GBcwj(!8G)voIctsq-w|g~OFSx(hvmSqkNBM|UALbYZS>%}^K{L(5%| zFQYEp{FH^fYzD{Y{Yz==L27HtfIc8HQ~B1VLUZP%aaMyfzoRtrkry{Iy}OnXD&0{q z7V3h*94L+a-55-}M)lq(tJ6lDoZsW}(4i64sPV z0a4CaQ#t|tiM#zyBv;myh9<8m9oBOM?i)~^?nQ(t%StMCD#8M~lnObF@!XP?Ki0|#9UwvqO+Bg?%C+<9#u+iVAi#>o zG6?!oFn1ek#TLlI#xdgOCSLnmuy9;}zFWt-+~KQ1m!6E3-AnW`a{PAo{`7emESH+0 z%pB^@4E-F4reu|xec#LM(C5NRqc~Bs)%s$aRj|o@<+~8Kp$J};?xr#2otoA2nmlMs zNAV6A-JF8L0f{<~KIj1o2PD+@GjMnW6c4iE4J^8X!pdLGf`vie5CaO0a1h^4UF5ll zx5eOi$hh3uqepEiEM!|OBg&Rem97JzkzE+v#}p8EhNIF%b>XM!>B3F6%#F?vBY$bC7LndTy=q1TqkcrG?QPa+=63)G6?iqv9GWT4t zoSB;qIw^CXR!Ni6_@8P2_=~-0&jw3tKm2>NpOCKopcL&-OwoS6vA;j^OgAE8RC0ga zcjj`JqAevu`(s^Ygmmqy)T#WJ_Bzot>(UT*F*_2OojTcJZGtvPhX_wN3Dp$FEk^EY=LA zOQU_tPJX5=@{xbz?*7(OFFdb*rS6Bm^T*EYW33yhfBme2m)%RBf%2s%cUc>E^|#y) zZLzSOvu?#r>et6A*j5?|w?gJchgp5PaGjv#p0JS}0-H59prw)6LRD-ZYf!M$+PI^? z6&ok5a%5v^RD~~%YJXUXfWOJHaT~0S@4@4!f>L<)vW24y2<+D z?^dj|pxlaVvo^key0!7E0al-JZveRht>~Ug>+(jYOqY91?5M~7-eauL< z@*G{?p?$d9uL2`^+CV4qwO#uP1=Xx_!%(o5`cea(Z}y`}-rKl%2vUP_@%N54qw6Kk z)Y?e4)=H;WZQ|gy1P&VY8U$w=jx`8-@MpA@K7t(x&mMaC0c;P)^gMgW{egv*Jf)aO zNtK+wOFnyeDtn$Sg{Mh^L|u$OP-Nn>S#Anlpt~-1* z(icAse>R+9tc+#Sq^1tt#y4A0NQ#VyEycLhm4!sV8lg8M+~HQZtF878xyGk40sBbm zk7S;V7e%Do)CR$a_8J@US#@m?e5eN>lv90g!XWe5zot!jyxI~@9eUjmvD2E1N)a!{ zA61ytpE!qa*!gY1b`sKA2C(09jH|8k*!YvRV-6jUHA#zeeGVa)YsUxZnAo?AtAR>v ze6x1EHreqH2^lZp2{Jx@UB&(qz!Cey+VNM~@nJgJvGe#VLLROo7?Bh~&n0mARtGyI z*`*RLf7UKvQQ!$kgfaxy=wjmwwaY}hB%;FE4=j|TglK=qXy6I4vD$kUy(eA`bq|i; zjL{BX*i5XC;VmAp;xF+}3;$f1@WD9&he+XD$$yZ4YWQa!|KP4_S3HM*aEU91)c9i- zFAT=V(q(urF2;w!9^BNYThN}<5>KM%P9#rh@k^LBz7Ln`{>xjqbh4|vHKvNxWq3G3qXqr?yrAqyp>DL#P7o&EicE&dj>v}wWL$3 zykAk?llWt_>%plHXTfQ|1woSKnE8N(_o7vv{fsK8S8`1LYGrh98g1rQsXN?BU%$d1 z6@dyGn$&Y1DLpAta(ariB2qq6Glp!)LdGabsY_R#+RcpTQ$w2}p6T(mjzJ7c zWCYOc5pC45LGvtyC{-HSI==s;OHP%V-W{j>Xp)1EryO*tXS)Tn>I}hR|auUO)XK_?5J-mccf0l&77F} zZ-sYP5B3iR@qrhXwQbIFblhgI#b5Qhg$q2ABbbgjF*18Qc_Wus6=AsZh$^7BDqVV( z+lj_8H|-($e3V>+ly=m@IYHF-6`S)=T(t~dC>KP@(N&}gC!?fj;Pg|s97n<#DIA1? zR>{{u*&g7OdJUA4qK~B{&O(jEJRdz`Cf?0hhb!g8(o)0h_l+yc)hUofMvYKe)UpHS za#|2&q_IHiLy5yRp-pXpEesml1!;){2z1S}|TRh?752wcKh&rsF-eSKRGORQGX4rWgaKxH4$k#M_M1JK_O)*_)Bx zctIJ-(nhiyW4*N*jj2}KdG3Ix>TM&9!}kAPjMRx9Y2BnWBbDk`e~~NAh?hF!u|Xb7 zBWjD-E_ia-zyoi4I&6SZ`VX`jw|=b%ZKh)Jcb_3P!^s&Y3^rS-9*`v-WJ$OdZS#gg zuvGS%VK@)5@m^#Mr$^!Ko`t*xt%~Q7umqO;ju1Z{Yri8TADSzHPYlZSHOOb1b4-qF zkh=@V@{H4#!qZV#eXjT?)Ctwj`wABwBC}SQPeG{lh#20jkA(1lI(q0=g2z~qDHuJW z1ST(wdOydC--@38dJSWi2QA$S$WO(EU_u@8=*qE_)G5?!_}J(&z0%5{XFZC-^$Ir<}&HohTkDk+*&#Y^vJ zdk%2=>nQ`(W2u*`b#o{R@v@X|sOK=0EtB4L9S=c2mZKhX$TuxDiG-vE-($mxbW2{D z2Gn_Nvx?g|?6GA{OTOJnLbocW|b>r~VT9{p=sDEW2{oqbj9s`L5;$ zt8J`{x35dN<>9KoJ0HW#s@ymS<;8c5Swcb1&oJe07E!k ziXpf0uExC8W<;${8GMCOsGQ?FRe7AX4bIzCT;F?MRf*$y)vfeTaY^S@lO*l^yy{jX z1nF^ytI#vYD|=CA@8?yWLekEwDi!qvSoAG=$^)%2n1qFDSCvLuIUZE?8m&#_65a{LIyY}TYSBlO{gD=r5^hQme6Ny;kvkkjCOLyM?7TgP zRpCT+=s;0!b(o>Usd{h%{87hXNz&4Rwj&Cp7Z;a_6pC<$4Qmq=&mNt`+x>fgP^ z-}c>!?kjkgkLmTyXolT)+va>n-)-iAx>IEd4;_zjL&8cJ4uoQycGe}MSNEDG8Dkw!5>)#-vzyD zp2In3XU|AB_>M{A4*g0~{9A-X(eDJfdJaG_ZN-{KrwW(_z8d4$6KziVW3rUe4>{h+ zxDLlkNUK$_D~N5~OL7vzj>5n>M~OWUmCkD00!5mz+l;9fJkHvNqu#4gL3xLTey2|@ z!ff*w><;EptSrE&SR{fR@^z|)C#NQOY7g#}=d8}*AN`TAoCy!@FJF>zenKdzO`;B= zLrqvDQlkG6PVPbhY_cOFC}6uB)Z?LPY)%Mk-AWsK71WWW1k-NP)Ow(rKkb0cxaR1% z^uxYH2i(MJka=aG+t*4n_r7ieF4thR2cI55$@>WUz7gIt(q(em93cG*<)LUv^R)wq zMKd8qHRm{^RgHHSmZ?LKf1^jo8?1Ol8PZcQWsp6$@6r$rOYW?9P*Z#aGcX*d%Gwm=C8bOlk4BRKOa~a+D8^Jp>FiHdS(}-wfsF6BoFz1_CzpSXb zBbwi&RqOA5T)P6(zEjEA1u$JA>4{|*v*BEg}Ee%f^KfXMnRNYbkI&7r6YU&D-TBsm`r!Db;4W;S0(0{1u$*oQh*4`$&Dc*&cv%IG1M=zldi zp?&cxvzp`m55%d%AGi3z^< zbFhf&|9_XPLp3$=>UV- zpt~UV>*~|y@S%DN?OBat_2Vi4fAG+$9=I}@Vi_E($D)>FEG5>7zXLXgTRV48&cJZr z4961R#DL= z%8~lYJl8ZYwGwZtZdJbRi5C{D)Ns8p$9;042mdqOC!-)grgn&>Q1KOx*~mnkiN-~g zr>b4tQ)9fCa^s&e`{0G1A~>2gy|PG4M*Ik_9-CD)nH{PFufEPiN0?Bl6YsL%#H~^c ziBtRZ*l@oCeQOqyXI7zr=HNZHi}t0nUSHC)2P9D)M#Fjt&hk@zC9uT(KkCgYyjH>7 zFZz5-pWr^F(Ytpci+To@;nU(T|HB`NnXKNhl;P^U%S(^k;AA~8!&ITI=e4-$KrX2fJ(uT0(4Adkf4Gy*Nv~qI47GMbGu9_mk*|6$ZY=(mgQ~1R8;f85##EX#0An zyGQUy5&9WqZKl zIIqQbV^#Thl60gz=CatLQ?4;1z zqrp`toFhKAm#Y-hw2Yz7l*I^Sb!RUvO{WfJ&L^!_i%k*V8f>+pK~T+XFH2-HCquU{ z%Va#K#0-WQKLUUB>K9MyT!=cqp#-t1tP^o-Ypd}=LXQ^%Cu^*=7S{$f;O?nfeQrk%@$h{D zoZDG~dyH|2hj$s{?Sh&r9>A&OXTb1wK|^Cr6%Nz$YYjNJ(}Z{4Di^4Gj&Yb?K91;t z8@_p1i~<2mIU6I@f!X);rJQ&BKkU5=d|gGgKc3J)Q(ikjfygt3Dye{`N~B3zNJvhy zk3E4Z6sm$23#BNO(3}m$(vp%K=+1U)ebieYK<`zw*DIGQ7E7@-p(P2vC_W2SiQ<(W z4_*prTR_wQ_q%3hKh8M`<>CGLzn_~=d-mS*o;7RMthHv%8e{ilzp6zX#B}W z-w1H}fsi}}zrv3YDI3(4=DhlW7^^iN0;Z5!7`msPU`cY5Oe8)~wxlqQ&swn4leT=y7R|uMU&xOL&|i=6JaUBrw!^f)JMRt~m8+B4NRpcJ zVsJ7WTuW?$OS!v4hNa~Mo_ak^&m+~E0NhX|V8pU_a@cUZ3jS%aINpv&{zF(%+}Naeu8{sYlJL>zs`@D>5ES#D6dK`bjnvxn?g zBk{RbX`V@;&oP?SAbdtjac1SPOh*IG&Ea-3^5mS8dC&#N{GNE~Ba92$|2cFw*cdK3 zre_iR1A1fWezrqY0V7ZaVB0X{Gs%!CRRGzELPm3YaYhpxR()we3kLvM^N&6to4h2F#94kSR z{R}Xbv(?C4c!rW}?Uc_V`nX6mIZ*5^tkxbBIv2_uUAh8tN&0FS-mJvTbUqP1QeQYL zBVvS_m2cBcG~nPKpOraGpiCK~gA_`3kR*l7!Sn8vIhe#FZw|g+#k`X-u{mg_gLwjf z73AZ7q_ruaf_&7f2RrJ-c^MJsxZLRq;R)Ml!}A$M8K*+*3&ov0{9FDkx%mJE-x5W^ zZz4ueaB0_m;$QdD?Im!*39D?3|90KZC?!(*8>7ZSs#T=pl8~z$9c+OQ5!!BqeV>cJ zw`wkawSXeR2?Z0F=2kVi7guNhMxLb@Udkd3MwBI@H^5FdO*!IGb%zLweYM)9pBfWE zzxwGy1YH9JT^qRgcnmF3NV-~t=K;114t`__`58W5JF=Q{C<+yd4!GKH=12y(8(#rr zN=6Q67)_csU)N55WE`NMD+jayj1GTHV0@df;@WB^Ggz_;=JfnZKFr#>2T24ZQm#NH z$DzO_he#%X`729_cs<$ASsZA*Vx4_sjEbIdxZ8(o^jGmCP|5MW*XdspD$tBagbG}U zn3Rf{!kB;x|+UyNoA*Nxl}aTV4PIUFvDsiWTf&O7hSK}1l5 zD@KNn%~ea~`+<^0Xi#i_8}=#5qX@`W3HjVngdh zEAwX#ve#UhY=8nP^Ax_CTv#vu3jB9f(!Zff2A*riRwne9G$ODu2)tM2o{QXbt<1lw zuLby8U}ZjsFW!k`dEH%jZECoU59b!IxudC}wZpl=YrYvTH#^t%cDqbae;XgphkLs{ z^~r~GL9gsUA(k6a*5~`2bBSp6w*TN71SI|Y`Oqy&PqLS9S;yez1AJh1KwdD!I*Sk( zkDAXdQD{N^MSOC<*Ml_fC29A9#nHPDM$=y;-N&$~$IjA-!HMvNL#z+$WuJa-;8O{; zB_PRgSf}Xts4I7T)qXd&g1qKw4b8YA@HBa!-q4KO(T?X95l!|BZlV=`S6GLuxK8N# z17UeFQV$_Dxq41`rRz|pM@Sto`%Ug6kTF!M0^yax(yu@YNxw73%LY1}M9-g{6SEE$ z<;2uKqd;j5OvWBZgw;cTq@FMiE$-c1Y23_T@Qb6F+*nHaqMk_k?cYr)Z(%9_j>V`N z%V&!`u3U%X*k7~##M*((xoi{IVXzp^7eTtdWV=t;{$*c=yPU~$ZTIHMb8I&~8M~kt zO}4=kF*)BG;ZtYww3K_zy;RJR*niVP^ z?&JY!f=>NA3XGRftW$J?kzFHoMZSWpnLmJxnu)dRGlL98}BCkFyCiBXM3q81^_y8k}% z56Ba=_(LkVH!qlGK}b#ZBAWV46-+iG8hi|b*$}1dWJ73-BOx1k*d(Zptdw`(N|ikh zqMstr_U>D);~Mb{vfYmluk&UU7|(O3gm)B#-^OsU#=+A4R;&!^TC5Y!BJaYq7pw{3 zdUOTwBXfyfC?bK!=gu1?J+?;_XBDPSAEUV{!%ltpvVfI>ac6OP1NXB4OiA}|5#lTx z2Fm|2Z<}m#e~fcUI8_P~%atD;1G^-*fa_PfmDI1>!&hqOb?8v|+84fZXMhQK1gHys zZpldm=Ybd?Yg93R%iEAL7@0N5j&*=FgIk&=>srVy$v6BlM05Ncy#jl{21+S-m%8-| zO+{0%8PXOfg)9#BkrZl@>rBlhlE!_o)&lAku4g?kFMAZGCoS+zhWusQ&}VKu6SWOa7@2vDKy6(M67QQei@WXMY38CGO&iqg3vJpI*II!%aIK`;!n=7WH18f%M6(2N zy=zo&l;>SnDVrk9W+PKYZXDsnqL~PIQ;blsb(P1P23(d91eJU>lFwpkk>?t670%e5&&|x-Xc(b&MkznbFoD^)8Z#JD-eVKjnU`{hu|Y@DNHO#>r2sd$ zW}BM^Y`qg-&XnAY(c8qjHQ@8>X0S#o!RA6~ z>h++V)w2eL#sOKOYl_`_F-Dtnn4WC7repcydXWX_E%}#j))a>~gQd@-O@acB)#y|H zPk#rvg;HEpBlUmhAB@Us4ETt>x9sm$h!SoetRz8O!9_%rYH(9`ONH&( zz8&BE!|OKnhTe1!GsL}}4}9%ZUwkmD*e1bRshb&~y_el-;hd8GT@r?E!f^XY_B!*G zEK)60^YFf>w`C0}QKn&%gje z726z{d8V`Z&u~Tt_PjiAxf>>HwzpYeTUebLx1@Iv#*ANDNd%WH{MzqxnR9{5k#m_~ z3xl~6P;+!o z0>i>4C%xOGL$Kw07uy`YBOUl@dZm*AX(Y7~XizR8gL3)UiT@mKLKztZ*rSxoIR5Em z`IHKU^r=`rXd79qag5_13hCp+mFX0cEHw=fyA83U6~Z|F>129ZL<;%Tu!?2xLYkIz zKdr*=VmNZC=pE@(4XLrMew-}@r8&Y5t~A!{hG`N_%MB>8GcatZz*y7ib)9h@YrzWb z-_8BCi$&iSw}Ibgj`zP8Ge3d-7x!n>kGMVs3g|{?g9t!SO+v9vzfzFXuPejXop3X* zL#xBks_?Z^zZx~kc6`UwB*P4FGvy@dG>0`N3v!1MN1}vc_+~tzCSlD;Os+HnZMCJ~ zuis{To-;?93J8A_8z`mVUFz0qk|vke(y4;>rRNvtdXa+d;$+IRhGsC^hRsK-=kEY= zZd#zDS1Ys8qF4v%*@VlB!t$JTl5-1kqFV$rx>cFitr`aV>lv)Nus6O4|hH_=ru`WY+p1=QM`SYDsG99^(7x69|P^_h>#Cvmek(OoYt%&g4S z^4U|Lp#s6md{90!^_eT>bEbUWR-c(KpVQ^@_WI0K@=3LFZ(>Eg*b&3qzkIs&nX4t% zlF#1y%*W)D_iFYgym~p4U}c_1pL-LZtj}B{vA>s3zdm!VeA3RRH}R?Z%tHCxDxaUO z&s-;;>*aH0y%;T9nXk*|XX-Q8OYFbM=V$9Pi{x{Ke15Jz(-UufcXJy_YpI@xc+$6Cl%jcKsGoO&p z3i>N7kNXk}i&i1#M$sLw2w&!^?{&ic$U`TV(j-c_Hu1)ojU=Q(Kv zU#Ja$B~VHBSNPGWpWOqa+Ag2DEbfA?G@$A)m1(P+X0p0-3&8ch}lmE|sUMKqfK zinc?exeou=7|mv|gYRWXXaS2VmKv@oYIh5Md4v*>!2J;2u)V|@q@_L}nwB+!a4K~)W8;6dr^wNi-?KpE&;C6OkG zHMW1?1Z>fx1%0e>P;UEC|2k)VFKBk)kwRwql2R!UU@)yz1 z#qAbwnXC%X@Xc=ygH>~aZO=F(9JP$FdVauh@s|evG}f@od5XU^Ql5cXyZdy~{WY|` z!|0sn%hKtokM+Zt&hUKgIz8}qy#h+!y$FDkw**O3zP}4!gPCXX!9OTeD+E6455*%? z^8OO3LM88Zd_f=k1Rv1T&V4;fUe;)oyn@mwh)Q0W4S25rJ=vzyK-YT$jVwe@g}ED5 z_L^N7tA|&wdD^t%%Yxc>NCxl0J^+g_j03%!!Td{l<84>I0)O8R4k5fq76$W=GA#1& zGf>s4gE#7GpS^53wg8%Qml%A0O#=#C*G1$tI>TVL04W4)1>Fia&O(K2yyLQ!qRS9) zlL7f8NPnEKViZ$luSXQ@4H~cKbgsPwkC^t@pYb*oGb0w0`vdYEs$x!!$NXR{(}sJH z?H3(V)w6hnRpmZs1hUbe)Mjc@n68g^r;rRf)!EI2WPzeNqRa(nh9vQl3a7J`A??i4 zz^$;f(bU)x&8yWzySaER#9ah(pfxJMG#204uQM=cGfS!B%q>I&21^OA6ZKwQ{sr6AsC7SId^_8ox{0P0!d>!oRsM^Ejl1QI}UdSOX-2OKZl(uQ$7rU z^*WV15mq=sxQRDU)R@2YpbfJWS$M8Ji476caJH7f$ObM$21#YJ4pLNcpxaZ>k?g7W*xqiz}|2k1W+=)DLPQ}{Wa(z z*o4)1*#06Y%|B5SHCRooghxX_36XcKMVi3`tz}9E63?JMkqx-W+qR#0hA-Idg<&PW zKFKf4t4q1#%R4z_yO;g}6&p~(BJmC-{>{)EyJunjU%Fiu{-moMt)S1VN%itLqt&b* zabuj3G-2&3fwnGy+ghXU3i~{W~vB4C+fyF4! zgNZ|I@K68`EAu`suUT1&wo1ux@yYX%7n^E$A&~OI3G~@!R88pm=qB@CV!JRX;;Gx} z0S6wZ724UPCuiZU%=-|Z{Rn;nc@Ve5P+&FGP2|DfqZo(@b2w!CbvsNYwLQV@FwL{M z*ee$@51a^Ch}T}34G1Rj0@raVB$kcuLZpPNo3#{$l^bhlxfN^E`KnC|RGT`2VH2GL zWK@R4M3)m{ZMqlkqh7U5uR!eISYz6xlS}&y&!;@1!=Dvrj{<5wx~@fjG<_^L6Pp4m zqht}1M(ubYnE6)b0Ltza_!*12svRp5?DvchUB!;qF2W<^yu$6aZ~-w3-DpqJG2)@s z^Izy-4E;j(uUse;v%ng8K)+v=HuN@FdPqtJRl*0J#!3rVu{GZ{8+tR8bu zOr05zm7CZeD|91!JcJ)pXzl=Wu9gHwPzVrEE%2FGt@pv&5I3NRuMI6x(+TEaF}zjI zR5tpPsr!&RA4mJp1mY-5%8!%v5^00nE$gE03bt{ z74lQ?Pwc*eoyk6=<2b}+!9WPsi&l{oL{$DE1@~-H9j^w88!`{N8ZW23w@qjFsJCwIw?!o(j7Lx>q23srdEP{sZN_*DUGY z4HZ}$;lWfhm^oao2ZD|Uh~Mb)4+Z{XjelIRG9_TnWgCm`E<-CYF3<=pLF@97xVfBF zpuxP0#?XA-g4iZ&q`jtotOqA=u0nPK1)Of4H(uG4Que>R)mNp$R2nX9MPgV=@NTJS zcW(q30*E&awAGZx+7V8DPW4gCGMnKBn#Iv8ybn+B`2q~%BYX_TlUMWvY_1wd@Rduj z(8v`%)oi%Ast1WH2jG0%RH~d#$#HN($Lp*Lcj=Z?AXkOt4!et69Y!4^dsHI=)7P+% z21sguuGoIBIX^iKTEFElqZwUR5BF?v@T>b}(EmkvS9bF)Zu@uX=OqPqD#>|2hed54 z@}MJm-mAd974u%T4bZcCP8Eg^&SG#8QhCbyezvLmujeKQ2eDM(uOL7sxbxep=R?9v@g`+l5!{5c)1&Uc~b;2Q&8dZ-9y4H3jh7b@J)9`TWx z$o$z_)z8*ZmCP?Ww*}{u%UY+=4dl=HdVURFAN~1!>y>`I44psUS~k=_3{S<&`b+zl zzf^+F9V^4LD?9|+|EF`o z-3(x0x|_ZpZ|NIedpDi)#_D48C|x`q;XRM0&+c0K-IDZF(J_zC+_x0o_~HTcCcK1! zPfd9Vz**bkR>8Fv?1C->o!F6n$LP}nsezN@AP@_%o7R`+?!u2A6u4^sj3@%s5M`bK zh_cV%$IKlS*@yANLBH=5jZogu;se`8D;*#$_xbRWG+BL@(BpXXTI}Ccqhj~TgxmB?)gn}(l6-QanEm4lSYzte_eEx?QTm=-8<7yompb< zdBV;NrK@n!6|VATPQ*>wsp2N|r|Mp^G7yLnynX{J$9Vy&+YBVsNUOa-wHsr0YNV;y zQld&#q$zy#Me>{_prW2aE{`$#?;i8+Dre8 z&ZII~Wo44|04@R4caa5VB7jxt{=kYvUBSv(iqZ)u+a0p^Y_}&3;a1}*{dQ@eJz*$S zx7WE0O1u5+U3zM?XU?h7UO7jjM+x_jO?6vatn+p??HkCAlZ%C-xXiJI-gOrrARK18 zZ5q}Aapql4(x4*&QmUa~A^MP#)+OdmRE33O%X;88^4VSOG&h_8I9lr*-6H#=oEnkI zDx;m7oI8bgtQev_+B0uH|6^bfbz2y&5&6{pjX|bByPe?u(F8x2-(sDbrf3=O=;-a~5RROm2D(xy*f2=vF>A8L$*La@7Rd+q@0pdvV& z=)%gmCW^gdsbXUp;jT`}YoRA7sH7gTMJ07Y6I4>)flw!n3LzWEo;O5gpr&G7Z_#E+3j^VPp))o=s&v(9yTh>P@Ke&#$@*ZJQJuBoggBhCaKBg>BDkI z;ig~p;b7DJ8Pz)NpD8yEk({k)ZGlO5=+9p6n}gMu8W~yUcG?gwIigJiiF@I}JL>oL zUMzzUJLq)mvUR*73X+VfmK<8$D{#PpjHigN)9T!DQ~PXv(Tq32ZfM_`J~{U`AfYmjU^uKOh9XAiOesBiXYm3asN+2zkiVs6d-jPmpFPRAEDT%uvldjpduem(ekQ~H*3)AqWT)k+n zBg6)}Q|P%B)IR%Z{0t=SDrEtNr3vlWZT~QqWxM5=CS4+R`0aP$Sz)_#DzW6M?J*nc z1B6s;f59nrXwWEZdmpa!g6jm90u)keB)Qw2+WxMkcR_X>!rNeCO`Im8#I*y7J0Yxy z#hvXfu0jD;&(kakn=+^jwCv7(vuemSWe|#64*(SGtqd{=Z#^R^YDlc?yxjH&tUvMcjIJVboz0->CD;}KQnt4Y)am_T6qkoqF5X)rDKpQ*Ek&e^$h z2>8<^v>H@hvP{asqbaT!+L1n7E@1#z6w%ZPB0iPF$!N%Rl$>h)k<8D=eAnMQBUEO^ z>&tr=_xo3NF(vUs%`S!a0 zcB{F+y|hmSrBAH;m2-U3+SJ#*YkL3A1CrMFhx)Szl=gSOWWgDhx?~4iB!<6~`2~XZ z5v<@l(r>rt{SutUPE5_13R2u+P5tQuRUm+hfE<9OS~vx9=+K35;eSMb4UCy1YWHBq z@kE8UOqhgrMYdLAO<2QRk(rFG{*|E48|YbpzVbsS`Ra;Qxk$2(bGly5Y4`v&ie6lH zBc*A*esr=Ar*F#M%9<4UDxQP4wAO&euC$IA2MW6e`esdF!HE(smL8`$X9-`f$R{HnBaVwIUllD`WVy?{X>dc zf39t}Lf;^+)BT;0{@Qs?M463oxbNmB`qUj@2yy9~EBBRz0}W*~e5OZ-9;;&JER<*a zcgXI$ZkqUj0kPl621qx!e7;i>$~OH&RfveVXPJno7WkG^oA_~GCVRm==!l29;@PP3 z&{5*p#rD>-PmzKj%uA7S|2q0OmZCah z?Ep>se!$~`a_3&NHI%#Ca2kcrNQayw;!TH(shA>K&MdKxc(S*HAqun^EY5U2aCEH$ z#%l6p)#MX{CPNdKuNk46QBFMtpnx>!{Z8yRVpHvG5Yk=xa!Tv|pMtAZ!l)3RT_jq0 zHyRMtN+_-eTcTmb=*&{dlcyFxhB8t`PWsU4_ER6 z7jytwQQ+0QvW1tlsO)Sc%D$pXH5y;&K&NxnRabW6K4FwS*m(N29qF3}8s7;}QgR6v zCy^7+1wIJSqL;}i@Ljj)(8b%%cy|P!ig_h@EA1Il~^lMuHPsRnaC-B{T%sv6_$s~+4F!BtnzSU9^{(GDd<2I z?D{pxPyKNJ-ZJ}vAOA@G+19;7_P$5$?w1a*x^Zd=8QUSM;_lV29M9G~4oRcQJ0|J1 zmV4KO1N%T_-3wL*rtl@0QTCpv>`6~qJs*|NCv0rcmF}}AJO-0N>+}7tPnVbW@=dIG z4cdg$Tn}44RKlZ-RsD9|7U)XKho-}gB<1j~O-v7gm@C}okDH-}qEn-*zqkx$UDuxt zNpQZ29ccboNtUbatBua(AHC+vaC8<{UAG9BhkZ9*^|P?bS@`jV*WIW_hvUT2!Bj*R?#QHm+n+umS-029bTO2JTy?YzMy3)^ zd&*F1LZ4l?-O5bhC;XRk{76^6$n@Sc5M(&4!@DdrhqSmqlZnyfK4}tD_kdN+JDbQi zm`QO!@t3UorSmbYLn&`P*WK&|D1UP+BJ|=AAK|~8h5k30*n#E*@DOKb^5*3?P}#W4$!xVuHMr>l5uxQTaLUI1m&rnM~46FLx4w?gA25g9bgpN0ap zKUu5iN5C!b0~JjTCtI05zBfSy+XgG>`|y$SuCHuwxDmIIsvR}G!L=AV*&B^c*6MMQ z62r)1aZza_;%e0Bc;}6+3!ga^qW7f(}Vg`wO6_hKxEu4Fh88-OfK2#X#>Smv!6b6qwxR z?W^N0u5xK>-M^{|5Z(PS{NV1CMy;2{kvrIa{7>lXB&4>3Yub5Pt?SQX7>3cK zvQRF{L|`KW2OBE{RD+G>>d9YLDzSd;1@8&~BPA^$yn>SE^2_xF%Ee2}Ni}vaOa~O@jwhk{4u@JLa+6Dy@nOV`LJ zg*Z$a<9y2M8Np%82p0|(Et5k~vU_kAwgX%ql-4L`hYd_4q-&bzr!o^tE!4qH6n>f`UA8C?V9~ zxg*&%A!^qBU8D*k`P)+-Ml?EnYCUQFfyeS;K@>5?o)duN;-FYS$Xm}I3gQ1s57KL6k5Y4NjU=0ki^SqJq5db@Qu0D^zA^ zl-H=*{c{d>KH6|r@^1d7_2xVItC=!@iDk-nvB8c_$WRGlY?Sq z3}m(SR+Sq_zqw<88;?0i&?kYgGyyV-u#8uP1sp|;u$){52+1L?lsioZH`ucztsX(Z z5a!*j)+gQ-9a*1ZQ#po4;rg_{XynucOM8iSl^yUh|H=wf9)jO8VJrJV6sTjfRb zrNLMgSw?gj$FYn__)%zuCGy{a7=l)UNZxyaR@SZG1aSgR;kElNyiVQGwTWCUSS#h1 zMac^g6B=Yew0bTn$9Pg^xCt+jWzq1lTEf7Vq+(|&l4L%NwDDzG_dS0R{mEa@>Je5E zptj)J>tgCkPA`tyI}b(qua&8LoC{Tq;mQs%D1zFdU)7E0sY%GC7<257x0{Aw2@WUa z9K`PAbmhg|D{&q78X-0`Us+waj0_3kHWU8!L*-96T_m*v#N?A~&FVe}4e)D*3QsEK zL8VH9OgpC$0ieZt6WP2_@Ti^!V>bXEI6|$IgEFPCv&dITI zz7;7)VTTgIs-*=T(H7XR9~=Q8{coERkZ}2C{&F-fI=93CLSF+mOKP-iIVH?sy(%&u*o_7Fi z{<759JWzHHoc@cjibYk#ykU08TgB8y%wuKI(b$M-5$WUmPcvwwyNB=-2y^M9z*=8afkq z3&xi^C+rrPwA882y$fbi(peps{sX2Z(N+hNFqewlJ!Arby#X$2b~!4zYYqX$5Q`M^ zykr;VIe&m#jVMR6$TWa5$=b?`G8!s>1M~A|^IQz38XW8bDX;txz21E^MK9&+$FIE= zOWDRbGU{q0Y@m5gNt1Ut6tU3f9X$!`g$)`gbR!@Z1BzIPWFFqf17cxy*I)$)!FbOK zVfSz^l*~T=9s)lBZBynvB*>=l)8cKSnsw@V8)do;{_szvLyP+KFa0CPl4$s<$uFbZPV zEIdTrBe!1zK`3x%f5;NwNH?BNZ#QOrIzBxNqQH&{ z7=pC#6s!*gCxbf5G61I<5ubhPX&S4vGD8yuFC$587lIkc;rkKS*0S+jz`klBXW*Yk;la&k5G|+ z#G-_@{2h<5Em=9!>CbpnMGnU!>BteqeoIAeiAU1E03tuFBEKGwyhBAUQju;vvP(tI zR*~1lB6IUmW`l}(e>?_8tTQI5m}&8tcOhoHia9ABLvIs*o-7?Ni^W)nWakhr?w0KJ zpbOb06v*&IWnmojj-PH}+_Y-3;ze@^GmuT->NH?0inDaoG77&;$CDM1VchU^5y zAdsw?b6WN{1Oh60QCFP9Gy7LnB9mA>4% zh-@)b744W|1`<7G%-;jMV(lFVz40}sLh^!g5R)lrb{HShqKc2Eqxd?NAM4d(Nuz3mz+`e3 zqKCi)@`XIXrkCW-3K}#4pFx9IL+0=7PpMAL6KP1Br8NMas6vT|I9T_eNRp)&6=??- zOk`fp%->XjYM+G0CD|u+cFl?cu^B9l0DV2y(AP6HNSqnj`6$CsGDBW}mpfGI65ynN zru!QwwnAkhS}L=U(qu; zEDj|4fKgDaRA|&B#i=%I%+hnO*k9tJT-&>(GUh+R*kf)-IdI0EZ@a!NMT?KaTfFmO zb8+-_;BM^#_I0abUpr6@HYmE-A|vQdULg*OQ~o{N!b)WR;GB`GOZqq@RKTDlx-@sf za-g7H%;H4G1zYla!}$c{hS}2^FRTrAmz2$+u0-}S=c3qfFLMsR^j2x{y-XA_3yGqQRab~< zhAehLJ&K|rjlOW`RO^`=95(AEV4?i1L75b9^i6>yK{rH4Ys7!Dxe)&w@i5|l9fOnv z5p*f(o)4UmUEZX7F^(-CKFap)ZV}8&oevr8ylQubZ7X#;1x;_+Eg%O0S%GHm7O3On z^Z3YPT{2v?d2j(YMd2-C3Ij}Mv!!u{Vtf&SHDRDsnf4J#h^UmDSIccPuS`371c8*@ zr!KLB?X`O7ZX3zFBs8yaJ@ZVlGKC1|Qm4`M`Gcm*kkq64mKX7IeBNcNkmAru6XeP9Y4~)f{&7!6T?v_Iyy%i8X8-D(8nu zHJqlaA~l?X&V=^(w!1gb{=R769lcUo(VN?Q00xqq(7%eIH$#X?x<4;Qa)9m}J0t+= zz!+1>)`9O8bCt8;Hr)9!EhLbnx}8N2s&SE-Pck_lq~LA=K}mWEB#8|&Np?RjnVWX9Ntfhm@bO^Qz-`VL1zITaXEcQ))EL~M6ywK0u z?hOQ7N%{=4u0v^|Duu1q+fbbM878o?&*!d`H`h)lJs3yP81!*+fPN zHq%=*3y&;4J{E6$2VxX*iS|dgfA+Yr{eJBgM?vbD$5OQ!^g#1Gu2({gjSKZ?3yve7 z<;7Yca+Ii~lWbSy21G4hPm|^f$%bK04ZrldG1?MT`?VvvZi~xwJwLdZwXf8aUz};f zul6XUA4=bAyKwY(CE3CBK{)KYf@1lz$;Y4N0bV^Vj9l(4hn%}7PbgRGH-z$2DU_ci z1wqU;q`n%R01YEU2Fzjyv*gf}X8uhA1A1`}>w#i{6-X1HWw@IF9HTqyry%~d_lP5| zbeF^~0s3xP#L>+!awp#tCPt4&(aGd;*Z))aQHlH+9xm&JX#H<^grYT075Ou+S1~K% zF_cO#Q85c+F<{;)=WElc^bHt@+=ubCTfAwPrWa;E3+PJ#CuV7Se)ek!$fA${vrXn> z@w}Qd4P3`_~LEKhi3YRxkDoj-Snz( zbry=#>0CQ$>Z~3 zz$o&ugd^K=5fDU_+~Or7Moc5i{jgIZ$AlDTD<0p>^!i%%V;#gLp$HXg^})Ksksm^$ItqUTLkW1v$&1p4s+mqxEm z5mp(;^%QGXK^R6@vt3yHp^0ZOPO{nV6PhhEE;-CBDde7*1;c{{TU^GJq(6Z1WN~I} zkX1^LxWYy$G0rS95ZkQGBv}0_zKflS@Ll4nSQ#=znqI=L_^XICqcvTytgz_})=g(2 zCFzN1I^Rsw_4OntG7<57#ck}UC)XPgdY=eD3*qj-^T7guL*l{&w3~*9rIJgCvha%e z`+W!boWKY1Ll&0_-br%;vIQG3&T5Q20jTj&%RgOW-3sgJ)p>0ba1^xdI~8xJZKsUU zHddJ5wsM4lN8daPjnf!w&Il-dKi0zwq4wN3(yQQ*lU6! zTbX+U!_8t?h4T}L&;AE~lHQ?UCc$=Z2UktRAszW6Ic)EJm3G6d${S8MOf}Ei;NVcw zwUXXMWcsPq^DAM+;cNi@Yuq6S;`BY^{={~F5EYzk?xgu5<|?CccR*Nn*+Gkx4y54J zHGVu54-b@OpiycH1!DkD&E*Lw3>Hv?6eBN1l}^#KBYj35zh4BLnQsG~vRA-}S+UI9 zIQc_shs}8`Gq-lZ@}IXCEcO&-8sXPYEicY8uVGmcmYLs1x3P|K-YTlUjBev!CHW?{ zK;elp?OQD=4X?bCU#`D`k5PH$S!fUjgNdRgb;U|rtV-$_tE5e8S5oZlr6e%^3^KhK zk`l$@(extUOyUi1s6`Cu!RpRMjbpL8dPi+Pn0M#hW*ff&Di0J}>a^{a>kLYr3wO)4 za;45k^u9jq0)ZmAtIaB=v!)-xBqb08IJ%hh0|+Fnbs&eKG<^>OIg~n(xKNt@R|KvL z1Gh2I>KTWs5HV~b@Lmja_mH{%CQKcrNUXu{IE2Gqo4_NoI+MAcsA5i!$8g<#8I%Wk zj)=v8xqd0aC!3WQ{2oOP=NtpLiwxivYQP!Ine;HFN4uteyiU7)S3OlXIqz@oZ_` zh?V&>XIb6jHymkJNZUh4uv){_YgEha3lY@wTv+AM1u##u$%daw6p=Z2U@qxR$1)D} zS0fwki*gnFyvrl1K|2>-iNF^9fbV0)$0szk;D! z;!!>%;+41TPvs}8%IBbHp8XGu`WO(@&pl%mt9wEgAQYh(D1IAWAZi+3NHwnsL-eq{ z=Sh1Kj`MyT)01m%sug# zA0W^DD(2ga;kLYVD7Vf`PDt^9qK36IQF(tbU7MNhLXLQA4eaA7C*?j6mKX|=!T97~ zO;!jMkfmuwicr-U$mQ{&26B|%rzj!#6vI9gyQ*qS&SHNHr@9*YK+Fv(miUVb{Ld|a z)&>?O-5sczA%p4z`o?mL_*Ux;4;`<#{UUOAT-S92V;rKcSrRtVc z-#8V)H)Cz-U_t~~-SZ_&Cu9O~=nsPq1ORzd5z7XlD@wY*#V|X6%AU6ui1!iaevqD?h33)wdr{WAsTMSTiqW<*~<2uQLsH%kGs{*JP2)?2?olh)9{aR zvPaU5z?A27LEc)7FlE0J0SR#~29h-xFo2|wjo+_}R(T3A)LxW6i?8A!!Q9Xw8BdVV zK;O^=fMkI6MnIBMrsM%w9#JxC0a$jS1I>QRnI*nYtkoAv2T#K|;>ZBmRy6*Br#y9@L^j z^!>8Y3!Wc}q2nU#e7-6=Zh=N4A05wTy{`iupF#)5Mn{^+iF75*iI7{eNn&Rh2T|rX z=&tZcT-~AyP#>2j#4Lmh5%nHU_W)5fhW<$ao67>WrQS~k~y8baX4}QcO z`!VPYZGTP`){tcPIVH~3;jVX!JGUz3F0O{|sa*08@)y`S2hulA@ZF)-)|rrg=pQ4E zJ9}nU@k zE!lfevs@>d{VLyJt{yOV+0QWK;xNR-n5Qt7sFu?>9fyrsu)`KQAI-`+ps@T%Tx<5* zz|7n-tiO6puzz@T_%#Z73roN`Hxv+WLohx8+ZT4lRFj4$TunD~*!v>uNb)8CGwZAX z4pkZE$ct^M#d`*l6zV!?KoRLv6heXTMJpqw*3$tE z>X|net(3pqv0A->4tb#)9u`; zVRAzw^PgM@!Wk04#%amj#8n~;csG|!2E5A53$vupjyEfqApyjlNpPVatdpi`tV9n< z`pkF{W;nQHs^p;_T3Q!fao+5SP_PDs!guVx0x&ml+WNgdAOe?w3+ZgxUkb0yFHC*3 zX#)gV!^JP%$qAb0=~IyG+oic9?Cvddphh%TGPwP45@vilgZ25mh|;wW{|2nj57BLn zoC+$YJ;D7XbMws^wy&6dm+jrD8VO=a)(p0(A~QmQGZzjFCYYimycz)Z*mLYruLl6P zS2@^N#Vl9>`%?auYea;Di(+XX5ojsg)&I@vd5&q&eQv?Md_UE9g4$Y8+gq55&vGNvL>4geT2; z*DaiX^;Hi2dBT(C^lPr}Ob;|R0*2^Ngko-27ChO9*j;gP&6@{~0a+>L2Qk>=FN0Pf z?g~-%_|=UBP~{c7kzji|mHQwtt;=Y-f^{U(m2`0&7XZZ*)bN55A6bSKx;S&kNmy|*P;Mlowc@) zDc~m7!FhfP7i7TOc^_b^aaegfSNB_7jG`h)3^(Og56?9j=0#r%A%}|zbli`gUvmuV z>N3deJQVT&6pM40Zhi+~6`MpbRKAu|00<9PuGcvW({!SXFE|U8X><8JPAN{5aN1y^ zz#|vToMqaG&)kKWBYEyZw>xQdA4Z66YOWBVnR~IQZtgP80hYyVZ6W@(LT9mYiAgZf zd<$xz-%N#5t3oV_!8-lPJdAeEltX67SL{NKi2HXze|nW)p-V8x94-iIe~`9-Wc%I6 zZTAH%2}D3K)czV@{H4Ruiio}4*>SR?#pVhtLO|Ki-u_GkAA49FJKT2|fK z(x9x}GuWv?$ju;j4`K{)LtGlaR)$+^AVS+P#jpbQX=S}0oUoFe3c6C;?6pQAz?y!> z&Ux*~3_GR2vy!H14NWyxW~01MSG6^rrB3{zy&F_fW(Q;TS4?S=l0{~i^RlmC@VO`} zU%a`LM9YcR2hs9<+4GS~-h`}7##f9#k*lT9GP#}C${dFH?D5RP-XnO7d)dakpBtiN z!F_IOr1s;ExIF%%k0V-e@t5A_kV8hSERY&zvE>NJ%p#$q4lP2sz`>)q^Ntv@+`vpWVXZ{TY`d3WQ)W9*AZZZ`Y2m!OnrApO9vx~9n`3mB*-^7n$Ip6pbm8;px#p&{VERwN6eMBS$#5N+5 zNS(3v|35*e#yG6{*wEbR`wtWJJ<6mLWdM!2e7t#h=TzpVm?q^ga2#!dG9LwZvGrr2 zXM|A+K(APAFk%12>;4Y2mk$o16m{3Mcl$()6%K~w>4&`?j&yIWjHt7Voi8g#y)-ikcu#1c=3CG8 z&9`nbmbHX6JDl_z4~04Ap>UQ@w^H6QO)!nG+h&~yiYzu8NpEpgySJb+HRUINnz4L(<(c(=XfI?oZy5 za_^`?L-3d;kGt8d?pNSSVi&fCDP3AU%TTPB0H^9#Bht3$_qhXa)(_n~7V|me%CcfQ zNc3Sxg<5Huh2JI29qMM1{ljpWffi^{vvkXR+gb<^b@a6a$=y3DkgMIhs)DzD!y*$q zK`b|S*wmj+?aRIw>NLV1*Z<+x*74}$yhL9^V(ZeweY+GlMWy`oBVD=ER&K08|0D97 z!6bVF2CAf-z=4EBZMTK{g5U|rm&ST>EeP&#wddR<$Eb=%X};H4;)^lq%Or@+`~J$HQj zN6PGtkuiQjyz##fEl{0Jn*Le4|CzF6UCX)ljfdEKerlJ#(C*)S?kt)vWq#`HNY*_D zulOi3<=#VG2#z�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≈Nc@KxmyFXOk8c=z+Wd-|JsQ6cH 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 LvyJejNZ7QA`xi<`J7vOesva$C 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 sbX#u+nukc*x3vyAt2cfYpF=t?cdowXaBe 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

    !)aQo0X4@f@rL&+FdO+ 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%0D`<1X2B6**d!s2o`@P;Owr-dU&X`~$> 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

    xrl_WW2z*%BnCA#G7+m(qJ-PXdNf`%+*5i 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⪻{}%ZApE?CTQG{HYZltd)4?Ppa?= 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
    =&qw(BIJiYN+h%`B165^Jo`9 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