-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathproject.pbxproj
3913 lines (3897 loc) · 241 KB
/
project.pbxproj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
1340A9EE1EE771EC0003EFFA /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1340A9ED1EE771EC0003EFFA /* Notifications.swift */; };
137330ED1E22BA3E0048F91E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137330EC1E22BA3E0048F91E /* AppDelegate.swift */; };
137330F21E22BA3E0048F91E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 137330F01E22BA3E0048F91E /* Main.storyboard */; };
137330F71E22BA3E0048F91E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 137330F51E22BA3E0048F91E /* LaunchScreen.storyboard */; };
139754BE1EDA8C4D006C82B8 /* HormonesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139754BD1EDA8C4D006C82B8 /* HormonesViewController.swift */; };
3397C04F9A077632D7814290 /* SitesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C609A733531CFC1C82A1 /* SitesTable.swift */; };
3397C05456061252A20D0EC4 /* HormoneDetailValueTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C44F655B05A9959614A9 /* HormoneDetailValueTypes.swift */; };
3397C0686E3133FEE6967ACB /* PDAlertController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C8B360B6B1582B2DC97C /* PDAlertController.swift */; };
3397C115FF936D6A9736EE74 /* SingleValueTypeKeyStorables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C0B64890296742265A9E /* SingleValueTypeKeyStorables.swift */; };
3397C13BC1CDD2621E6E239C /* DeliveryMethodMutationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C1C060A400B13F4C03DC /* DeliveryMethodMutationAlert.swift */; };
3397C23AD8485783F292353A /* PDBadgeButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CDE752EBD157A3E2CDE7 /* PDBadgeButton.swift */; };
3397C254B10A052A62F5E011 /* PDBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C15569EB6EC92C438D45 /* PDBadge.swift */; };
3397C25AE996E55A7FA08DCC /* TableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C657E8FDF0438CBDF5E1 /* TableCell.swift */; };
3397C270073E6E9F1E9E1E6D /* SettingsControls.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C53545234920B507958D /* SettingsControls.swift */; };
3397C27B78F0991995D3FF47 /* MOEntities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C9451ED30B689F8D7E30 /* MOEntities.swift */; };
3397C2EBC38271B62A7AAAA7 /* HormoneSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C26B67F3687429A274AE /* HormoneSchedule.swift */; };
3397C34B5CDE52B87B10C481 /* PatchDataLoggingPlayground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C54DDFA7DF1E9C1EDECA /* PatchDataLoggingPlayground.swift */; };
3397C35C32581F075D01A3FD /* HormoneDataSharer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C9E6D36B45D518F0CB35 /* HormoneDataSharer.swift */; };
3397C39300E0DC7A3FF82DE8 /* UINavigationController+PatchDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CA5E6F3ED61A66763E14 /* UINavigationController+PatchDay.swift */; };
3397C39DD399B0CDEF5AFA56 /* SitesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CA49B0781DCE2F7B96F8 /* SitesViewModel.swift */; };
3397C3B21DCF1D12D472CD83 /* QuantityMutationAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C76B77C82500F8608543 /* QuantityMutationAlert.swift */; };
3397C3B94D24638CA4091B71 /* DateFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C53074C244CBAB4010FD /* DateFactoryTests.swift */; };
3397C3D0A67271CA2D73286D /* PDAppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C46296174AEBD22741E7 /* PDAppConstants.swift */; };
3397C3EB83CDE6EE91871810 /* PDIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C57BEA067330611A888C /* PDIcons.swift */; };
3397C3EF27D567221BCBBAA3 /* SiteImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C188BBF8844E19D270D0 /* SiteImages.swift */; };
3397C428EABB25D9695B2973 /* Navigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C3234C7DA4BD1A600000 /* Navigation.swift */; };
3397C441E9F4A31C92F3A51F /* SiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C69A91001F8810A301BD /* SiteCell.swift */; };
3397C464B0025D220CD786CF /* PDDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C91D80B0294A38B737EC /* PDDateFormatter.swift */; };
3397C48DA7DB4EB8DD595319 /* SettingsAndSites.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3397CB53F54E67EA5276E7CD /* SettingsAndSites.storyboard */; };
3397C4B3801856B9375CDA89 /* PDGenericAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C7499209AE8D1F2DC6AC /* PDGenericAlert.swift */; };
3397C4B72A3807FC1B7437E3 /* NewSiteAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CADC885E37C6B08B5EC8 /* NewSiteAlert.swift */; };
3397C4C2E415FD8B9097A348 /* UIKit+PatchDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CB4BB5AA9C4FB0948A47 /* UIKit+PatchDay.swift */; };
3397C543630D8BC42FD09ABA /* PillDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C1700FB67189DA4EA40C /* PillDetailViewModel.swift */; };
3397C57D9D9E5531F14F6806 /* PillDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C98CDE78055C4967F9FB /* PillDetailViewController.swift */; };
3397C6153828AAF32DFBA6B2 /* PillsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C6E2BC39EA33203730DE /* PillsViewModel.swift */; };
3397C64D6580DA3DDD3B95A6 /* EntitiesSaver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CFBE9BB2F360BA64E42E /* EntitiesSaver.swift */; };
3397C668E73AC0792D0D161E /* PillsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C87675CCA6733B03EBB1 /* PillsViewController.swift */; };
3397C6FCF093000DD580D593 /* DateFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C77E21A14AB79431233D /* DateFactory.swift */; };
3397C710366F6DF03F4C9BE7 /* PillsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C5E1286D48758418CA9A /* PillsTable.swift */; };
3397C77AC63E9C7EB9409EB4 /* TableViewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C0FE3BE44A439FAED92F /* TableViewWrapper.swift */; };
3397C7AA5FCCF3F70851A96C /* PillCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C4F5D8AADC9C5B2831CA /* PillCell.swift */; };
3397C7E5E191E210E1B8FA85 /* PDObjectLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CEF0E64C576123005F01 /* PDObjectLogger.swift */; };
3397C85BF35A4285872BE0CD /* TabReflector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CAAF145FA5B0AF1BF60F /* TabReflector.swift */; };
3397C8910EA1D406BFE38240 /* EntitiesLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C764E55128FF40F87208 /* EntitiesLogger.swift */; };
3397C8BC572ADE0631DBFC1B /* Date+PatchDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C9AF85534D3884106598 /* Date+PatchDay.swift */; };
3397C8FDF0447D23136C68C4 /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C7DB5907E297804FE42B /* SettingsViewModel.swift */; };
3397C9103C3BF3CE2A887203 /* SettingsSaver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CBAEECDFB0997BB88263 /* SettingsSaver.swift */; };
3397C9CEB7D0A26B46F66F4F /* ArrayExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CCE3EDABEB6409353DBD /* ArrayExtensionTests.swift */; };
3397CA6214D86DA38FC63503 /* SiteViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C38F2F374263D15AFAAD /* SiteViewFactory.swift */; };
3397CA689C9CC82D9E5BC09C /* HormoneDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C83CA26AB9993A1C43D2 /* HormoneDetailViewController.swift */; };
3397CB235DFF3871467CD47F /* DisclaimerAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C7428C516F8FDBD1253E /* DisclaimerAlert.swift */; };
3397CB2B0008632768A8CFAF /* MockSiteSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C86680B1CBEBCAA0DC3E /* MockSiteSchedule.swift */; };
3397CB4DDE8099EDD871BBB7 /* SettingsReflector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CB18E77D8048782F165F /* SettingsReflector.swift */; };
3397CBB6CDCCE9DD88C112BD /* SiteDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CE95ADAC03F0AF8D6220 /* SiteDetailViewModel.swift */; };
3397CBBD2DC40D8316E535A8 /* PDDateFormatterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CC73DBC50CB53940CA1B /* PDDateFormatterTests.swift */; };
3397CBD8448ED3386B48E90D /* SiteValueTypeFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C2EC084F30B801DB0098 /* SiteValueTypeFactory.swift */; };
3397CC13D997D7B96EB62086 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C5BF42C6720C632A84B3 /* SettingsViewController.swift */; };
3397CC5CF788FF31C6741016 /* Foundation+PatchDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C6F5443D715A5E3FFCCE /* Foundation+PatchDay.swift */; };
3397CCB077DDE1351B04EBBC /* PDLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C6C20942B8D7C25C1A85 /* PDLog.swift */; };
3397CCD131DBDF43FB2B0A5B /* ExpirationIntervalUDTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C155FE16DE4D7AFF6ECE /* ExpirationIntervalUDTests.swift */; };
3397CDA5B6056A68141649EF /* SettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CF33CEB0E43BBF273BDB /* SettingsTests.swift */; };
3397CDCED90F1674FD98CC06 /* DateExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C1C5401F606963550A9A /* DateExtensionTests.swift */; };
3397CE0D3255A3D28540FD6F /* PDViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CDDC25322F027DE45D6A /* PDViewFactory.swift */; };
3397CEAA73285A8C81B07DFF /* HormoneDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C92B22AD98FD011DCE92 /* HormoneDetailViewModel.swift */; };
3397CEAD0DAC7BBEE355ED19 /* HormonesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C49932A88441EDBC9663 /* HormonesTable.swift */; };
3397CF0C4FF37F05832E75B0 /* AlertStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C3FEA855E6D94AB288AD /* AlertStrings.swift */; };
3397CF6F00932FC00BF11B79 /* SiteDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CDD5E1C3F60EAEEFE82B /* SiteDetailViewController.swift */; };
847678FA283C1933004E6A7E /* HormoneDetailUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847678F9283C1933004E6A7E /* HormoneDetailUITest.swift */; };
847678FC283C1948004E6A7E /* PDUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847678FB283C1948004E6A7E /* PDUITest.swift */; };
84991BD828497247001C4B8D /* PillDetailUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84991BD728497247001C4B8D /* PillDetailUITest.swift */; };
84991BDA2849730A001C4B8D /* PillsUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84991BD92849730A001C4B8D /* PillsUITest.swift */; };
84991BDC28497514001C4B8D /* HormonesUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84991BDB28497514001C4B8D /* HormonesUITest.swift */; };
84991BDE28497551001C4B8D /* SettingsUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84991BDD28497551001C4B8D /* SettingsUITest.swift */; };
84B4E25F2841958100256A18 /* SitesUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B4E25E2841958100256A18 /* SitesUITests.swift */; };
84B4E26128419CF000256A18 /* SiteDetailUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B4E26028419CF000256A18 /* SiteDetailUITests.swift */; };
9D003E9A23231E880070C964 /* PDObjectified.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D003E9923231E880070C964 /* PDObjectified.swift */; };
9D003E9F232878CE0070C964 /* PatchDataSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D003E9E232878CE0070C964 /* PatchDataSDK.swift */; };
9D003EA92331DE390070C964 /* CoreDataStackWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D003EA82331DE390070C964 /* CoreDataStackWrapper.swift */; };
9D003EC1233599A90070C964 /* Schedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D003EC0233599A90070C964 /* Schedule.swift */; };
9D003EC323359B2D0070C964 /* PDCoreDataWrapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D003EC223359B2D0070C964 /* PDCoreDataWrapping.swift */; };
9D0CE8BD2635DE6600B3FCB7 /* PillTimesQuotient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CE8BC2635DE6600B3FCB7 /* PillTimesQuotient.swift */; };
9D0CE8E62635FF3D00B3FCB7 /* PillTimesQuotientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CE8DD2635FF1500B3FCB7 /* PillTimesQuotientTests.swift */; };
9D0CE90726362E6600B3FCB7 /* PillTimesTakenTodayList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CE90626362E6600B3FCB7 /* PillTimesTakenTodayList.swift */; };
9D0CE92626363AF700B3FCB7 /* PillTodayLastTakenListTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CE91626363ACC00B3FCB7 /* PillTodayLastTakenListTests.swift */; };
9D1908CF2460C2F500E95244 /* HormoneStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF47E2234D6EE2005AA467 /* HormoneStrings.swift */; };
9D1908D12460C41E00E95244 /* HormoneStringsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C98618024DF7B376CFBB /* HormoneStringsTests.swift */; };
9D1908D62466F5AB00E95244 /* UserDefaultsWriterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908D52466F5AB00E95244 /* UserDefaultsWriterTests.swift */; };
9D1908D82466F66000E95244 /* PDUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908D72466F66000E95244 /* PDUserDefaults.swift */; };
9D1908DC2466FD7D00E95244 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908DB2466FD7D00E95244 /* MockUserDefaults.swift */; };
9D1908DF2468315F00E95244 /* SettingsSaverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908DE2468315F00E95244 /* SettingsSaverTests.swift */; };
9D1908E1246834EF00E95244 /* MockDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908E0246834EF00E95244 /* MockDependencies.swift */; };
9D1908E3246835E900E95244 /* DependenciesProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908E2246835E900E95244 /* DependenciesProtocol.swift */; };
9D1908E62468369700E95244 /* MockTabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908E52468369700E95244 /* MockTabs.swift */; };
9D1908E82468375200E95244 /* MockNotifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908E72468375200E95244 /* MockNotifications.swift */; };
9D1908EA2468388B00E95244 /* MockNav.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908E92468388B00E95244 /* MockNav.swift */; };
9D1908EF24684B5400E95244 /* SettingsReflectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908EE24684B5400E95244 /* SettingsReflectorTests.swift */; };
9D1908F124684BC900E95244 /* SettingsTestHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908F024684BC900E95244 /* SettingsTestHelper.swift */; };
9D1908F32468564100E95244 /* SettingsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908F22468564100E95244 /* SettingsViewModelTests.swift */; };
9D1908F6247029E800E95244 /* PDAssert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1908F5247029E800E95244 /* PDAssert.swift */; };
9D1BC57E2277F45F00552BC1 /* SettingsOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1BC57D2277F45F00552BC1 /* SettingsOptions.swift */; };
9D1C2999236D2CB800488564 /* UserDefaultsWriteHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1C2998236D2CB800488564 /* UserDefaultsWriteHandling.swift */; };
9D21A5C923860FBF00EC2A03 /* CodeBehindDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D21A5C823860FBF00EC2A03 /* CodeBehindDependencies.swift */; };
9D3E4C7E22B5AEA400C82DAE /* ExpiredHormoneOvernightNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E4C7D22B5AEA400C82DAE /* ExpiredHormoneOvernightNotification.swift */; };
9D3E4C8022B5AFC500C82DAE /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E4C7F22B5AFC500C82DAE /* Notification.swift */; };
9D3E4C8222B5B47E00C82DAE /* DuePillNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E4C8122B5B47E00C82DAE /* DuePillNotification.swift */; };
9D3E4C8522B5DEB300C82DAE /* PDTitleStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E4C8322B5DD9F00C82DAE /* PDTitleStrings.swift */; };
9D3E4C9622B730B500C82DAE /* ActionStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E4C9522B730B500C82DAE /* ActionStrings.swift */; };
9D3E653C24A8EEB00000D079 /* PillsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E653B24A8EEB00000D079 /* PillsViewModelTests.swift */; };
9D3E653F24A8F4CD0000D079 /* SiteImagesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D3E653E24A8F4CD0000D079 /* SiteImagesTests.swift */; };
9D42116925D4B34100087CDD /* PillAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42115225D4B2BD00087CDD /* PillAttributes.swift */; };
9D42125225D60BBB00087CDD /* PillExpirationInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42125025D60BBB00087CDD /* PillExpirationInterval.swift */; };
9D42125325D60BBB00087CDD /* PillExpirationIntervalXDays.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42125125D60BBB00087CDD /* PillExpirationIntervalXDays.swift */; };
9D42127D25D60E0700087CDD /* PillAttributeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42125C25D60BFD00087CDD /* PillAttributeTests.swift */; };
9D42128C25D60E1200087CDD /* PillExpirationIntervalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42125D25D60BFD00087CDD /* PillExpirationIntervalTests.swift */; };
9D42129B25D60E1A00087CDD /* PillExpirationIntervalXDaysTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42125B25D60BFD00087CDD /* PillExpirationIntervalXDaysTests.swift */; };
9D468E39255C393A00FDD03C /* HormonesTableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D468E30255C392700FDD03C /* HormonesTableTests.swift */; };
9D4D05F1256F61D20037A2E6 /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
9D53A68C25116BA200D4D712 /* NotificationStringTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D53A68B25116BA200D4D712 /* NotificationStringTests.swift */; };
9D59F8B825028AD900C0324E /* DateIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D59F8B725028AD900C0324E /* DateIntegrationTests.swift */; };
9D59F8BB25056E8B00C0324E /* NowProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D59F8BA25056E8B00C0324E /* NowProtocol.swift */; };
9D59F8BD25056EC500C0324E /* PDNow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D59F8BC25056EC500C0324E /* PDNow.swift */; };
9D59F8BF250570CC00C0324E /* MockNow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D59F8BE250570CC00C0324E /* MockNow.swift */; };
9D5EF4252655EAF300F562A8 /* SettingPickerActivator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5EF4242655EAF300F562A8 /* SettingPickerActivator.swift */; };
9D5EF4282655ED7E00F562A8 /* SettingsPickerActivatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5EF4262655ED7000F562A8 /* SettingsPickerActivatorTests.swift */; };
9D5EF42B265AD1FF00F562A8 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D6E9B36245DBF84003BBCC9 /* XCTest.framework */; };
9D5EF42C265AD1FF00F562A8 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9D6E9B36245DBF84003BBCC9 /* XCTest.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9D5EF431265AEB4D00F562A8 /* ChangeHormoneCommandTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5EF42F265AEB0100F562A8 /* ChangeHormoneCommandTests.swift */; };
9D5EF433265B2D6F00F562A8 /* UserDefaultsWriteHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5EF432265B2D6F00F562A8 /* UserDefaultsWriteHandlerTests.swift */; };
9D5EF435265B2ED800F562A8 /* MockKeyStorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D5EF434265B2ED800F562A8 /* MockKeyStorable.swift */; };
9D618790263D927500B284CF /* PillCellActionAlertTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D61878F263D927500B284CF /* PillCellActionAlertTests.swift */; };
9D618792263D949A00B284CF /* PillCellActionAlertHandlersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D618791263D949A00B284CF /* PillCellActionAlertHandlersTests.swift */; };
9D618793263D9E4E00B284CF /* Pill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BAD231D89AD001FC03C /* Pill.swift */; };
9D618796263DA5DD00B284CF /* PlaceholderStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D618794263DA54000B284CF /* PlaceholderStrings.swift */; };
9D618798263EF39800B284CF /* XDaysUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D618797263EF39800B284CF /* XDaysUD.swift */; };
9D61879A263F2CF900B284CF /* SettingsViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D618799263F2CF900B284CF /* SettingsViewModelProtocol.swift */; };
9D61879D263F2DD000B284CF /* SettingsPickerViewing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D61879C263F2DD000B284CF /* SettingsPickerViewing.swift */; };
9D6187A0263F3E5C00B284CF /* SettingsPickerList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D61879E263F3E0600B284CF /* SettingsPickerList.swift */; };
9D6187A3263F449E00B284CF /* XDaysUDTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187A1263F444800B284CF /* XDaysUDTests.swift */; };
9D6187A6263F643700B284CF /* SettingsPickerListTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187A4263F643100B284CF /* SettingsPickerListTests.swift */; };
9D6187AD2640BDE200B284CF /* SettingsReflecting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187AC2640BDE200B284CF /* SettingsReflecting.swift */; };
9D6187AF2640BE3200B284CF /* MockSettingsReflector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187AE2640BE3200B284CF /* MockSettingsReflector.swift */; };
9D6187B22642072700B284CF /* SettingsPickerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187B02642072000B284CF /* SettingsPickerTests.swift */; };
9D6187B52642328C00B284CF /* SettingsControlsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187B32642328300B284CF /* SettingsControlsTests.swift */; };
9D6187B826437B5F00B284CF /* ExpirationIntervalSettingsPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187B626437B3C00B284CF /* ExpirationIntervalSettingsPicker.swift */; };
9D6187BE26437F0800B284CF /* MockSettingsPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6187A8263F66DB00B284CF /* MockSettingsPicker.swift */; };
9D69B1DC256C7B2200213E79 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D69B1DB256C7B2200213E79 /* WidgetKit.framework */; };
9D69B1DE256C7B2200213E79 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D69B1DD256C7B2200213E79 /* SwiftUI.framework */; };
9D69B1E1256C7B2200213E79 /* NextHormoneWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D69B1E0256C7B2200213E79 /* NextHormoneWidget.swift */; };
9D69B1E4256C7B2400213E79 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9D69B1E3256C7B2400213E79 /* Assets.xcassets */; };
9D69B1EA256C7B2400213E79 /* NextHormoneWidget.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 9D69B1DA256C7B2200213E79 /* NextHormoneWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
9D6D786923FE270100FF150C /* NavigationHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CAEE96FD2E7313A42BA2 /* NavigationHandling.swift */; };
9D6D786D23FE2BAD00FF150C /* PillCellActionHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6D786C23FE2BAD00FF150C /* PillCellActionHandlers.swift */; };
9D6D786F23FE2DE200FF150C /* PillCellActionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6D786E23FE2DE200FF150C /* PillCellActionHandling.swift */; };
9D6DB7D22405FED600C00711 /* PDUserDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7D12405FED600C00711 /* PDUserDefault.swift */; };
9D6DB7DB2405FEF200C00711 /* QuantityUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7D72405FEF200C00711 /* QuantityUD.swift */; };
9D6DB7DC2405FEF200C00711 /* DeliveryMethodUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7D82405FEF200C00711 /* DeliveryMethodUD.swift */; };
9D6DB7DE2405FEF200C00711 /* ExpirationIntervalUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7DA2405FEF200C00711 /* ExpirationIntervalUD.swift */; };
9D6DB7E02405FFD300C00711 /* SimpleSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7DF2405FFD300C00711 /* SimpleSettings.swift */; };
9D6DB7E22406002B00C00711 /* SettingsPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6DB7E12406002B00C00711 /* SettingsPicker.swift */; };
9D6E9AD624562155003BBCC9 /* MockNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AD524562155003BBCC9 /* MockNotificationCenter.swift */; };
9D6E9AD824562192003BBCC9 /* PDNotificationCenterDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA3A900233AFD4D00DAF350 /* PDNotificationCenterDelegate.swift */; };
9D6E9AD924562194003BBCC9 /* NotificationScheduling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA3A904233C4B6300DAF350 /* NotificationScheduling.swift */; };
9D6E9ADA2456219A003BBCC9 /* NotificationProducing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D226983237506BF00828B5F /* NotificationProducing.swift */; };
9D6E9ADC24562264003BBCC9 /* PillNotificationActionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF47DE234C329F005AA467 /* PillNotificationActionHandling.swift */; };
9D6E9ADF24562272003BBCC9 /* PDNotificationProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF13D0229CC601001E8A8A /* PDNotificationProtocol.swift */; };
9D6E9AE42456231C003BBCC9 /* NotificationFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C3F89940959F98971EA3 /* NotificationFactory.swift */; };
9D6E9AE6245623AA003BBCC9 /* PDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AE5245623AA003BBCC9 /* PDTO.swift */; };
9D6E9AF92456256F003BBCC9 /* NotificationsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AF82456256F003BBCC9 /* NotificationsTests.swift */; };
9D6E9AFB245633DC003BBCC9 /* MockSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AFA245633DC003BBCC9 /* MockSDK.swift */; };
9D6E9AFD24563454003BBCC9 /* MockSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AFC24563454003BBCC9 /* MockSettings.swift */; };
9D6E9AFF2456376B003BBCC9 /* MockPillSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9AFE2456376B003BBCC9 /* MockPillSchedule.swift */; };
9D6E9B00245643B7003BBCC9 /* MockHormoneSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C3158191BB31BFA38310 /* MockHormoneSchedule.swift */; };
9D6E9B0224564501003BBCC9 /* MockBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B0124564501003BBCC9 /* MockBadge.swift */; };
9D6E9B1824564A2F003BBCC9 /* MockNotificationFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B1724564A2F003BBCC9 /* MockNotificationFactory.swift */; };
9D6E9B212457A5A5003BBCC9 /* ExpiredHormoneNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B202457A5A5003BBCC9 /* ExpiredHormoneNotificationTests.swift */; };
9D6E9B23245CD8DF003BBCC9 /* ExpiredHormoneOvernightNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B22245CD8DF003BBCC9 /* ExpiredHormoneOvernightNotificationTests.swift */; };
9D6E9B27245CDAF8003BBCC9 /* DuePillNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B26245CDAF8003BBCC9 /* DuePillNotificationTests.swift */; };
9D6E9B2B245DB2ED003BBCC9 /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
9D6E9B2D245DB413003BBCC9 /* PillNotificationActionHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B2C245DB413003BBCC9 /* PillNotificationActionHandlerTests.swift */; };
9D6E9B2E245DBD45003BBCC9 /* PatchData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B480EE1C21CC7553002C2238 /* PatchData.framework */; };
9D6E9B2F245DBD45003BBCC9 /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
9D6E9B30245DBD45003BBCC9 /* PDTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D8A981123C573B3004E20FE /* PDTest.framework */; };
9D6E9B33245DBD5B003BBCC9 /* PDTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D8A981123C573B3004E20FE /* PDTest.framework */; };
9D6E9B34245DBD65003BBCC9 /* PDTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D8A981123C573B3004E20FE /* PDTest.framework */; };
9D6E9B35245DBD6B003BBCC9 /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
9D6E9B37245DBF84003BBCC9 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D6E9B36245DBF84003BBCC9 /* XCTest.framework */; };
9D6E9B3B245DCD5E003BBCC9 /* HormoneDetailViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6E9B3A245DCD5E003BBCC9 /* HormoneDetailViewModelTests.swift */; };
9D788733254E0CC500DC0F6D /* PDCommandFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788712254DE23300DC0F6D /* PDCommandFactory.swift */; };
9D78873C254E0CD400DC0F6D /* ChangeHormoneCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78873B254E0CD400DC0F6D /* ChangeHormoneCommand.swift */; };
9D788745254E0D0300DC0F6D /* PDCommandProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788744254E0D0300DC0F6D /* PDCommandProtocol.swift */; };
9D788755255390FA00DC0F6D /* SiteImageHistoryManaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788754255390FA00DC0F6D /* SiteImageHistoryManaging.swift */; };
9D78876C2553938600DC0F6D /* SiteImageRecording.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78876B2553938600DC0F6D /* SiteImageRecording.swift */; };
9D78877C2553993200DC0F6D /* MockSiteImageRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78877B2553993200DC0F6D /* MockSiteImageRecorder.swift */; };
9D788785255399EC00DC0F6D /* MockSiteImageHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788784255399EC00DC0F6D /* MockSiteImageHistory.swift */; };
9D788795255843EB00DC0F6D /* HormonesTableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788794255843EB00DC0F6D /* HormonesTableProtocol.swift */; };
9D7887A52558453A00DC0F6D /* HormoneCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887A42558453A00DC0F6D /* HormoneCellProtocol.swift */; };
9D7887AE2558455B00DC0F6D /* HormonesViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887AD2558455B00DC0F6D /* HormonesViewModelProtocol.swift */; };
9D7887B82558460F00DC0F6D /* HormoneCellViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887B72558460F00DC0F6D /* HormoneCellViewModelProtocol.swift */; };
9D7887C9255851CF00DC0F6D /* SitesTableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887C8255851CF00DC0F6D /* SitesTableProtocol.swift */; };
9D7887D92558527600DC0F6D /* SiteCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887D82558527600DC0F6D /* SiteCellProtocol.swift */; };
9D7887E22558544800DC0F6D /* SitesViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887E12558544800DC0F6D /* SitesViewModelProtocol.swift */; };
9D7887EB2558563D00DC0F6D /* SiteCellViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887EA2558563D00DC0F6D /* SiteCellViewModelProtocol.swift */; };
9D7887F52558569C00DC0F6D /* PillCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7887F42558569C00DC0F6D /* PillCellProtocol.swift */; };
9D7888052558575D00DC0F6D /* PillsTableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888042558575D00DC0F6D /* PillsTableProtocol.swift */; };
9D788815255857B200DC0F6D /* PillCellViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D788814255857B200DC0F6D /* PillCellViewModelProtocol.swift */; };
9D78881E255857F700DC0F6D /* PillsViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78881D255857F700DC0F6D /* PillsViewModelProtocol.swift */; };
9D78883525585E2A00DC0F6D /* PillDetailViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78883425585E2A00DC0F6D /* PillDetailViewModelProtocol.swift */; };
9D78883E25585F1700DC0F6D /* SiteDetailViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78883D25585F1700DC0F6D /* SiteDetailViewModelProtocol.swift */; };
9D78884725585FAF00DC0F6D /* HormoneDetailViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78884625585FAF00DC0F6D /* HormoneDetailViewModelProtocol.swift */; };
9D7888642558624D00DC0F6D /* SiteImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C77F4C999C35C9771AFC /* SiteImagePicker.swift */; };
9D78887B255862C000DC0F6D /* SiteDetailConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C429190FB7BFA67C7CB2 /* SiteDetailConstants.swift */; };
9D7888832558636800DC0F6D /* ImageResizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CA12B098B78F4EF41902 /* ImageResizer.swift */; };
9D78889A25586CBC00DC0F6D /* MockHormonesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78889925586CBC00DC0F6D /* MockHormonesTable.swift */; };
9D7888A3255870D100DC0F6D /* MockSitesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888A2255870D100DC0F6D /* MockSitesTable.swift */; };
9D7888AC2558727A00DC0F6D /* MockSiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888AB2558727A00DC0F6D /* MockSiteCell.swift */; };
9D7888BF2558738300DC0F6D /* MockPillsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888BE2558738300DC0F6D /* MockPillsTable.swift */; };
9D7888CF255873CB00DC0F6D /* MockPillCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888CE255873CB00DC0F6D /* MockPillCell.swift */; };
9D7888D82558781100DC0F6D /* MockHormoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7888D72558781100DC0F6D /* MockHormoneCell.swift */; };
9D78A9E12386354F00058AD9 /* PDConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D78A9E02386354F00058AD9 /* PDConstants.swift */; };
9D7B0A79226CCB9B0089E1CD /* UserDefaultsWriteHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7B0A78226CCB9B0089E1CD /* UserDefaultsWriteHandler.swift */; };
9D7F1444240C4486001577A1 /* ChoiceSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D7F1443240C4486001577A1 /* ChoiceSetting.swift */; };
9D7F1445240C961F001577A1 /* QuantityMutating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C98C912D77BEE430431A /* QuantityMutating.swift */; };
9D8A97F823AFCCE5004E20FE /* EntityAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C9489AA2464C530A78F2 /* EntityAdapter.swift */; };
9D8A97FA23B28EAA004E20FE /* EntityStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A97F923B28EAA004E20FE /* EntityStore.swift */; };
9D8A97FD23B28F6E004E20FE /* HormoneStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A97FC23B28F6E004E20FE /* HormoneStore.swift */; };
9D8A97FF23B290BC004E20FE /* PillStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A97FE23B290BC004E20FE /* PillStore.swift */; };
9D8A980123B290C4004E20FE /* SiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A980023B290C4004E20FE /* SiteStore.swift */; };
9D8A980B23C56121004E20FE /* HormoneDataSharing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C4E72B97FAB79FE3636F /* HormoneDataSharing.swift */; };
9D8A981523C573B3004E20FE /* PDTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D8A981323C573B3004E20FE /* PDTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
9D8A981D23C57448004E20FE /* PDMocking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A981C23C57448004E20FE /* PDMocking.swift */; };
9D8A981F23C57473004E20FE /* MockHormoneDataSharer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A981E23C57473004E20FE /* MockHormoneDataSharer.swift */; };
9D8A982223C57499004E20FE /* MockEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982123C57499004E20FE /* MockEntity.swift */; };
9D8A982423C574B0004E20FE /* MockCoreDataStackWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982323C574B0004E20FE /* MockCoreDataStackWrapper.swift */; };
9D8A982723C574F5004E20FE /* MockUserDefaultsWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982623C574F5004E20FE /* MockUserDefaultsWriter.swift */; };
9D8A982A23C7EED0004E20FE /* HormoneStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982923C7EED0004E20FE /* HormoneStoring.swift */; };
9D8A982C23C7EEDA004E20FE /* PillStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982B23C7EEDA004E20FE /* PillStoring.swift */; };
9D8A982E23C7EEE4004E20FE /* SiteStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A982D23C7EEE4004E20FE /* SiteStoring.swift */; };
9D8A983023C7F736004E20FE /* PDBadgeReflective.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9946CC2377266C00CF3C96 /* PDBadgeReflective.swift */; };
9D8A983523C7F8A9004E20FE /* MockHormoneStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A983423C7F8A9004E20FE /* MockHormoneStore.swift */; };
9D8A983A23C7FD1F004E20FE /* MockHormone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A983923C7FD1F004E20FE /* MockHormone.swift */; };
9D8A983C23CBC071004E20FE /* MockSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A983B23CBC071004E20FE /* MockSite.swift */; };
9D8A983F23CBF384004E20FE /* HormoneTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A983E23CBF384004E20FE /* HormoneTests.swift */; };
9D8A984223CEAA7E004E20FE /* SitesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CFFF305F5543E4A156A3 /* SitesViewController.swift */; };
9D8A984423CFFA6D004E20FE /* PillScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984323CFFA6D004E20FE /* PillScheduleTests.swift */; };
9D8A984723D13052004E20FE /* SiteScheduledTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984623D13052004E20FE /* SiteScheduledTests.swift */; };
9D8A984923D1308A004E20FE /* MockPillStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984823D1308A004E20FE /* MockPillStore.swift */; };
9D8A984B23D13093004E20FE /* MockSiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984A23D13093004E20FE /* MockSiteStore.swift */; };
9D8A984D23D132EC004E20FE /* MockPatchDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984C23D132EC004E20FE /* MockPatchDataStore.swift */; };
9D8A984F23D13613004E20FE /* PDObjectStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A984E23D13613004E20FE /* PDObjectStoring.swift */; };
9D8A985123D160EB004E20FE /* MockPill.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985023D160EB004E20FE /* MockPill.swift */; };
9D8A985323D1682E004E20FE /* SiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985223D1682E004E20FE /* SiteTests.swift */; };
9D8A985523D1683A004E20FE /* PillTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985423D1683A004E20FE /* PillTests.swift */; };
9D8A985A23D16A17004E20FE /* PillDataSharer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985923D16A17004E20FE /* PillDataSharer.swift */; };
9D8A985D23D3B9A6004E20FE /* MockPillDataSharer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985C23D3B9A6004E20FE /* MockPillDataSharer.swift */; };
9D8A985F23D3B9EC004E20FE /* PillDataSharing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A985E23D3B9EC004E20FE /* PillDataSharing.swift */; };
9D8A986123D3BAF3004E20FE /* DataSharer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A986023D3BAF3004E20FE /* DataSharer.swift */; };
9D8A986323D3BAFE004E20FE /* UserDefaultsProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A986223D3BAFE004E20FE /* UserDefaultsProtocol.swift */; };
9D8A986523D95941004E20FE /* PillTestsUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A986423D95941004E20FE /* PillTestsUtil.swift */; };
9D8AF51726B8A82E0037BFAA /* TestDateFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8AF51626B8A82E0037BFAA /* TestDateFactory.swift */; };
9D8AF51926BB6F050037BFAA /* PillTestFixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8AF51826BB6F050037BFAA /* PillTestFixtures.swift */; };
9D8AF51D26BF0B8B0037BFAA /* PillXDaysIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8AF51A26BF0B270037BFAA /* PillXDaysIntegrationTests.swift */; };
9D8AF52526BF33310037BFAA /* PDTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8AF52426BF33310037BFAA /* PDTestCase.swift */; };
9D8F45D0248B324A00F2C39A /* SiteDetailViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45CF248B324A00F2C39A /* SiteDetailViewModelTests.swift */; };
9D8F45D4248BED7700F2C39A /* SiteImageRecorderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45D3248BED7700F2C39A /* SiteImageRecorderTests.swift */; };
9D8F45D62495473500F2C39A /* HormoneValueTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45D52495473500F2C39A /* HormoneValueTypeTests.swift */; };
9D8F45D82495694A00F2C39A /* SitesViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45D72495694900F2C39A /* SitesViewModelTests.swift */; };
9D8F45DA24956C6C00F2C39A /* HormonesViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45D924956C6C00F2C39A /* HormonesViewModelTests.swift */; };
9D8F45DC2495B0BB00F2C39A /* HormoneCellActionAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45DB2495B0BB00F2C39A /* HormoneCellActionAlert.swift */; };
9D8F45DE24965FDB00F2C39A /* AlertFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45DD24965FDB00F2C39A /* AlertFactory.swift */; };
9D8F45E02496605F00F2C39A /* AlertProducing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45DF2496605F00F2C39A /* AlertProducing.swift */; };
9D8F45E52496626B00F2C39A /* MockAlertFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45E42496626B00F2C39A /* MockAlertFactory.swift */; };
9D8F45E72496632600F2C39A /* MockAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45E62496632600F2C39A /* MockAlert.swift */; };
9D8F45EA2496718600F2C39A /* SettingsOptionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8F45E92496718600F2C39A /* SettingsOptionsTests.swift */; };
9D913B7A22FF3A0B001FC03C /* UserDefaultsWriting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913B7922FF3A0B001FC03C /* UserDefaultsWriting.swift */; };
9D913B7D22FF3BEA001FC03C /* HormoneScheduling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913B7C22FF3BEA001FC03C /* HormoneScheduling.swift */; };
9D913B8722FF43AB001FC03C /* KeyStorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1BC5662275F3E700552BC1 /* KeyStorable.swift */; };
9D913B9C22FF5497001FC03C /* SiteScheduling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913B9B22FF5497001FC03C /* SiteScheduling.swift */; };
9D913BA022FF697F001FC03C /* Bodily.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913B9F22FF697F001FC03C /* Bodily.swift */; };
9D913BA222FF7B56001FC03C /* Hormonal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BA122FF7B56001FC03C /* Hormonal.swift */; };
9D913BA42304ED7B001FC03C /* PillScheduling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BA32304ED7B001FC03C /* PillScheduling.swift */; };
9D913BA62304EF83001FC03C /* Swallowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BA52304EF83001FC03C /* Swallowable.swift */; };
9D913BA823065676001FC03C /* PDError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BA723065676001FC03C /* PDError.swift */; };
9D913BAC230CD5C9001FC03C /* Hormone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BAB230CD5C9001FC03C /* Hormone.swift */; };
9D913BB6231F3EB5001FC03C /* Site.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D913BB5231F3EB5001FC03C /* Site.swift */; };
9D9397B7237884DA00FDF290 /* HormonesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9397B6237884DA00FDF290 /* HormonesViewModel.swift */; };
9D9397BD2379444300FDF290 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9397BC2379444300FDF290 /* Settings.swift */; };
9D9397C02379473B00FDF290 /* SettingsManaging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9397BE2379471A00FDF290 /* SettingsManaging.swift */; };
9D9397C22379476F00FDF290 /* UserDefaultsReading.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9397C12379476F00FDF290 /* UserDefaultsReading.swift */; };
9D9978472367B01C009679FB /* SimpleProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9978462367B01C009679FB /* SimpleProtocols.swift */; };
9D9C5FF3247AE4FD00B3DA6A /* IntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C5FF2247AE4FD00B3DA6A /* IntegrationTests.swift */; };
9D9C5FF5247B187900B3DA6A /* PDTOTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C5FF4247B187900B3DA6A /* PDTOTests.swift */; };
9D9C5FFB2482970E00B3DA6A /* TabReflectorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C5FFA2482970E00B3DA6A /* TabReflectorTests.swift */; };
9D9C600024829F5000B3DA6A /* PillDetailViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C5FFF24829F5000B3DA6A /* PillDetailViewModelTests.swift */; };
9D9C60042489B75600B3DA6A /* UnsavedChangesAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C60032489B75600B3DA6A /* UnsavedChangesAlert.swift */; };
9DA3A903233AFE6F00DAF350 /* PDNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DA3A902233AFE6F00DAF350 /* PDNotificationCenter.swift */; };
9DB1E3922651A23200EA1F0D /* DeliveryMethodPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DB1E3912651A23200EA1F0D /* DeliveryMethodPicker.swift */; };
9DB1E3942651A26900EA1F0D /* QuantityPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DB1E3932651A26900EA1F0D /* QuantityPicker.swift */; };
9DB1E3962651A64500EA1F0D /* SettingsPickerIndexing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DB1E3952651A64500EA1F0D /* SettingsPickerIndexing.swift */; };
9DB1E39C2651F6F100EA1F0D /* MockSettingsPickerIndexer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DB1E39A2651F6A200EA1F0D /* MockSettingsPickerIndexer.swift */; };
9DC8C05225310F4100F89DEF /* PillCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC8C05125310F4100F89DEF /* PillCellViewModel.swift */; };
9DC8C0562531139100F89DEF /* PillCellViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC8C0552531139100F89DEF /* PillCellViewModelTests.swift */; };
9DC8C0582531344100F89DEF /* SiteCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DC8C0572531344100F89DEF /* SiteCellViewModel.swift */; };
9DCB086B2442163E00E80486 /* TabReflective.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397CF930A5E66090BFA9C71 /* TabReflective.swift */; };
9DCF573525608A1B0066034C /* HormoneDatePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCF573425608A1B0066034C /* HormoneDatePicker.swift */; };
9DD5C2F5227F49BF009BAA25 /* PDTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DD5C2F4227F49BF009BAA25 /* PDTypes.swift */; };
9DD5C2FB228111F9009BAA25 /* SiteStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DD5C2FA228111F9009BAA25 /* SiteStrings.swift */; };
9DDAB02C23F8D84D00E6EEF6 /* PillStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB02B23F8D84D00E6EEF6 /* PillStrings.swift */; };
9DDAB02E23FA050A00E6EEF6 /* PDAlerting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C1AF790C63B29B1C0D06 /* PDAlerting.swift */; };
9DDAB02F23FA051500E6EEF6 /* PillCellActionAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3397C2272E1628C1CDBA4901 /* PillCellActionAlert.swift */; };
9DDAB03223FAE5DD00E6EEF6 /* NewSiteAlertActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03123FAE5DD00E6EEF6 /* NewSiteAlertActionHandler.swift */; };
9DDAB03523FAE60000E6EEF6 /* NewSiteAlertActionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03423FAE60000E6EEF6 /* NewSiteAlertActionHandling.swift */; };
9DDAB03723FAE61300E6EEF6 /* QuantityMutationAlertActionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03623FAE61300E6EEF6 /* QuantityMutationAlertActionHandling.swift */; };
9DDAB03A23FAEFF500E6EEF6 /* QuantityMutationAlertActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03923FAEFF500E6EEF6 /* QuantityMutationAlertActionHandler.swift */; };
9DDAB03C23FAF13400E6EEF6 /* DeliveryMethodMutationAlertActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03B23FAF13400E6EEF6 /* DeliveryMethodMutationAlertActionHandler.swift */; };
9DDAB03E23FAF14C00E6EEF6 /* DeliveryMethodMutationAlertActionHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAB03D23FAF14C00E6EEF6 /* DeliveryMethodMutationAlertActionHandling.swift */; };
9DDF13CF229CC5C2001E8A8A /* ExpiredHormoneNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF13CE229CC5C2001E8A8A /* ExpiredHormoneNotification.swift */; };
9DDF13D4229CC9E7001E8A8A /* NotificationStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF13D3229CC9E7001E8A8A /* NotificationStrings.swift */; };
9DDF47E1234D670C005AA467 /* PillNotificationActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DDF47E0234D670C005AA467 /* PillNotificationActionHandler.swift */; };
9DE08C5725F2F7610098F593 /* DeliveryMethodMutationAlertTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE08C4E25F2F6210098F593 /* DeliveryMethodMutationAlertTests.swift */; };
9DE118F325FEE3BF00D08F97 /* PDWidgetProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE118F225FEE3BF00D08F97 /* PDWidgetProtocol.swift */; };
9DE1190425FEE3FA00D08F97 /* PDWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE118FB25FEE3E900D08F97 /* PDWidget.swift */; };
9DE1193825FFA47800D08F97 /* MockWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE1192825FFA46C00D08F97 /* MockWidget.swift */; };
9DE1196825FFC90000D08F97 /* TextFieldHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE1196725FFC90000D08F97 /* TextFieldHelper.swift */; };
9DE1198725FFCB2B00D08F97 /* MaxStringTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE1197025FFCAD700D08F97 /* MaxStringTests.swift */; };
9DE4536F242FA4920056AC94 /* SiteImageHistory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE4536E242FA4920056AC94 /* SiteImageHistory.swift */; };
9DE45371242FB93D0056AC94 /* PDCli.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE45370242FB93D0056AC94 /* PDCli.swift */; };
9DE748392539042500282144 /* SiteCellViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE748382539042500282144 /* SiteCellViewModelTests.swift */; };
9DE7483B2539072500282144 /* HormoneCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE7483A2539072500282144 /* HormoneCellViewModel.swift */; };
9DE7483F2539187500282144 /* HormoneCellViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DE7483E2539187500282144 /* HormoneCellViewModelTests.swift */; };
9DFD8EA524FF340F00E7C3A8 /* MOHormoneList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFD8EA424FF340F00E7C3A8 /* MOHormoneList.swift */; };
9DFD8EA724FFD09200E7C3A8 /* MOPillList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFD8EA624FFD09200E7C3A8 /* MOPillList.swift */; };
9DFD8EA924FFD09B00E7C3A8 /* MOSiteList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFD8EA824FFD09B00E7C3A8 /* MOSiteList.swift */; };
9DFD8EAB24FFD12400E7C3A8 /* MOEntityList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFD8EAA24FFD12400E7C3A8 /* MOEntityList.swift */; };
9DFD8EAD2500335900E7C3A8 /* DateFormatterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFD8EAC2500335900E7C3A8 /* DateFormatterFactory.swift */; };
9DFE2ACC26C03794002FE451 /* PDIntegrationTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D8AF52026BF30FA0037BFAA /* PDIntegrationTestCase.swift */; };
9DFE2ACE26C04895002FE451 /* PDSerialTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFE2ACD26C04895002FE451 /* PDSerialTestCase.swift */; };
9DFE2AD126C04F2E002FE451 /* PillXDaysIntegrationTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DFE2ACF26C04EFF002FE451 /* PillXDaysIntegrationTestCase.swift */; };
B40CC9B421CCE614002364BB /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
B40CC9C021CD7DA9002364BB /* CoreDataStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = B40CC9BF21CD7DA9002364BB /* CoreDataStack.swift */; };
B435182B20F5D72C00BD268C /* HormoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B435182A20F5D72C00BD268C /* HormoneCell.swift */; };
B440110C21DF2CBD00C94B76 /* patchData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 13F0CC0A1EC2567A00653CB9 /* patchData.xcdatamodeld */; };
B440111321DF44DC00C94B76 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 137330F31E22BA3E0048F91E /* Assets.xcassets */; };
B468414221DC815A00A0BE73 /* HormoneScheduleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B468414121DC815A00A0BE73 /* HormoneScheduleTests.swift */; };
B4700F1E21E571DF00C8EFB6 /* PDKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; };
B480EE2521CC7554002C2238 /* PatchData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B480EE1C21CC7553002C2238 /* PatchData.framework */; };
B480EE2E21CC7554002C2238 /* PatchData.h in Headers */ = {isa = PBXBuildFile; fileRef = B480EE1E21CC7553002C2238 /* PatchData.h */; settings = {ATTRIBUTES = (Public, ); }; };
B480EE3221CC7554002C2238 /* PatchData.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B480EE1C21CC7553002C2238 /* PatchData.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
B480EE3C21CC75FB002C2238 /* PatchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1335B9BA1EC7500D00DD7088 /* PatchData.swift */; };
B480EE4021CC7602002C2238 /* SiteSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4355D9120ED2E6A0048D466 /* SiteSchedule.swift */; };
B480EE4A21CC7D76002C2238 /* PillSchedule.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4355D8F20ED2C1A0048D466 /* PillSchedule.swift */; };
B480EE4B21CC7E20002C2238 /* UserDefaultsWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13C746D01ED781DD00067A67 /* UserDefaultsWriter.swift */; };
B49A4A5020DB2D4C00F24FC0 /* PDKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B49A4A4020DB2D4C00F24FC0 /* PDKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
B49A4A5420DB2D4C00F24FC0 /* PDKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
B49A4A5D20DB2D5A00F24FC0 /* PDColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 139754B41ED8EE27006C82B8 /* PDColors.swift */; };
B4C69F0A21E56CD7004EABC4 /* MOPill.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4355D9320ED6F250048D466 /* MOPill.swift */; };
B4C69F0C21E56CD7004EABC4 /* MOSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = B458993B20F8822700D36B06 /* MOSite.swift */; };
B4C69F0E21E56CD7004EABC4 /* MOHormone.swift in Sources */ = {isa = PBXBuildFile; fileRef = B458994120F8865C00D36B06 /* MOHormone.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
84A62494283AAC0500D59CD7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 137330E81E22BA3E0048F91E;
remoteInfo = PatchDay;
};
9D4D05F3256F61D20037A2E6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
9D69B1E8256C7B2400213E79 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9D69B1D9256C7B2200213E79;
remoteInfo = NextHormoneWidget;
};
9D6E9AF32456253A003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 137330E81E22BA3E0048F91E;
remoteInfo = PatchDay;
};
9D6E9B07245646E0003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
9D6E9B09245646E0003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9D8A981023C573B3004E20FE;
remoteInfo = PDTest;
};
9D6E9B0B245646E0003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B480EE1B21CC7553002C2238;
remoteInfo = PatchData;
};
9D6E9B0D245646E6003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
9D6E9B0F245646F7003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
9D6E9B11245646FF003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
9D6E9B1324564703003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9D8A981023C573B3004E20FE;
remoteInfo = PDTest;
};
9D6E9B31245DBD53003BBCC9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 9D8A981023C573B3004E20FE;
remoteInfo = PDTest;
};
B40CC9B521CCE614002364BB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
B480EE2621CC7554002C2238 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B480EE1B21CC7553002C2238;
remoteInfo = PatchData;
};
B480EE2F21CC7554002C2238 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B480EE1B21CC7553002C2238;
remoteInfo = PatchData;
};
B49A4A5120DB2D4C00F24FC0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 137330E11E22BA3E0048F91E /* Project object */;
proxyType = 1;
remoteGlobalIDString = B49A4A3D20DB2D4C00F24FC0;
remoteInfo = PDKit;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
13B00C061F1A8EC700548019 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
B49A4A5420DB2D4C00F24FC0 /* PDKit.framework in Embed Frameworks */,
B480EE3221CC7554002C2238 /* PatchData.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
9D5EF42D265AD1FF00F562A8 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
9D5EF42C265AD1FF00F562A8 /* XCTest.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
B468F4AF20D9BDBB007FC689 /* Embed App Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
9D69B1EA256C7B2400213E79 /* NextHormoneWidget.appex in Embed App Extensions */,
);
name = "Embed App Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1335B9BA1EC7500D00DD7088 /* PatchData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PatchData.swift; sourceTree = "<group>"; };
1340A9ED1EE771EC0003EFFA /* Notifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notifications.swift; sourceTree = "<group>"; };
137330E91E22BA3E0048F91E /* PatchDay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PatchDay.app; sourceTree = BUILT_PRODUCTS_DIR; };
137330EC1E22BA3E0048F91E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
137330F11E22BA3E0048F91E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
137330F31E22BA3E0048F91E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
137330F61E22BA3E0048F91E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
137330F81E22BA3E0048F91E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
138426D31F4DDB31008C6E6D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Main.strings; sourceTree = "<group>"; };
139754B41ED8EE27006C82B8 /* PDColors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDColors.swift; sourceTree = "<group>"; };
139754BD1EDA8C4D006C82B8 /* HormonesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormonesViewController.swift; sourceTree = "<group>"; };
13A7A4D61E4CCF0100594973 /* PatchDay.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PatchDay.entitlements; sourceTree = "<group>"; };
13C746D01ED781DD00067A67 /* UserDefaultsWriter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriter.swift; sourceTree = "<group>"; };
13F0CC0B1EC2567A00653CB9 /* patchData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = patchData.xcdatamodel; sourceTree = "<group>"; };
3397C0B64890296742265A9E /* SingleValueTypeKeyStorables.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleValueTypeKeyStorables.swift; sourceTree = "<group>"; };
3397C0FE3BE44A439FAED92F /* TableViewWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewWrapper.swift; sourceTree = "<group>"; };
3397C15569EB6EC92C438D45 /* PDBadge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDBadge.swift; sourceTree = "<group>"; };
3397C155FE16DE4D7AFF6ECE /* ExpirationIntervalUDTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpirationIntervalUDTests.swift; sourceTree = "<group>"; };
3397C1700FB67189DA4EA40C /* PillDetailViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillDetailViewModel.swift; sourceTree = "<group>"; };
3397C188BBF8844E19D270D0 /* SiteImages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteImages.swift; sourceTree = "<group>"; };
3397C1AF790C63B29B1C0D06 /* PDAlerting.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDAlerting.swift; sourceTree = "<group>"; };
3397C1C060A400B13F4C03DC /* DeliveryMethodMutationAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeliveryMethodMutationAlert.swift; sourceTree = "<group>"; };
3397C1C5401F606963550A9A /* DateExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionTests.swift; sourceTree = "<group>"; };
3397C2272E1628C1CDBA4901 /* PillCellActionAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillCellActionAlert.swift; sourceTree = "<group>"; };
3397C26B67F3687429A274AE /* HormoneSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneSchedule.swift; sourceTree = "<group>"; };
3397C2EC084F30B801DB0098 /* SiteValueTypeFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteValueTypeFactory.swift; sourceTree = "<group>"; };
3397C3158191BB31BFA38310 /* MockHormoneSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockHormoneSchedule.swift; sourceTree = "<group>"; };
3397C3234C7DA4BD1A600000 /* Navigation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Navigation.swift; sourceTree = "<group>"; };
3397C38F2F374263D15AFAAD /* SiteViewFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteViewFactory.swift; sourceTree = "<group>"; };
3397C3F89940959F98971EA3 /* NotificationFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationFactory.swift; sourceTree = "<group>"; };
3397C3FEA855E6D94AB288AD /* AlertStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertStrings.swift; sourceTree = "<group>"; };
3397C429190FB7BFA67C7CB2 /* SiteDetailConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteDetailConstants.swift; sourceTree = "<group>"; };
3397C44F655B05A9959614A9 /* HormoneDetailValueTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDetailValueTypes.swift; sourceTree = "<group>"; };
3397C46296174AEBD22741E7 /* PDAppConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDAppConstants.swift; sourceTree = "<group>"; };
3397C49932A88441EDBC9663 /* HormonesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormonesTable.swift; sourceTree = "<group>"; };
3397C4E72B97FAB79FE3636F /* HormoneDataSharing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDataSharing.swift; sourceTree = "<group>"; };
3397C4F5D8AADC9C5B2831CA /* PillCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillCell.swift; sourceTree = "<group>"; };
3397C53074C244CBAB4010FD /* DateFactoryTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateFactoryTests.swift; sourceTree = "<group>"; };
3397C53545234920B507958D /* SettingsControls.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsControls.swift; sourceTree = "<group>"; };
3397C54DDFA7DF1E9C1EDECA /* PatchDataLoggingPlayground.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PatchDataLoggingPlayground.swift; sourceTree = "<group>"; };
3397C57BEA067330611A888C /* PDIcons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDIcons.swift; sourceTree = "<group>"; };
3397C5BF42C6720C632A84B3 /* SettingsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = "<group>"; };
3397C5E1286D48758418CA9A /* PillsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillsTable.swift; sourceTree = "<group>"; };
3397C609A733531CFC1C82A1 /* SitesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SitesTable.swift; sourceTree = "<group>"; };
3397C657E8FDF0438CBDF5E1 /* TableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableCell.swift; sourceTree = "<group>"; };
3397C69A91001F8810A301BD /* SiteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteCell.swift; sourceTree = "<group>"; };
3397C6C20942B8D7C25C1A85 /* PDLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDLog.swift; sourceTree = "<group>"; };
3397C6E2BC39EA33203730DE /* PillsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillsViewModel.swift; sourceTree = "<group>"; };
3397C6F5443D715A5E3FFCCE /* Foundation+PatchDay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Foundation+PatchDay.swift"; sourceTree = "<group>"; };
3397C7428C516F8FDBD1253E /* DisclaimerAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisclaimerAlert.swift; sourceTree = "<group>"; };
3397C7499209AE8D1F2DC6AC /* PDGenericAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDGenericAlert.swift; sourceTree = "<group>"; };
3397C764E55128FF40F87208 /* EntitiesLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EntitiesLogger.swift; sourceTree = "<group>"; };
3397C76B77C82500F8608543 /* QuantityMutationAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuantityMutationAlert.swift; sourceTree = "<group>"; };
3397C77E21A14AB79431233D /* DateFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateFactory.swift; sourceTree = "<group>"; };
3397C77F4C999C35C9771AFC /* SiteImagePicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteImagePicker.swift; sourceTree = "<group>"; };
3397C7DB5907E297804FE42B /* SettingsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = "<group>"; };
3397C83CA26AB9993A1C43D2 /* HormoneDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDetailViewController.swift; sourceTree = "<group>"; };
3397C86680B1CBEBCAA0DC3E /* MockSiteSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockSiteSchedule.swift; sourceTree = "<group>"; };
3397C87675CCA6733B03EBB1 /* PillsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillsViewController.swift; sourceTree = "<group>"; };
3397C8B360B6B1582B2DC97C /* PDAlertController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDAlertController.swift; sourceTree = "<group>"; };
3397C91D80B0294A38B737EC /* PDDateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDDateFormatter.swift; sourceTree = "<group>"; };
3397C92B22AD98FD011DCE92 /* HormoneDetailViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDetailViewModel.swift; sourceTree = "<group>"; };
3397C9451ED30B689F8D7E30 /* MOEntities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MOEntities.swift; sourceTree = "<group>"; };
3397C9489AA2464C530A78F2 /* EntityAdapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EntityAdapter.swift; sourceTree = "<group>"; };
3397C98618024DF7B376CFBB /* HormoneStringsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneStringsTests.swift; sourceTree = "<group>"; };
3397C98C912D77BEE430431A /* QuantityMutating.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuantityMutating.swift; sourceTree = "<group>"; };
3397C98CDE78055C4967F9FB /* PillDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillDetailViewController.swift; sourceTree = "<group>"; };
3397C9AF85534D3884106598 /* Date+PatchDay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+PatchDay.swift"; sourceTree = "<group>"; };
3397C9E6D36B45D518F0CB35 /* HormoneDataSharer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDataSharer.swift; sourceTree = "<group>"; };
3397CA12B098B78F4EF41902 /* ImageResizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageResizer.swift; sourceTree = "<group>"; };
3397CA49B0781DCE2F7B96F8 /* SitesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SitesViewModel.swift; sourceTree = "<group>"; };
3397CA5E6F3ED61A66763E14 /* UINavigationController+PatchDay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+PatchDay.swift"; sourceTree = "<group>"; };
3397CAAF145FA5B0AF1BF60F /* TabReflector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabReflector.swift; sourceTree = "<group>"; };
3397CADC885E37C6B08B5EC8 /* NewSiteAlert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewSiteAlert.swift; sourceTree = "<group>"; };
3397CAEE96FD2E7313A42BA2 /* NavigationHandling.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationHandling.swift; sourceTree = "<group>"; };
3397CB18E77D8048782F165F /* SettingsReflector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsReflector.swift; sourceTree = "<group>"; };
3397CB4BB5AA9C4FB0948A47 /* UIKit+PatchDay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIKit+PatchDay.swift"; sourceTree = "<group>"; };
3397CB53F54E67EA5276E7CD /* SettingsAndSites.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SettingsAndSites.storyboard; sourceTree = "<group>"; };
3397CBAEECDFB0997BB88263 /* SettingsSaver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsSaver.swift; sourceTree = "<group>"; };
3397CC73DBC50CB53940CA1B /* PDDateFormatterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDDateFormatterTests.swift; sourceTree = "<group>"; };
3397CCE3EDABEB6409353DBD /* ArrayExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensionTests.swift; sourceTree = "<group>"; };
3397CDD5E1C3F60EAEEFE82B /* SiteDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteDetailViewController.swift; sourceTree = "<group>"; };
3397CDDC25322F027DE45D6A /* PDViewFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDViewFactory.swift; sourceTree = "<group>"; };
3397CDE752EBD157A3E2CDE7 /* PDBadgeButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDBadgeButton.swift; sourceTree = "<group>"; };
3397CE95ADAC03F0AF8D6220 /* SiteDetailViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteDetailViewModel.swift; sourceTree = "<group>"; };
3397CEF0E64C576123005F01 /* PDObjectLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDObjectLogger.swift; sourceTree = "<group>"; };
3397CF33CEB0E43BBF273BDB /* SettingsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTests.swift; sourceTree = "<group>"; };
3397CF930A5E66090BFA9C71 /* TabReflective.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabReflective.swift; sourceTree = "<group>"; };
3397CFBE9BB2F360BA64E42E /* EntitiesSaver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EntitiesSaver.swift; sourceTree = "<group>"; };
3397CFFF305F5543E4A156A3 /* SitesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SitesViewController.swift; sourceTree = "<group>"; };
847678F9283C1933004E6A7E /* HormoneDetailUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormoneDetailUITest.swift; sourceTree = "<group>"; };
847678FB283C1948004E6A7E /* PDUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDUITest.swift; sourceTree = "<group>"; };
84991BD728497247001C4B8D /* PillDetailUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillDetailUITest.swift; sourceTree = "<group>"; };
84991BD92849730A001C4B8D /* PillsUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillsUITest.swift; sourceTree = "<group>"; };
84991BDB28497514001C4B8D /* HormonesUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HormonesUITest.swift; sourceTree = "<group>"; };
84991BDD28497551001C4B8D /* SettingsUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsUITest.swift; sourceTree = "<group>"; };
849F2392284BA67900C875A5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
84A6248E283AAC0500D59CD7 /* PatchDayUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PatchDayUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
84A62490283AAC0500D59CD7 /* PatchDayUITests */ = {isa = PBXFileReference; lastKnownFileType = text; name = PatchDayUITests; path = ../../Tests/Tests/PatchDayUITests; sourceTree = "<group>"; };
84B4E25E2841958100256A18 /* SitesUITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SitesUITests.swift; sourceTree = "<group>"; };
84B4E26028419CF000256A18 /* SiteDetailUITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteDetailUITests.swift; sourceTree = "<group>"; };
9D003E9923231E880070C964 /* PDObjectified.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDObjectified.swift; sourceTree = "<group>"; };
9D003E9E232878CE0070C964 /* PatchDataSDK.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchDataSDK.swift; sourceTree = "<group>"; };
9D003EA82331DE390070C964 /* CoreDataStackWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataStackWrapper.swift; sourceTree = "<group>"; };
9D003EC0233599A90070C964 /* Schedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Schedule.swift; sourceTree = "<group>"; };
9D003EC223359B2D0070C964 /* PDCoreDataWrapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDCoreDataWrapping.swift; sourceTree = "<group>"; };
9D0CE8BC2635DE6600B3FCB7 /* PillTimesQuotient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTimesQuotient.swift; sourceTree = "<group>"; };
9D0CE8DD2635FF1500B3FCB7 /* PillTimesQuotientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTimesQuotientTests.swift; sourceTree = "<group>"; };
9D0CE90626362E6600B3FCB7 /* PillTimesTakenTodayList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTimesTakenTodayList.swift; sourceTree = "<group>"; };
9D0CE91626363ACC00B3FCB7 /* PillTodayLastTakenListTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTodayLastTakenListTests.swift; sourceTree = "<group>"; };
9D1908D52466F5AB00E95244 /* UserDefaultsWriterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriterTests.swift; sourceTree = "<group>"; };
9D1908D72466F66000E95244 /* PDUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDUserDefaults.swift; sourceTree = "<group>"; };
9D1908DB2466FD7D00E95244 /* MockUserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserDefaults.swift; sourceTree = "<group>"; };
9D1908DE2468315F00E95244 /* SettingsSaverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsSaverTests.swift; sourceTree = "<group>"; };
9D1908E0246834EF00E95244 /* MockDependencies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockDependencies.swift; sourceTree = "<group>"; };
9D1908E2246835E900E95244 /* DependenciesProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DependenciesProtocol.swift; sourceTree = "<group>"; };
9D1908E52468369700E95244 /* MockTabs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockTabs.swift; sourceTree = "<group>"; };
9D1908E72468375200E95244 /* MockNotifications.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNotifications.swift; sourceTree = "<group>"; };
9D1908E92468388B00E95244 /* MockNav.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNav.swift; sourceTree = "<group>"; };
9D1908EE24684B5400E95244 /* SettingsReflectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsReflectorTests.swift; sourceTree = "<group>"; };
9D1908F024684BC900E95244 /* SettingsTestHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsTestHelper.swift; sourceTree = "<group>"; };
9D1908F22468564100E95244 /* SettingsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModelTests.swift; sourceTree = "<group>"; };
9D1908F5247029E800E95244 /* PDAssert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDAssert.swift; sourceTree = "<group>"; };
9D1BC5662275F3E700552BC1 /* KeyStorable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyStorable.swift; sourceTree = "<group>"; };
9D1BC57D2277F45F00552BC1 /* SettingsOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsOptions.swift; sourceTree = "<group>"; };
9D1C2998236D2CB800488564 /* UserDefaultsWriteHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriteHandling.swift; sourceTree = "<group>"; };
9D21797025D9F7B600FC3187 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
9D21797125D9F7B600FC3187 /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = "<group>"; };
9D21A5C823860FBF00EC2A03 /* CodeBehindDependencies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodeBehindDependencies.swift; sourceTree = "<group>"; };
9D226983237506BF00828B5F /* NotificationProducing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationProducing.swift; sourceTree = "<group>"; };
9D3E4C7D22B5AEA400C82DAE /* ExpiredHormoneOvernightNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiredHormoneOvernightNotification.swift; sourceTree = "<group>"; };
9D3E4C7F22B5AFC500C82DAE /* Notification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = "<group>"; };
9D3E4C8122B5B47E00C82DAE /* DuePillNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuePillNotification.swift; sourceTree = "<group>"; };
9D3E4C8322B5DD9F00C82DAE /* PDTitleStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDTitleStrings.swift; sourceTree = "<group>"; };
9D3E4C9522B730B500C82DAE /* ActionStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionStrings.swift; sourceTree = "<group>"; };
9D3E653B24A8EEB00000D079 /* PillsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillsViewModelTests.swift; sourceTree = "<group>"; };
9D3E653E24A8F4CD0000D079 /* SiteImagesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteImagesTests.swift; sourceTree = "<group>"; };
9D42114225D4AFD500087CDD /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = "<group>"; };
9D42114325D4AFD500087CDD /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
9D42114425D4AFD500087CDD /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
9D42115225D4B2BD00087CDD /* PillAttributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillAttributes.swift; sourceTree = "<group>"; };
9D42125025D60BBB00087CDD /* PillExpirationInterval.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillExpirationInterval.swift; sourceTree = "<group>"; };
9D42125125D60BBB00087CDD /* PillExpirationIntervalXDays.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillExpirationIntervalXDays.swift; sourceTree = "<group>"; };
9D42125B25D60BFD00087CDD /* PillExpirationIntervalXDaysTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillExpirationIntervalXDaysTests.swift; sourceTree = "<group>"; };
9D42125C25D60BFD00087CDD /* PillAttributeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillAttributeTests.swift; sourceTree = "<group>"; };
9D42125D25D60BFD00087CDD /* PillExpirationIntervalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PillExpirationIntervalTests.swift; sourceTree = "<group>"; };
9D468E30255C392700FDD03C /* HormonesTableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormonesTableTests.swift; sourceTree = "<group>"; };
9D4D061A256F6CAE0037A2E6 /* NextHormoneWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = NextHormoneWidget.entitlements; path = Sources/NextHormoneWidget/NextHormoneWidget.entitlements; sourceTree = SOURCE_ROOT; };
9D53A68B25116BA200D4D712 /* NotificationStringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationStringTests.swift; sourceTree = "<group>"; };
9D59F8B725028AD900C0324E /* DateIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateIntegrationTests.swift; sourceTree = "<group>"; };
9D59F8BA25056E8B00C0324E /* NowProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NowProtocol.swift; sourceTree = "<group>"; };
9D59F8BC25056EC500C0324E /* PDNow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDNow.swift; sourceTree = "<group>"; };
9D59F8BE250570CC00C0324E /* MockNow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNow.swift; sourceTree = "<group>"; };
9D5EF4242655EAF300F562A8 /* SettingPickerActivator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingPickerActivator.swift; sourceTree = "<group>"; };
9D5EF4262655ED7000F562A8 /* SettingsPickerActivatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerActivatorTests.swift; sourceTree = "<group>"; };
9D5EF42F265AEB0100F562A8 /* ChangeHormoneCommandTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeHormoneCommandTests.swift; sourceTree = "<group>"; };
9D5EF432265B2D6F00F562A8 /* UserDefaultsWriteHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriteHandlerTests.swift; sourceTree = "<group>"; };
9D5EF434265B2ED800F562A8 /* MockKeyStorable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockKeyStorable.swift; sourceTree = "<group>"; };
9D61878F263D927500B284CF /* PillCellActionAlertTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellActionAlertTests.swift; sourceTree = "<group>"; };
9D618791263D949A00B284CF /* PillCellActionAlertHandlersTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellActionAlertHandlersTests.swift; sourceTree = "<group>"; };
9D618794263DA54000B284CF /* PlaceholderStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderStrings.swift; sourceTree = "<group>"; };
9D618797263EF39800B284CF /* XDaysUD.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDaysUD.swift; sourceTree = "<group>"; };
9D618799263F2CF900B284CF /* SettingsViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModelProtocol.swift; sourceTree = "<group>"; };
9D61879C263F2DD000B284CF /* SettingsPickerViewing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerViewing.swift; sourceTree = "<group>"; };
9D61879E263F3E0600B284CF /* SettingsPickerList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerList.swift; sourceTree = "<group>"; };
9D6187A1263F444800B284CF /* XDaysUDTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDaysUDTests.swift; sourceTree = "<group>"; };
9D6187A4263F643100B284CF /* SettingsPickerListTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerListTests.swift; sourceTree = "<group>"; };
9D6187A8263F66DB00B284CF /* MockSettingsPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSettingsPicker.swift; sourceTree = "<group>"; };
9D6187AC2640BDE200B284CF /* SettingsReflecting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsReflecting.swift; sourceTree = "<group>"; };
9D6187AE2640BE3200B284CF /* MockSettingsReflector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSettingsReflector.swift; sourceTree = "<group>"; };
9D6187B02642072000B284CF /* SettingsPickerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerTests.swift; sourceTree = "<group>"; };
9D6187B32642328300B284CF /* SettingsControlsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsControlsTests.swift; sourceTree = "<group>"; };
9D6187B626437B3C00B284CF /* ExpirationIntervalSettingsPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpirationIntervalSettingsPicker.swift; sourceTree = "<group>"; };
9D69B1DA256C7B2200213E79 /* NextHormoneWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NextHormoneWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; };
9D69B1DB256C7B2200213E79 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
9D69B1DD256C7B2200213E79 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
9D69B1E0256C7B2200213E79 /* NextHormoneWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextHormoneWidget.swift; sourceTree = "<group>"; };
9D69B1E3256C7B2400213E79 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
9D69B1E5256C7B2400213E79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9D6D786C23FE2BAD00FF150C /* PillCellActionHandlers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellActionHandlers.swift; sourceTree = "<group>"; };
9D6D786E23FE2DE200FF150C /* PillCellActionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellActionHandling.swift; sourceTree = "<group>"; };
9D6DB7D12405FED600C00711 /* PDUserDefault.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PDUserDefault.swift; path = Sources/PDKit/Settings/PDUserDefault.swift; sourceTree = SOURCE_ROOT; };
9D6DB7D72405FEF200C00711 /* QuantityUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = QuantityUD.swift; path = Sources/PDKit/Settings/Choice/QuantityUD.swift; sourceTree = SOURCE_ROOT; };
9D6DB7D82405FEF200C00711 /* DeliveryMethodUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DeliveryMethodUD.swift; path = Sources/PDKit/Settings/Choice/DeliveryMethodUD.swift; sourceTree = SOURCE_ROOT; };
9D6DB7DA2405FEF200C00711 /* ExpirationIntervalUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ExpirationIntervalUD.swift; path = Sources/PDKit/Settings/Choice/ExpirationIntervalUD.swift; sourceTree = SOURCE_ROOT; };
9D6DB7DF2405FFD300C00711 /* SimpleSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleSettings.swift; sourceTree = "<group>"; };
9D6DB7E12406002B00C00711 /* SettingsPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsPicker.swift; sourceTree = "<group>"; };
9D6E9AD524562155003BBCC9 /* MockNotificationCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNotificationCenter.swift; sourceTree = "<group>"; };
9D6E9AE5245623AA003BBCC9 /* PDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDTO.swift; sourceTree = "<group>"; };
9D6E9AEE2456253A003BBCC9 /* PatchDayTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PatchDayTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
9D6E9AF22456253A003BBCC9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9D6E9AF82456256F003BBCC9 /* NotificationsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsTests.swift; sourceTree = "<group>"; };
9D6E9AFA245633DC003BBCC9 /* MockSDK.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSDK.swift; sourceTree = "<group>"; };
9D6E9AFC24563454003BBCC9 /* MockSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSettings.swift; sourceTree = "<group>"; };
9D6E9AFE2456376B003BBCC9 /* MockPillSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPillSchedule.swift; sourceTree = "<group>"; };
9D6E9B0124564501003BBCC9 /* MockBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockBadge.swift; sourceTree = "<group>"; };
9D6E9B1724564A2F003BBCC9 /* MockNotificationFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockNotificationFactory.swift; sourceTree = "<group>"; };
9D6E9B202457A5A5003BBCC9 /* ExpiredHormoneNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiredHormoneNotificationTests.swift; sourceTree = "<group>"; };
9D6E9B22245CD8DF003BBCC9 /* ExpiredHormoneOvernightNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiredHormoneOvernightNotificationTests.swift; sourceTree = "<group>"; };
9D6E9B26245CDAF8003BBCC9 /* DuePillNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DuePillNotificationTests.swift; sourceTree = "<group>"; };
9D6E9B2C245DB413003BBCC9 /* PillNotificationActionHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillNotificationActionHandlerTests.swift; sourceTree = "<group>"; };
9D6E9B36245DBF84003BBCC9 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
9D6E9B3A245DCD5E003BBCC9 /* HormoneDetailViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneDetailViewModelTests.swift; sourceTree = "<group>"; };
9D788712254DE23300DC0F6D /* PDCommandFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDCommandFactory.swift; sourceTree = "<group>"; };
9D78873B254E0CD400DC0F6D /* ChangeHormoneCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeHormoneCommand.swift; sourceTree = "<group>"; };
9D788744254E0D0300DC0F6D /* PDCommandProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDCommandProtocol.swift; sourceTree = "<group>"; };
9D788754255390FA00DC0F6D /* SiteImageHistoryManaging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteImageHistoryManaging.swift; sourceTree = "<group>"; };
9D78876B2553938600DC0F6D /* SiteImageRecording.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteImageRecording.swift; sourceTree = "<group>"; };
9D78877B2553993200DC0F6D /* MockSiteImageRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSiteImageRecorder.swift; sourceTree = "<group>"; };
9D788784255399EC00DC0F6D /* MockSiteImageHistory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSiteImageHistory.swift; sourceTree = "<group>"; };
9D788794255843EB00DC0F6D /* HormonesTableProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormonesTableProtocol.swift; sourceTree = "<group>"; };
9D7887A42558453A00DC0F6D /* HormoneCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCellProtocol.swift; sourceTree = "<group>"; };
9D7887AD2558455B00DC0F6D /* HormonesViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormonesViewModelProtocol.swift; sourceTree = "<group>"; };
9D7887B72558460F00DC0F6D /* HormoneCellViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCellViewModelProtocol.swift; sourceTree = "<group>"; };
9D7887C8255851CF00DC0F6D /* SitesTableProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SitesTableProtocol.swift; sourceTree = "<group>"; };
9D7887D82558527600DC0F6D /* SiteCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCellProtocol.swift; sourceTree = "<group>"; };
9D7887E12558544800DC0F6D /* SitesViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SitesViewModelProtocol.swift; sourceTree = "<group>"; };
9D7887EA2558563D00DC0F6D /* SiteCellViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCellViewModelProtocol.swift; sourceTree = "<group>"; };
9D7887F42558569C00DC0F6D /* PillCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellProtocol.swift; sourceTree = "<group>"; };
9D7888042558575D00DC0F6D /* PillsTableProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillsTableProtocol.swift; sourceTree = "<group>"; };
9D788814255857B200DC0F6D /* PillCellViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellViewModelProtocol.swift; sourceTree = "<group>"; };
9D78881D255857F700DC0F6D /* PillsViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillsViewModelProtocol.swift; sourceTree = "<group>"; };
9D78883425585E2A00DC0F6D /* PillDetailViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillDetailViewModelProtocol.swift; sourceTree = "<group>"; };
9D78883D25585F1700DC0F6D /* SiteDetailViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteDetailViewModelProtocol.swift; sourceTree = "<group>"; };
9D78884625585FAF00DC0F6D /* HormoneDetailViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneDetailViewModelProtocol.swift; sourceTree = "<group>"; };
9D78889925586CBC00DC0F6D /* MockHormonesTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockHormonesTable.swift; sourceTree = "<group>"; };
9D7888A2255870D100DC0F6D /* MockSitesTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSitesTable.swift; sourceTree = "<group>"; };
9D7888AB2558727A00DC0F6D /* MockSiteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSiteCell.swift; sourceTree = "<group>"; };
9D7888BE2558738300DC0F6D /* MockPillsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPillsTable.swift; sourceTree = "<group>"; };
9D7888CE255873CB00DC0F6D /* MockPillCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPillCell.swift; sourceTree = "<group>"; };
9D7888D72558781100DC0F6D /* MockHormoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockHormoneCell.swift; sourceTree = "<group>"; };
9D78A9E02386354F00058AD9 /* PDConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDConstants.swift; sourceTree = "<group>"; };
9D7B0A78226CCB9B0089E1CD /* UserDefaultsWriteHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriteHandler.swift; sourceTree = "<group>"; };
9D7F1443240C4486001577A1 /* ChoiceSetting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChoiceSetting.swift; sourceTree = "<group>"; };
9D8A97F923B28EAA004E20FE /* EntityStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntityStore.swift; sourceTree = "<group>"; };
9D8A97FC23B28F6E004E20FE /* HormoneStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneStore.swift; sourceTree = "<group>"; };
9D8A97FE23B290BC004E20FE /* PillStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillStore.swift; sourceTree = "<group>"; };
9D8A980023B290C4004E20FE /* SiteStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteStore.swift; sourceTree = "<group>"; };
9D8A981123C573B3004E20FE /* PDTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PDTest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9D8A981323C573B3004E20FE /* PDTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PDTest.h; sourceTree = "<group>"; };
9D8A981423C573B3004E20FE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9D8A981C23C57448004E20FE /* PDMocking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDMocking.swift; sourceTree = "<group>"; };
9D8A981E23C57473004E20FE /* MockHormoneDataSharer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockHormoneDataSharer.swift; sourceTree = "<group>"; };
9D8A982123C57499004E20FE /* MockEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockEntity.swift; sourceTree = "<group>"; };
9D8A982323C574B0004E20FE /* MockCoreDataStackWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockCoreDataStackWrapper.swift; sourceTree = "<group>"; };
9D8A982623C574F5004E20FE /* MockUserDefaultsWriter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserDefaultsWriter.swift; sourceTree = "<group>"; };
9D8A982923C7EED0004E20FE /* HormoneStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneStoring.swift; sourceTree = "<group>"; };
9D8A982B23C7EEDA004E20FE /* PillStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillStoring.swift; sourceTree = "<group>"; };
9D8A982D23C7EEE4004E20FE /* SiteStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteStoring.swift; sourceTree = "<group>"; };
9D8A983423C7F8A9004E20FE /* MockHormoneStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockHormoneStore.swift; sourceTree = "<group>"; };
9D8A983923C7FD1F004E20FE /* MockHormone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MockHormone.swift; path = MockObjects/MockHormone.swift; sourceTree = "<group>"; };
9D8A983B23CBC071004E20FE /* MockSite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MockSite.swift; path = MockObjects/MockSite.swift; sourceTree = "<group>"; };
9D8A983E23CBF384004E20FE /* HormoneTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneTests.swift; sourceTree = "<group>"; };
9D8A984323CFFA6D004E20FE /* PillScheduleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillScheduleTests.swift; sourceTree = "<group>"; };
9D8A984623D13052004E20FE /* SiteScheduledTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteScheduledTests.swift; sourceTree = "<group>"; };
9D8A984823D1308A004E20FE /* MockPillStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPillStore.swift; sourceTree = "<group>"; };
9D8A984A23D13093004E20FE /* MockSiteStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSiteStore.swift; sourceTree = "<group>"; };
9D8A984C23D132EC004E20FE /* MockPatchDataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPatchDataStore.swift; sourceTree = "<group>"; };
9D8A984E23D13613004E20FE /* PDObjectStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDObjectStoring.swift; sourceTree = "<group>"; };
9D8A985023D160EB004E20FE /* MockPill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MockPill.swift; path = MockObjects/MockPill.swift; sourceTree = "<group>"; };
9D8A985223D1682E004E20FE /* SiteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteTests.swift; sourceTree = "<group>"; };
9D8A985423D1683A004E20FE /* PillTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTests.swift; sourceTree = "<group>"; };
9D8A985923D16A17004E20FE /* PillDataSharer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillDataSharer.swift; sourceTree = "<group>"; };
9D8A985C23D3B9A6004E20FE /* MockPillDataSharer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPillDataSharer.swift; sourceTree = "<group>"; };
9D8A985E23D3B9EC004E20FE /* PillDataSharing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillDataSharing.swift; sourceTree = "<group>"; };
9D8A986023D3BAF3004E20FE /* DataSharer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataSharer.swift; sourceTree = "<group>"; };
9D8A986223D3BAFE004E20FE /* UserDefaultsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsProtocol.swift; sourceTree = "<group>"; };
9D8A986423D95941004E20FE /* PillTestsUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTestsUtil.swift; sourceTree = "<group>"; };
9D8AF51626B8A82E0037BFAA /* TestDateFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestDateFactory.swift; sourceTree = "<group>"; };
9D8AF51826BB6F050037BFAA /* PillTestFixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTestFixtures.swift; sourceTree = "<group>"; };
9D8AF51A26BF0B270037BFAA /* PillXDaysIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillXDaysIntegrationTests.swift; sourceTree = "<group>"; };
9D8AF52026BF30FA0037BFAA /* PDIntegrationTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDIntegrationTestCase.swift; sourceTree = "<group>"; };
9D8AF52426BF33310037BFAA /* PDTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDTestCase.swift; sourceTree = "<group>"; };
9D8F45CF248B324A00F2C39A /* SiteDetailViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteDetailViewModelTests.swift; sourceTree = "<group>"; };
9D8F45D3248BED7700F2C39A /* SiteImageRecorderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteImageRecorderTests.swift; sourceTree = "<group>"; };
9D8F45D52495473500F2C39A /* HormoneValueTypeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneValueTypeTests.swift; sourceTree = "<group>"; };
9D8F45D72495694900F2C39A /* SitesViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SitesViewModelTests.swift; sourceTree = "<group>"; };
9D8F45D924956C6C00F2C39A /* HormonesViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormonesViewModelTests.swift; sourceTree = "<group>"; };
9D8F45DB2495B0BB00F2C39A /* HormoneCellActionAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCellActionAlert.swift; sourceTree = "<group>"; };
9D8F45DD24965FDB00F2C39A /* AlertFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertFactory.swift; sourceTree = "<group>"; };
9D8F45DF2496605F00F2C39A /* AlertProducing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertProducing.swift; sourceTree = "<group>"; };
9D8F45E42496626B00F2C39A /* MockAlertFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAlertFactory.swift; sourceTree = "<group>"; };
9D8F45E62496632600F2C39A /* MockAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockAlert.swift; sourceTree = "<group>"; };
9D8F45E92496718600F2C39A /* SettingsOptionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsOptionsTests.swift; sourceTree = "<group>"; };
9D913B7922FF3A0B001FC03C /* UserDefaultsWriting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsWriting.swift; sourceTree = "<group>"; };
9D913B7C22FF3BEA001FC03C /* HormoneScheduling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneScheduling.swift; sourceTree = "<group>"; };
9D913B9B22FF5497001FC03C /* SiteScheduling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteScheduling.swift; sourceTree = "<group>"; };
9D913B9F22FF697F001FC03C /* Bodily.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bodily.swift; sourceTree = "<group>"; };
9D913BA122FF7B56001FC03C /* Hormonal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hormonal.swift; sourceTree = "<group>"; };
9D913BA32304ED7B001FC03C /* PillScheduling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillScheduling.swift; sourceTree = "<group>"; };
9D913BA52304EF83001FC03C /* Swallowable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Swallowable.swift; sourceTree = "<group>"; };
9D913BA723065676001FC03C /* PDError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDError.swift; sourceTree = "<group>"; };
9D913BAB230CD5C9001FC03C /* Hormone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hormone.swift; sourceTree = "<group>"; };
9D913BAD231D89AD001FC03C /* Pill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pill.swift; sourceTree = "<group>"; };
9D913BB5231F3EB5001FC03C /* Site.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Site.swift; sourceTree = "<group>"; };
9D9397B6237884DA00FDF290 /* HormonesViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormonesViewModel.swift; sourceTree = "<group>"; };
9D9397BC2379444300FDF290 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = "<group>"; };
9D9397BE2379471A00FDF290 /* SettingsManaging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsManaging.swift; sourceTree = "<group>"; };
9D9397C12379476F00FDF290 /* UserDefaultsReading.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsReading.swift; sourceTree = "<group>"; };
9D9946CC2377266C00CF3C96 /* PDBadgeReflective.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDBadgeReflective.swift; sourceTree = "<group>"; };
9D9978462367B01C009679FB /* SimpleProtocols.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleProtocols.swift; sourceTree = "<group>"; };
9D9C5FF2247AE4FD00B3DA6A /* IntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntegrationTests.swift; sourceTree = "<group>"; };
9D9C5FF4247B187900B3DA6A /* PDTOTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDTOTests.swift; sourceTree = "<group>"; };
9D9C5FFA2482970E00B3DA6A /* TabReflectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabReflectorTests.swift; sourceTree = "<group>"; };
9D9C5FFF24829F5000B3DA6A /* PillDetailViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillDetailViewModelTests.swift; sourceTree = "<group>"; };
9D9C60032489B75600B3DA6A /* UnsavedChangesAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnsavedChangesAlert.swift; sourceTree = "<group>"; };
9DA3A900233AFD4D00DAF350 /* PDNotificationCenterDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDNotificationCenterDelegate.swift; sourceTree = "<group>"; };
9DA3A902233AFE6F00DAF350 /* PDNotificationCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDNotificationCenter.swift; sourceTree = "<group>"; };
9DA3A904233C4B6300DAF350 /* NotificationScheduling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationScheduling.swift; sourceTree = "<group>"; };
9DB1E3912651A23200EA1F0D /* DeliveryMethodPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryMethodPicker.swift; sourceTree = "<group>"; };
9DB1E3932651A26900EA1F0D /* QuantityPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityPicker.swift; sourceTree = "<group>"; };
9DB1E3952651A64500EA1F0D /* SettingsPickerIndexing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsPickerIndexing.swift; sourceTree = "<group>"; };
9DB1E39A2651F6A200EA1F0D /* MockSettingsPickerIndexer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockSettingsPickerIndexer.swift; sourceTree = "<group>"; };
9DC8C05125310F4100F89DEF /* PillCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellViewModel.swift; sourceTree = "<group>"; };
9DC8C0552531139100F89DEF /* PillCellViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillCellViewModelTests.swift; sourceTree = "<group>"; };
9DC8C0572531344100F89DEF /* SiteCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCellViewModel.swift; sourceTree = "<group>"; };
9DCF573425608A1B0066034C /* HormoneDatePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneDatePicker.swift; sourceTree = "<group>"; };
9DD5C2F4227F49BF009BAA25 /* PDTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDTypes.swift; sourceTree = "<group>"; };
9DD5C2FA228111F9009BAA25 /* SiteStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteStrings.swift; sourceTree = "<group>"; };
9DDAB02B23F8D84D00E6EEF6 /* PillStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillStrings.swift; sourceTree = "<group>"; };
9DDAB03123FAE5DD00E6EEF6 /* NewSiteAlertActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewSiteAlertActionHandler.swift; sourceTree = "<group>"; };
9DDAB03423FAE60000E6EEF6 /* NewSiteAlertActionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewSiteAlertActionHandling.swift; sourceTree = "<group>"; };
9DDAB03623FAE61300E6EEF6 /* QuantityMutationAlertActionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityMutationAlertActionHandling.swift; sourceTree = "<group>"; };
9DDAB03923FAEFF500E6EEF6 /* QuantityMutationAlertActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityMutationAlertActionHandler.swift; sourceTree = "<group>"; };
9DDAB03B23FAF13400E6EEF6 /* DeliveryMethodMutationAlertActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryMethodMutationAlertActionHandler.swift; sourceTree = "<group>"; };
9DDAB03D23FAF14C00E6EEF6 /* DeliveryMethodMutationAlertActionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryMethodMutationAlertActionHandling.swift; sourceTree = "<group>"; };
9DDF13CE229CC5C2001E8A8A /* ExpiredHormoneNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiredHormoneNotification.swift; sourceTree = "<group>"; };
9DDF13D0229CC601001E8A8A /* PDNotificationProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDNotificationProtocol.swift; sourceTree = "<group>"; };
9DDF13D3229CC9E7001E8A8A /* NotificationStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationStrings.swift; sourceTree = "<group>"; };
9DDF47DE234C329F005AA467 /* PillNotificationActionHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillNotificationActionHandling.swift; sourceTree = "<group>"; };
9DDF47E0234D670C005AA467 /* PillNotificationActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillNotificationActionHandler.swift; sourceTree = "<group>"; };
9DDF47E2234D6EE2005AA467 /* HormoneStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneStrings.swift; sourceTree = "<group>"; };
9DE08C4E25F2F6210098F593 /* DeliveryMethodMutationAlertTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeliveryMethodMutationAlertTests.swift; sourceTree = "<group>"; };
9DE118F225FEE3BF00D08F97 /* PDWidgetProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDWidgetProtocol.swift; sourceTree = "<group>"; };
9DE118FB25FEE3E900D08F97 /* PDWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDWidget.swift; sourceTree = "<group>"; };
9DE1192825FFA46C00D08F97 /* MockWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockWidget.swift; sourceTree = "<group>"; };
9DE1196725FFC90000D08F97 /* TextFieldHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldHelper.swift; sourceTree = "<group>"; };
9DE1197025FFCAD700D08F97 /* MaxStringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaxStringTests.swift; sourceTree = "<group>"; };
9DE4536E242FA4920056AC94 /* SiteImageHistory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteImageHistory.swift; sourceTree = "<group>"; };
9DE45370242FB93D0056AC94 /* PDCli.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PDCli.swift; sourceTree = "<group>"; };
9DE748382539042500282144 /* SiteCellViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteCellViewModelTests.swift; sourceTree = "<group>"; };
9DE7483A2539072500282144 /* HormoneCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCellViewModel.swift; sourceTree = "<group>"; };
9DE7483E2539187500282144 /* HormoneCellViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCellViewModelTests.swift; sourceTree = "<group>"; };
9DFD8EA424FF340F00E7C3A8 /* MOHormoneList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOHormoneList.swift; sourceTree = "<group>"; };
9DFD8EA624FFD09200E7C3A8 /* MOPillList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOPillList.swift; sourceTree = "<group>"; };
9DFD8EA824FFD09B00E7C3A8 /* MOSiteList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOSiteList.swift; sourceTree = "<group>"; };
9DFD8EAA24FFD12400E7C3A8 /* MOEntityList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOEntityList.swift; sourceTree = "<group>"; };
9DFD8EAC2500335900E7C3A8 /* DateFormatterFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateFormatterFactory.swift; sourceTree = "<group>"; };
9DFE2ACD26C04895002FE451 /* PDSerialTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDSerialTestCase.swift; sourceTree = "<group>"; };
9DFE2ACF26C04EFF002FE451 /* PillXDaysIntegrationTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillXDaysIntegrationTestCase.swift; sourceTree = "<group>"; };
A184E95B2D89C3E200215B0D /* lint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = lint.yml; sourceTree = "<group>"; };
A184E95F2D8A1D6E00215B0D /* tasks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = tasks.swift; sourceTree = "<group>"; };
B40CC9AF21CCE614002364BB /* PDKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PDKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B40CC9B321CCE614002364BB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B40CC9BF21CD7DA9002364BB /* CoreDataStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataStack.swift; sourceTree = "<group>"; };
B435182A20F5D72C00BD268C /* HormoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneCell.swift; sourceTree = "<group>"; };
B4355D8F20ED2C1A0048D466 /* PillSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillSchedule.swift; sourceTree = "<group>"; };
B4355D9120ED2E6A0048D466 /* SiteSchedule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteSchedule.swift; sourceTree = "<group>"; };
B4355D9320ED6F250048D466 /* MOPill.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOPill.swift; sourceTree = "<group>"; };
B458993B20F8822700D36B06 /* MOSite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOSite.swift; sourceTree = "<group>"; };
B458994120F8865C00D36B06 /* MOHormone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MOHormone.swift; sourceTree = "<group>"; };
B468414121DC815A00A0BE73 /* HormoneScheduleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HormoneScheduleTests.swift; sourceTree = "<group>"; };
B468F4A020D9BDBA007FC689 /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
B480EE1C21CC7553002C2238 /* PatchData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PatchData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B480EE1E21CC7553002C2238 /* PatchData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PatchData.h; sourceTree = "<group>"; };
B480EE1F21CC7553002C2238 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B480EE2421CC7554002C2238 /* PatchDataTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PatchDataTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B480EE2D21CC7554002C2238 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B49A4A3E20DB2D4C00F24FC0 /* PDKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PDKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B49A4A4020DB2D4C00F24FC0 /* PDKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PDKit.h; sourceTree = "<group>"; };
B49A4A4120DB2D4C00F24FC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
137330E61E22BA3E0048F91E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
84A6248B283AAC0500D59CD7 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
9D69B1D7256C7B2200213E79 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D69B1DE256C7B2200213E79 /* SwiftUI.framework in Frameworks */,
9D4D05F1256F61D20037A2E6 /* PDKit.framework in Frameworks */,
9D69B1DC256C7B2200213E79 /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
9D6E9AEB2456253A003BBCC9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D6E9B37245DBF84003BBCC9 /* XCTest.framework in Frameworks */,
9D6E9B2F245DBD45003BBCC9 /* PDKit.framework in Frameworks */,
9D6E9B30245DBD45003BBCC9 /* PDTest.framework in Frameworks */,
9D6E9B2E245DBD45003BBCC9 /* PatchData.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
9D8A980E23C573B3004E20FE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D6E9B2B245DB2ED003BBCC9 /* PDKit.framework in Frameworks */,
9D5EF42B265AD1FF00F562A8 /* XCTest.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B40CC9AC21CCE614002364BB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D6E9B33245DBD5B003BBCC9 /* PDTest.framework in Frameworks */,
B40CC9B421CCE614002364BB /* PDKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B480EE1921CC7553002C2238 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
B4700F1E21E571DF00C8EFB6 /* PDKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B480EE2121CC7554002C2238 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D6E9B35245DBD6B003BBCC9 /* PDKit.framework in Frameworks */,
9D6E9B34245DBD65003BBCC9 /* PDTest.framework in Frameworks */,
B480EE2521CC7554002C2238 /* PatchData.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B49A4A3A20DB2D4C00F24FC0 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
137330E01E22BA3E0048F91E = {
isa = PBXGroup;
children = (
A184E95F2D8A1D6E00215B0D /* tasks.swift */,
A184E95D2D89C3E200215B0D /* .github */,
9D21797025D9F7B600FC3187 /* .gitignore */,
9D21797125D9F7B600FC3187 /* .swiftlint.yml */,
9D42114325D4AFD500087CDD /* CHANGELOG.md */,
9D42114225D4AFD500087CDD /* CONTRIBUTING.md */,
9D42114425D4AFD500087CDD /* README.md */,
137330EB1E22BA3E0048F91E /* PatchDay */,
B49A4A3F20DB2D4C00F24FC0 /* PDKit */,
B40CC9B021CCE614002364BB /* PDKitTests */,
B480EE1D21CC7553002C2238 /* PatchData */,
B480EE2A21CC7554002C2238 /* PatchDataTests */,
9D8A981223C573B3004E20FE /* PDTest */,
9D6E9AEF2456253A003BBCC9 /* PatchDayTests */,
9D69B1DF256C7B2200213E79 /* NextHormoneWidget */,
84A6248F283AAC0500D59CD7 /* PatchDayUITests */,
B468F49F20D9BDBA007FC689 /* Frameworks */,
137330EA1E22BA3E0048F91E /* Products */,
);
sourceTree = "<group>";
};