From 7ae4ddd33c09a839140cf7ab105731102f9d12bc Mon Sep 17 00:00:00 2001 From: stotic-dev Date: Sat, 31 Jan 2026 16:48:11 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E5=86=8D=E7=A2=BA=E8=AA=8D=E7=94=A8?= =?UTF-8?q?=E3=81=AE=E3=83=9C=E3=82=BF=E3=83=B3=E3=81=8B=E3=82=89=E5=AE=B6?= =?UTF-8?q?=E4=BA=8B=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=87=A6=E7=90=86=E3=82=92=E5=91=BC=E3=81=B3=E5=87=BA?= =?UTF-8?q?=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homete/Resouces/Localizable.xcstrings | 6 +++- .../HouseworkApprovalView.swift | 30 ++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/homete/Resouces/Localizable.xcstrings b/homete/Resouces/Localizable.xcstrings index a7184aa2..864de677 100644 --- a/homete/Resouces/Localizable.xcstrings +++ b/homete/Resouces/Localizable.xcstrings @@ -159,6 +159,10 @@ }, "共に家事を頑張るパートナーへ、エールを送り合いませんか?" : { + }, + "再確認してもらう" : { + "comment" : "A button label that triggers a request to resend a confirmation message to the executor.", + "isCommentAutoGenerated" : true }, "削除" : { @@ -309,5 +313,5 @@ } }, - "version" : "1.0" + "version" : "1.1" } \ No newline at end of file diff --git a/homete/Views/HouseworkApproval/HouseworkApprovalView.swift b/homete/Views/HouseworkApproval/HouseworkApprovalView.swift index 1c85137a..6db8342a 100644 --- a/homete/Views/HouseworkApproval/HouseworkApprovalView.swift +++ b/homete/Views/HouseworkApproval/HouseworkApprovalView.swift @@ -13,6 +13,7 @@ struct HouseworkApprovalView: View { @Environment(\.loginContext.account) var account @Environment(\.dismiss) var dismiss @CommonError var commonError + @LoadingState var loadingState @State var inputMessage = "" @@ -41,6 +42,7 @@ struct HouseworkApprovalView: View { .toolbar { navigationLeadingItem() } + .fullScreenLoadingIndicator(loadingState) } } } @@ -101,7 +103,7 @@ private extension HouseworkApprovalView { func actionButtonContent() -> some View { VStack(spacing: .space16) { Button { - Task { + loadingState.task { await tappedApproveButton() } } label: { @@ -110,12 +112,14 @@ private extension HouseworkApprovalView { } .subPrimaryButtonStyle() Button { - // TODO: 家事を未完了に戻す + loadingState.task { + await tappedReconfirmationButton() + } } label: { - Text("未完了に戻す") + Text("再確認してもらう") .frame(maxWidth: .infinity) } - .destructiveButtonStyle() + .primaryButtonStyle() } .disabled(inputMessage.isEmpty) } @@ -141,6 +145,24 @@ private extension HouseworkApprovalView { commonError = .init(error: error) } } + + func tappedReconfirmationButton() async { + + do { + + // TODO: ステータスを未完了に更新させる + try await houseworkListStore.approved( + target: item, + now: .now, + reviwer: account, + comment: inputMessage + ) + dismiss() + } catch { + + commonError = .init(error: error) + } + } } #Preview { From c9537c0441867766d263bbb0c336196ed7579055 Mon Sep 17 00:00:00 2001 From: stotic-dev Date: Sat, 31 Jan 2026 16:57:55 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E5=AE=B6=E4=BA=8B=E3=81=AE=E5=86=8D?= =?UTF-8?q?=E7=A2=BA=E8=AA=8D=E4=BE=9D=E9=A0=BC=E3=81=AE=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=81=AE=E4=B8=AD=E8=BA=AB=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Cohabitant/Housework/HouseworkItem.swift | 17 ++++++++ .../Housework/HouseworkListStore.swift | 42 ++++++++++++------- .../Housework/StoredAllHouseworkList.swift | 6 +-- .../Domain/PushNotificationContent.swift | 7 ++++ .../HouseworkApprovalView.swift | 3 +- .../HouseworkDetailView.swift | 2 +- 6 files changed, 56 insertions(+), 21 deletions(-) diff --git a/homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swift b/homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swift index 76dc04a5..81310b69 100644 --- a/homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swift +++ b/homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swift @@ -76,6 +76,23 @@ struct HouseworkItem: Identifiable, Equatable, Sendable, Hashable, Codable { ) } + func updateRejected(at now: Date, reviewer: String, comment: String) -> Self { + + return .init( + id: id, + indexedDate: indexedDate, + title: title, + point: point, + state: .incomplete, + executorId: executorId, + executedAt: executedAt, + reviewerId: reviewer, + approvedAt: now, + reviewerComment: comment, + expiredAt: expiredAt + ) + } + func updateIncomplete() -> Self { return .init( diff --git a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift index 3eb1259b..eba21ff2 100644 --- a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift +++ b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift @@ -80,12 +80,9 @@ final class HouseworkListStore { func requestReview(target: HouseworkItem, now: Date, executor: String) async throws { - let targetIndexedDate = target.indexedDate - let targetId = target.id - - guard let targetItem = items.item(targetId, targetIndexedDate) else { + guard let targetItem = items.item(target) else { - preconditionFailure("Not found target item(id: \(targetId), indexedDate: \(targetIndexedDate))") + preconditionFailure("Not found target item(\(target))") } let updatedItem = targetItem.updatePendingApproval(at: now, changer: executor) @@ -103,12 +100,9 @@ final class HouseworkListStore { func approved(target: HouseworkItem, now: Date, reviwer: Account, comment: String) async throws { - let targetIndexedDate = target.indexedDate - let targetId = target.id - - guard let targetItem = items.item(targetId, targetIndexedDate) else { + guard let targetItem = items.item(target) else { - preconditionFailure("Not found target item(id: \(targetId), indexedDate: \(targetIndexedDate))") + preconditionFailure("Not found target item(\(target))") } let updatedItem = targetItem.updateApproved(at: now, reviewer: reviwer.id, comment: comment) @@ -125,14 +119,32 @@ final class HouseworkListStore { } } - func returnToIncomplete(target: HouseworkItem, now: Date) async throws { + func rejected(target: HouseworkItem, now: Date, reviwer: Account, comment: String) async throws { + + guard let targetItem = items.item(target) else { + + preconditionFailure("Not found target item(\(target))") + } + + let updatedItem = targetItem.updateRejected(at: now, reviewer: reviwer.id, comment: comment) + try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) - let targetIndexedDate = target.indexedDate - let targetId = target.id + Task.detached { + + let notificationContent = PushNotificationContent.rejectedMessage( + reviwerName: reviwer.userName, + houseworkTitle: target.title, + comment: comment + ) + try await self.cohabitantPushNotificationClient.send(self.cohabitantId, notificationContent) + } + } + + func returnToIncomplete(target: HouseworkItem, now: Date) async throws { - guard let targetItem = items.item(targetId, targetIndexedDate) else { + guard let targetItem = items.item(target) else { - preconditionFailure("Not found target item(id: \(targetId), indexedDate: \(targetIndexedDate))") + preconditionFailure("Not found target item(\(target))") } let updatedItem = targetItem.updateIncomplete() diff --git a/homete/Model/Domain/Cohabitant/Housework/StoredAllHouseworkList.swift b/homete/Model/Domain/Cohabitant/Housework/StoredAllHouseworkList.swift index eeff99e5..0758c3bc 100644 --- a/homete/Model/Domain/Cohabitant/Housework/StoredAllHouseworkList.swift +++ b/homete/Model/Domain/Cohabitant/Housework/StoredAllHouseworkList.swift @@ -25,12 +25,12 @@ struct StoredAllHouseworkList: Equatable, Sendable { return .init(value: items) } - func item(_ id: String, _ indexedDate: HouseworkIndexedDate) -> HouseworkItem? { + func item(_ item: HouseworkItem) -> HouseworkItem? { guard let targetDayList = value.first( - where: { $0.metaData.indexedDate == indexedDate } + where: { $0.metaData.indexedDate == item.indexedDate } ), - let targetItem = targetDayList.items.first(where: { $0.id == id }) else { return nil } + let targetItem = targetDayList.items.first(where: { $0.id == item.id }) else { return nil } return targetItem } diff --git a/homete/Model/Domain/PushNotificationContent.swift b/homete/Model/Domain/PushNotificationContent.swift index f5f23fc4..0dcdbf4b 100644 --- a/homete/Model/Domain/PushNotificationContent.swift +++ b/homete/Model/Domain/PushNotificationContent.swift @@ -18,4 +18,11 @@ extension PushNotificationContent { message: comment ) } + + static func rejectedMessage(reviwerName: String, houseworkTitle: String, comment: String) -> Self { + return .init( + title: "「\(houseworkTitle)」を再確認してください", + message: comment + ) + } } diff --git a/homete/Views/HouseworkApproval/HouseworkApprovalView.swift b/homete/Views/HouseworkApproval/HouseworkApprovalView.swift index 6db8342a..e2306f32 100644 --- a/homete/Views/HouseworkApproval/HouseworkApprovalView.swift +++ b/homete/Views/HouseworkApproval/HouseworkApprovalView.swift @@ -150,8 +150,7 @@ private extension HouseworkApprovalView { do { - // TODO: ステータスを未完了に更新させる - try await houseworkListStore.approved( + try await houseworkListStore.rejected( target: item, now: .now, reviwer: account, diff --git a/homete/Views/HouseworkDetailView/HouseworkDetailView.swift b/homete/Views/HouseworkDetailView/HouseworkDetailView.swift index ae628ca3..72eac2e3 100644 --- a/homete/Views/HouseworkDetailView/HouseworkDetailView.swift +++ b/homete/Views/HouseworkDetailView/HouseworkDetailView.swift @@ -84,7 +84,7 @@ private extension HouseworkDetailView { func didChangeItems() { - guard let targetItem = houseworkListStore.items.item(item.id, item.indexedDate) else { return } + guard let targetItem = houseworkListStore.items.item(item) else { return } withAnimation { From f4f50ce572a57d67d4fca19fcd1bd6ed62e9d329 Mon Sep 17 00:00:00 2001 From: stotic-dev Date: Sat, 7 Feb 2026 09:36:30 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20Todo=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Domain/Cohabitant/Housework/HouseworkListStore.swift | 6 +----- homete/Model/Domain/PushNotificationContent.swift | 7 +++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift index eba21ff2..ea9ceed1 100644 --- a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift +++ b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift @@ -69,11 +69,7 @@ final class HouseworkListStore { Task.detached { - // TODO: PushNotificationContentにファクトリーメソッドを定義する - let notificationContent = PushNotificationContent( - title: "新しい家事が登録されました", - message: newItem.title - ) + let notificationContent = PushNotificationContent.addNewHouseworkItem(newItem.title) try await self.cohabitantPushNotificationClient.send(self.cohabitantId, notificationContent) } } diff --git a/homete/Model/Domain/PushNotificationContent.swift b/homete/Model/Domain/PushNotificationContent.swift index 0dcdbf4b..739b097d 100644 --- a/homete/Model/Domain/PushNotificationContent.swift +++ b/homete/Model/Domain/PushNotificationContent.swift @@ -12,6 +12,13 @@ struct PushNotificationContent: Equatable { extension PushNotificationContent { + static func addNewHouseworkItem(_ houseworkTitle: String) -> Self { + return .init( + title: "新しい家事が登録されました", + message: houseworkTitle + ) + } + static func approvedMessage(reviwerName: String, houseworkTitle: String, comment: String) -> Self { return .init( title: "\(reviwerName)が「\(houseworkTitle)」を承認しました!", From ba4bad173c76655bbffe3fbde668dafd063a0daf Mon Sep 17 00:00:00 2001 From: stotic-dev Date: Sat, 7 Feb 2026 09:53:03 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=E3=82=B9=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E3=82=B9=E6=9B=B4=E6=96=B0=E5=87=A6=E7=90=86=E3=82=92?= =?UTF-8?q?=E5=85=B1=E9=80=9A=E3=83=98=E3=83=AB=E3=83=91=E3=83=BC=E9=96=A2?= =?UTF-8?q?=E6=95=B0=E3=81=A7=E5=85=B1=E9=80=9A=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Housework/HouseworkListStore.swift | 109 ++++++++---------- .../Domain/PushNotificationContent.swift | 13 ++- .../HouseworkDetailActionContent.swift | 2 +- .../Housework/HouseworkListStoreTest.swift | 5 +- .../StoredAllHouseworkListTest.swift | 2 +- 5 files changed, 60 insertions(+), 71 deletions(-) diff --git a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift index ea9ceed1..0675b857 100644 --- a/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift +++ b/homete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swift @@ -75,76 +75,37 @@ final class HouseworkListStore { } func requestReview(target: HouseworkItem, now: Date, executor: String) async throws { - - guard let targetItem = items.item(target) else { - - preconditionFailure("Not found target item(\(target))") - } - - let updatedItem = targetItem.updatePendingApproval(at: now, changer: executor) - try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) - - Task.detached { - - let notificationContent = PushNotificationContent( - title: "確認が必要な家事があります", - message: "問題なければ「\(updatedItem.title)」の完了に感謝を伝えましょう!" - ) - try await self.cohabitantPushNotificationClient.send(self.cohabitantId, notificationContent) + + try await updateAndSave(target: target) { + $0.updatePendingApproval(at: now, changer: executor) + } notification: { + .requestReviewMessage(houseworkTitle: target.title) } } func approved(target: HouseworkItem, now: Date, reviwer: Account, comment: String) async throws { - - guard let targetItem = items.item(target) else { - - preconditionFailure("Not found target item(\(target))") - } - - let updatedItem = targetItem.updateApproved(at: now, reviewer: reviwer.id, comment: comment) - try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) - - Task.detached { - - let notificationContent = PushNotificationContent.approvedMessage( - reviwerName: reviwer.userName, - houseworkTitle: target.title, - comment: comment - ) - try await self.cohabitantPushNotificationClient.send(self.cohabitantId, notificationContent) + + try await updateAndSave(target: target) { + $0.updateApproved(at: now, reviewer: reviwer.id, comment: comment) + } notification: { + .approvedMessage(reviwerName: reviwer.userName, houseworkTitle: target.title, comment: comment) } } - + func rejected(target: HouseworkItem, now: Date, reviwer: Account, comment: String) async throws { - - guard let targetItem = items.item(target) else { - - preconditionFailure("Not found target item(\(target))") - } - - let updatedItem = targetItem.updateRejected(at: now, reviewer: reviwer.id, comment: comment) - try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) - - Task.detached { - - let notificationContent = PushNotificationContent.rejectedMessage( - reviwerName: reviwer.userName, - houseworkTitle: target.title, - comment: comment - ) - try await self.cohabitantPushNotificationClient.send(self.cohabitantId, notificationContent) + + try await updateAndSave(target: target) { + $0.updateRejected(at: now, reviewer: reviwer.id, comment: comment) + } notification: { + .rejectedMessage(reviwerName: reviwer.userName, houseworkTitle: target.title, comment: comment) } } - - func returnToIncomplete(target: HouseworkItem, now: Date) async throws { - - guard let targetItem = items.item(target) else { - - preconditionFailure("Not found target item(\(target))") + + func returnToIncomplete(target: HouseworkItem) async throws { + + try await updateAndSave(target: target) { + $0.updateIncomplete() } - - let updatedItem = targetItem.updateIncomplete() - try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) } func remove(_ target: HouseworkItem) async throws { @@ -154,10 +115,34 @@ final class HouseworkListStore { } private extension HouseworkListStore { - + func clear() async { - + await houseworkClient.removeListener(houseworkObserveKey) items.removeAll() } + + func updateAndSave( + target: HouseworkItem, + transform: (HouseworkItem) -> HouseworkItem, + notification: (() -> PushNotificationContent)? = nil + ) async throws { + + guard let targetItem = items.item(target) else { + preconditionFailure("Not found target item(\(target))") + } + + let updatedItem = transform(targetItem) + try await houseworkClient.insertOrUpdateItem(updatedItem, cohabitantId) + + if let notification { + let content = notification() + Task.detached { + try await self.cohabitantPushNotificationClient.send( + self.cohabitantId, + content + ) + } + } + } } diff --git a/homete/Model/Domain/PushNotificationContent.swift b/homete/Model/Domain/PushNotificationContent.swift index 739b097d..d8a01041 100644 --- a/homete/Model/Domain/PushNotificationContent.swift +++ b/homete/Model/Domain/PushNotificationContent.swift @@ -11,21 +11,28 @@ struct PushNotificationContent: Equatable { } extension PushNotificationContent { - + static func addNewHouseworkItem(_ houseworkTitle: String) -> Self { return .init( title: "新しい家事が登録されました", message: houseworkTitle ) } - + + static func requestReviewMessage(houseworkTitle: String) -> Self { + return .init( + title: "確認が必要な家事があります", + message: "問題なければ「\(houseworkTitle)」の完了に感謝を伝えましょう!" + ) + } + static func approvedMessage(reviwerName: String, houseworkTitle: String, comment: String) -> Self { return .init( title: "\(reviwerName)が「\(houseworkTitle)」を承認しました!", message: comment ) } - + static func rejectedMessage(reviwerName: String, houseworkTitle: String, comment: String) -> Self { return .init( title: "「\(houseworkTitle)」を再確認してください", diff --git a/homete/Views/HouseworkDetailView/SubViews/HouseworkDetailActionContent.swift b/homete/Views/HouseworkDetailView/SubViews/HouseworkDetailActionContent.swift index 698c53ee..2c4ce35f 100644 --- a/homete/Views/HouseworkDetailView/SubViews/HouseworkDetailActionContent.swift +++ b/homete/Views/HouseworkDetailView/SubViews/HouseworkDetailActionContent.swift @@ -103,7 +103,7 @@ private extension HouseworkDetailActionContent { do { - try await houseworkListStore.returnToIncomplete(target: item, now: .now) + try await houseworkListStore.returnToIncomplete(target: item) } catch { commonErrorContent = .init(error: error) diff --git a/hometeTests/Domain/Housework/HouseworkListStoreTest.swift b/hometeTests/Domain/Housework/HouseworkListStoreTest.swift index 6d3eb694..83a05626 100644 --- a/hometeTests/Domain/Housework/HouseworkListStoreTest.swift +++ b/hometeTests/Domain/Housework/HouseworkListStoreTest.swift @@ -223,10 +223,7 @@ struct HouseworkListStoreTest { // Act - try await store.returnToIncomplete( - target: inputHouseworkItem, - now: requestedAt - ) + try await store.returnToIncomplete(target: inputHouseworkItem) } } diff --git a/hometeTests/Domain/Housework/StoredAllHouseworkListTest.swift b/hometeTests/Domain/Housework/StoredAllHouseworkListTest.swift index 3b086791..7c58f494 100644 --- a/hometeTests/Domain/Housework/StoredAllHouseworkListTest.swift +++ b/hometeTests/Domain/Housework/StoredAllHouseworkListTest.swift @@ -59,7 +59,7 @@ struct StoredAllHouseworkListTest { calendar: .current ) - let actual = list.item(expectedItem.id, expectedItem.indexedDate) + let actual = list.item(expectedItem) #expect(actual == expectedItem) } From e576845d5bbc267434fd85f6547300cff005a206 Mon Sep 17 00:00:00 2001 From: stotic-dev Date: Sat, 7 Feb 2026 16:29:42 +0900 Subject: [PATCH 5/5] =?UTF-8?q?update:=20=E3=82=B9=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E3=82=B9=E6=9B=B4=E6=96=B0=E3=81=AE=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...workApprovalView_0-iPhone-16-Pro-Max.1.png | Bin 124580 -> 126501 bytes .../HouseworkApprovalView_0-iPhone-16.1.png | Bin 114997 -> 116662 bytes .../Housework/HouseworkListStoreTest.swift | 85 +++++++++++++++++- 3 files changed, 84 insertions(+), 1 deletion(-) diff --git a/hometeSnapshotTests/__Snapshots__/PreviewTests.generated/HouseworkApprovalView_0-iPhone-16-Pro-Max.1.png b/hometeSnapshotTests/__Snapshots__/PreviewTests.generated/HouseworkApprovalView_0-iPhone-16-Pro-Max.1.png index 9dc8af8857e3687e45b9bcac5e65970645d86684..57704c9f5589f4c3ca383e42b2cb0177f1a33fbe 100644 GIT binary patch delta 15841 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 delta 16016 zcmc(mXIxX+_V=Y1bu0){1a#0rrGrQ{QFIWMq9UOhP?|JBkR~JtRIETm6i`Z3G_=qO zQUl^ZD3Yj@VCX~$5CT#{gcSa(u!z|sGc($J4 z*NE$Rv@>$*=Z&cB1CZaY8gUGMRuDj=u1uIz&Oh|5Tfw(Vz4qfzZPjXF8{Py@fv^AJ z{(G0y+JgJi$Df?)yDP}fSdw�C)tszdVBatCkyGq(CEG%@+CYHnY3^TzNZFfqvVb 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 OL%*6I;LkI1y7+%&edfjh diff --git a/hometeSnapshotTests/__Snapshots__/PreviewTests.generated/HouseworkApprovalView_0-iPhone-16.1.png b/hometeSnapshotTests/__Snapshots__/PreviewTests.generated/HouseworkApprovalView_0-iPhone-16.1.png index 258766eb4a9bbff504ca779d323edb12147ae450..ed017c5d4e105e602c5d8f46c1e3ab35dfa387cb 100644 GIT binary patch delta 13442 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 delta 11276 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 ptNgD