hpcflow-new2 0.2.0a211__py3-none-any.whl → 0.2.0a213__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hpcflow/_version.py +1 -1
- hpcflow/sdk/app.py +15 -24
- hpcflow/sdk/config/callbacks.py +5 -10
- hpcflow/sdk/config/config.py +11 -23
- hpcflow/sdk/core/actions.py +25 -40
- hpcflow/sdk/core/app_aware.py +1 -0
- hpcflow/sdk/core/cache.py +3 -3
- hpcflow/sdk/core/command_files.py +2 -4
- hpcflow/sdk/core/element.py +40 -72
- hpcflow/sdk/core/enums.py +1 -0
- hpcflow/sdk/core/json_like.py +18 -30
- hpcflow/sdk/core/object_list.py +14 -21
- hpcflow/sdk/core/parameters.py +24 -10
- hpcflow/sdk/core/task.py +18 -32
- hpcflow/sdk/core/task_schema.py +1 -1
- hpcflow/sdk/core/types.py +1 -2
- hpcflow/sdk/core/utils.py +10 -17
- hpcflow/sdk/core/validation.py +11 -22
- hpcflow/sdk/core/workflow.py +16 -24
- hpcflow/sdk/persistence/base.py +68 -116
- hpcflow/sdk/persistence/discovery.py +1 -0
- hpcflow/sdk/persistence/zarr.py +12 -12
- hpcflow/sdk/submission/enums.py +1 -0
- hpcflow/sdk/submission/jobscript.py +8 -10
- hpcflow/sdk/submission/schedulers/direct.py +2 -4
- hpcflow/sdk/submission/shells/__init__.py +1 -0
- hpcflow/sdk/submission/submission.py +11 -13
- hpcflow/sdk/utils/arrays.py +2 -4
- hpcflow/tests/unit/test_multi_path_sequences.py +23 -0
- {hpcflow_new2-0.2.0a211.dist-info → hpcflow_new2-0.2.0a213.dist-info}/METADATA +2 -2
- {hpcflow_new2-0.2.0a211.dist-info → hpcflow_new2-0.2.0a213.dist-info}/RECORD +34 -34
- {hpcflow_new2-0.2.0a211.dist-info → hpcflow_new2-0.2.0a213.dist-info}/LICENSE +0 -0
- {hpcflow_new2-0.2.0a211.dist-info → hpcflow_new2-0.2.0a213.dist-info}/WHEEL +0 -0
- {hpcflow_new2-0.2.0a211.dist-info → hpcflow_new2-0.2.0a213.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: hpcflow-new2
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.0a213
|
4
4
|
Summary: Computational workflow management
|
5
5
|
License: MPL-2.0
|
6
6
|
Author: aplowman
|
@@ -15,7 +15,7 @@ Provides-Extra: test
|
|
15
15
|
Requires-Dist: aiohttp (>=3.8.4,<4.0.0)
|
16
16
|
Requires-Dist: click (>=8.1.3,<9.0.0)
|
17
17
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
18
|
-
Requires-Dist: fsspec (>=
|
18
|
+
Requires-Dist: fsspec (>=2025.3.2,<2026.0.0)
|
19
19
|
Requires-Dist: h5py (>=3.9.0,<4.0.0)
|
20
20
|
Requires-Dist: msgpack (>=1.0.4,<2.0.0)
|
21
21
|
Requires-Dist: numcodecs (==0.12.1) ; python_version < "3.13"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
hpcflow/__init__.py,sha256=WIETuRHeOp2SqUqHUzpjQ-lk9acbYv-6aWOhZPRdlhs,64
|
2
2
|
hpcflow/__pyinstaller/__init__.py,sha256=YOzBlPSck6slucv6lJM9K80JtsJWxXRL00cv6tRj3oc,98
|
3
3
|
hpcflow/__pyinstaller/hook-hpcflow.py,sha256=P2b-8QdQqkSS7cJB6CB3CudUuJ9iZzTh2fQF4hNdCa4,1118
|
4
|
-
hpcflow/_version.py,sha256=
|
4
|
+
hpcflow/_version.py,sha256=RoPILa8kxRG1ZkdllsYNNoDukTcfDSzZJNmDHqkuhBU,26
|
5
5
|
hpcflow/app.py,sha256=gl2viVS65PbpDhUp2DARaYHFDqDWQjuoyB3ikrCNRW4,1367
|
6
6
|
hpcflow/cli.py,sha256=G2J3D9v6MnMWOWMMWK6UEKLn_6wnV9lT_qygEBBxg-I,66
|
7
7
|
hpcflow/data/demo_data_manifest/__init__.py,sha256=Hsq0jT8EXM13wu1MpGy5FQgyuz56ygep4VWOnulFn50,41
|
@@ -63,42 +63,42 @@ hpcflow/data/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
63
63
|
hpcflow/data/workflows/workflow_1.yaml,sha256=lF7Re2SVc_5gQk5AwB0gXaq-n-T5ia4su3zNQ9oMRV0,220
|
64
64
|
hpcflow/examples.ipynb,sha256=cLKp4QsxwwMXRanDnfWY9kqsV23q6G4raOpu6IZXnMw,28553
|
65
65
|
hpcflow/sdk/__init__.py,sha256=BEbIz8adCAX06ZmvEcquEu29PmQDvVP1I1qn_q78dYc,6289
|
66
|
-
hpcflow/sdk/app.py,sha256=
|
66
|
+
hpcflow/sdk/app.py,sha256=Gn-b-tVcfWZJWtS6aANDj0RFXkoEcngr0pmpUV4suUk,146660
|
67
67
|
hpcflow/sdk/cli.py,sha256=C_7Ts6TbspTZtUXlPwF37Vt-t71NABJ_2zNpZLYFPUE,45563
|
68
68
|
hpcflow/sdk/cli_common.py,sha256=MO0TbC280JdZTLnxSV15wE7PDNx83sotpJsyAN1E2F4,10458
|
69
69
|
hpcflow/sdk/config/__init__.py,sha256=pkufl_CXm_Kswk1x7LTavuplWjUbUCitK0AJ2E60gwM,137
|
70
|
-
hpcflow/sdk/config/callbacks.py,sha256=
|
70
|
+
hpcflow/sdk/config/callbacks.py,sha256=cuW31ZW0YTOi5K5P-NYHuiK1YLsglMEH3c_u6mddVE8,8078
|
71
71
|
hpcflow/sdk/config/cli.py,sha256=RLgludpnnyyWrgKNOYTh6dJnh_6VTqguBq0OzytNleE,11750
|
72
|
-
hpcflow/sdk/config/config.py,sha256=
|
72
|
+
hpcflow/sdk/config/config.py,sha256=nw45j0eUM2W0y7tAEPaffgZ_h1uAGhbt_HOarGX0oj8,45771
|
73
73
|
hpcflow/sdk/config/config_file.py,sha256=wfDjozV9lXTnaxQoe-z-1Y7dtO0N4o1kgEwKtrL27-Y,15857
|
74
74
|
hpcflow/sdk/config/errors.py,sha256=Ft0e0rqIh9NoxWu3R8RSHel2fLONrXrgmFdNGZ_nOac,8341
|
75
75
|
hpcflow/sdk/config/types.py,sha256=hw8latN2PqgGB_cOcD2pmgf5hSE7Dl94xLGKosydpCo,3935
|
76
76
|
hpcflow/sdk/core/__init__.py,sha256=uxvGIUmzvFvylxFL4OGoKHs8GABHHPFaki-Xyc7Nquk,861
|
77
|
-
hpcflow/sdk/core/actions.py,sha256=
|
78
|
-
hpcflow/sdk/core/app_aware.py,sha256=
|
79
|
-
hpcflow/sdk/core/cache.py,sha256=
|
80
|
-
hpcflow/sdk/core/command_files.py,sha256=
|
77
|
+
hpcflow/sdk/core/actions.py,sha256=4FMVIzL8R3qh4mTrcDaKEFDX8IBlI66LT150TNUnLoM,118105
|
78
|
+
hpcflow/sdk/core/app_aware.py,sha256=SnQCix09IHhqPAHBpbdhQAf3wDKvO6n6ym4XJ8vrv1s,569
|
79
|
+
hpcflow/sdk/core/cache.py,sha256=6b0emvJGP-yf5UxKmEY_s4_gdyUfaNaXafq-qQaoBfU,8174
|
80
|
+
hpcflow/sdk/core/command_files.py,sha256=LcrK7wjQnxmTDUrsC0Xgbjsy1NGodf62LrrTSNAAxxE,24942
|
81
81
|
hpcflow/sdk/core/commands.py,sha256=vFyZ9Cv_tvGqSGtVEnAHAeXA-HAxWoF0nmf1e0bFCvs,15993
|
82
|
-
hpcflow/sdk/core/element.py,sha256=
|
83
|
-
hpcflow/sdk/core/enums.py,sha256=
|
82
|
+
hpcflow/sdk/core/element.py,sha256=pPRezx0HATKH55qEstXp1xOG4S8oGLVnJ3sQcEmLsXo,68152
|
83
|
+
hpcflow/sdk/core/enums.py,sha256=BV_cFqTWkME3zVLswmb21QXeIiCBb9_9avr6VIhL3HM,4387
|
84
84
|
hpcflow/sdk/core/environment.py,sha256=m0Qp4Y1XcPJ1yPrdHp6RJv9_H61nA9Qo2ZJV_-wGne8,7959
|
85
85
|
hpcflow/sdk/core/errors.py,sha256=5Bjk1w8FdVP4X7oFCNtzxJ_q4uaSZfQausZkWvYMkS4,28782
|
86
86
|
hpcflow/sdk/core/execute.py,sha256=Gc2SauA4QNA1W4Gi2FYoKoqkoJtGg57cgn1p87WNCIs,7221
|
87
|
-
hpcflow/sdk/core/json_like.py,sha256=
|
87
|
+
hpcflow/sdk/core/json_like.py,sha256=tzCpaarGCHr_NXA-vLcX1jrDYlWbZuAbUPjR6jREhX8,29414
|
88
88
|
hpcflow/sdk/core/loop.py,sha256=vs7pNVe3Io5zNO6Xl_Tqmra9mCJUw8IESLZC4p2QFvo,50084
|
89
89
|
hpcflow/sdk/core/loop_cache.py,sha256=C0t9UpvHFdTmw3bViZ2wccjZWtkbSbN9APvcwzBSREg,10801
|
90
|
-
hpcflow/sdk/core/object_list.py,sha256=
|
91
|
-
hpcflow/sdk/core/parameters.py,sha256=
|
90
|
+
hpcflow/sdk/core/object_list.py,sha256=WvUBb-2DA7-7_7oNoPykSsTihVbGB-1cgHh8W78IzKI,29882
|
91
|
+
hpcflow/sdk/core/parameters.py,sha256=EHl6v_2yQdxlFnN2Vv2slEsSxJuLFJR7CV5IDL8tWJA,98259
|
92
92
|
hpcflow/sdk/core/rule.py,sha256=LiNyKp09a6TRGJvtiB1CcNqgyAIuPhuSW2RVfDWf5FE,6274
|
93
93
|
hpcflow/sdk/core/run_dir_files.py,sha256=yh49BSlswqqyr97x5nDT87qu2MlOLMu7Arzl_B-fxy0,2061
|
94
94
|
hpcflow/sdk/core/skip_reason.py,sha256=xPm8bd8sbPpiZ3sx9ZeW0jxgRQ0TBokSv0XIJKrEW2Y,113
|
95
|
-
hpcflow/sdk/core/task.py,sha256=
|
96
|
-
hpcflow/sdk/core/task_schema.py,sha256=
|
95
|
+
hpcflow/sdk/core/task.py,sha256=7jXQUDU0mVS33b3tVimkHAnC6k1QMofwu45qt7xvuKc,142478
|
96
|
+
hpcflow/sdk/core/task_schema.py,sha256=LjHnpS8ccEWGDQFzGhhAzpMvWGeoUlPDY2XTY2_gqMQ,38844
|
97
97
|
hpcflow/sdk/core/test_utils.py,sha256=UXe8P-1b_6Pn6vdgJfMVsTGJdVI65TZ2mSUgWHlVnnc,13766
|
98
|
-
hpcflow/sdk/core/types.py,sha256=
|
99
|
-
hpcflow/sdk/core/utils.py,sha256=
|
100
|
-
hpcflow/sdk/core/validation.py,sha256=
|
101
|
-
hpcflow/sdk/core/workflow.py,sha256=
|
98
|
+
hpcflow/sdk/core/types.py,sha256=kqVXpiH8qwOVVBAw6GFvUQVdNYLEv7qIbgEkgfK0DO8,13021
|
99
|
+
hpcflow/sdk/core/utils.py,sha256=IFe3nzQjm5UIdRCpmSocHirsbODzwSnhHpQ58dR1PXc,36290
|
100
|
+
hpcflow/sdk/core/validation.py,sha256=4-0g5z3CgjFLQ2FCM0p0mjvNqHYuLhIqvQR_kpM0tsU,1838
|
101
|
+
hpcflow/sdk/core/workflow.py,sha256=Id5CSPvjP_dJUCTWuCGU4bNFmRA-ESW05miVoB44yT4,183535
|
102
102
|
hpcflow/sdk/core/zarr_io.py,sha256=i6WqkFXe-q1sJGTCYAbsNRXRrdkxZy6NRahTcuZPuX4,5906
|
103
103
|
hpcflow/sdk/data/__init__.py,sha256=-YzROirohSKU2UGYj5vkCe_J2KejbzhIjUXNaJwKHLk,568
|
104
104
|
hpcflow/sdk/data/config_file_schema.yaml,sha256=7i3z_m3GBRtLyB4c7qPngnlQWqcIq1CyCcOysDyq4es,791
|
@@ -116,33 +116,33 @@ hpcflow/sdk/helper/helper.py,sha256=T45BEwhPgTlwvqDNbT4Us4UVmdRKRoszIMt8a9B69kE,
|
|
116
116
|
hpcflow/sdk/helper/watcher.py,sha256=VEqYoVo87PT_XCkyHmf8pddWt9SOK7LwIlFYY63hdRw,5616
|
117
117
|
hpcflow/sdk/log.py,sha256=_wqB0qt65nt4oNNV6eyD39bNZyciyH6biyyOgU_MViQ,8285
|
118
118
|
hpcflow/sdk/persistence/__init__.py,sha256=1e6nVADj6xEsE7XGXHaIsHZur4IkUJAxLuxBlvHi0CE,408
|
119
|
-
hpcflow/sdk/persistence/base.py,sha256=
|
119
|
+
hpcflow/sdk/persistence/base.py,sha256=y7L7FFyuTJvy9K_CRFZZH8Cost2seiNz_KKaKZ2XREo,92727
|
120
120
|
hpcflow/sdk/persistence/defaults.py,sha256=hpZk2R9HFqo7YTGaIlts6CGBRzQLn-JXebWc2ZHLBe4,129
|
121
|
-
hpcflow/sdk/persistence/discovery.py,sha256=
|
121
|
+
hpcflow/sdk/persistence/discovery.py,sha256=jEREI651S3FK-Qoz150oIHP72dsuhCFawXRQIy6j_WQ,1320
|
122
122
|
hpcflow/sdk/persistence/json.py,sha256=QUa_xwgcspZWXi6zlIusVRnh4TzDa4xU5UCDcCU6BXE,36746
|
123
123
|
hpcflow/sdk/persistence/pending.py,sha256=JB42Emk2cN639bPlNtQtoFhe5WXGWDJeFm7aFU7j83o,38252
|
124
124
|
hpcflow/sdk/persistence/store_resource.py,sha256=P-VZF7gMIsVvgOsHJEplK1Se4jHsaAqbdoKoQo-7_LU,5903
|
125
125
|
hpcflow/sdk/persistence/types.py,sha256=c4vd8RW8bg8Meoz1HNXjGT8Za9Hpfl1Sxp4pLAgdV0g,9125
|
126
126
|
hpcflow/sdk/persistence/utils.py,sha256=TuQp0BKwiy1-5WTgiMaYXn00bZb6HWHAjs4BBFE9khw,1804
|
127
|
-
hpcflow/sdk/persistence/zarr.py,sha256
|
127
|
+
hpcflow/sdk/persistence/zarr.py,sha256=--H7uWNJ-SlcElFPHvbFZLMqwKsz1qh8oUAogXb8HX0,88249
|
128
128
|
hpcflow/sdk/runtime.py,sha256=vPNu4_DXYMnRyJenkVLq8yt6_XG4tCuwX69Oew4OWmo,11269
|
129
129
|
hpcflow/sdk/submission/__init__.py,sha256=79xJXVkddsuj3uJz3BV9iOnAV7vCeJvLrhKccOA_dnU,67
|
130
|
-
hpcflow/sdk/submission/enums.py,sha256=
|
131
|
-
hpcflow/sdk/submission/jobscript.py,sha256=
|
130
|
+
hpcflow/sdk/submission/enums.py,sha256=DykNHISQDmfa0oDggj6iIKugeFXJd8iF9NwqV3MN2oA,2049
|
131
|
+
hpcflow/sdk/submission/jobscript.py,sha256=rVgca9LUw6ZkAQteFFEKr8kJ0OnRBMJQu8uIWIPeyZY,90343
|
132
132
|
hpcflow/sdk/submission/schedulers/__init__.py,sha256=s3IZ44OViHIOKvU-Qw8FhaYNxgLLpiUSuL-erp5-2D0,8814
|
133
|
-
hpcflow/sdk/submission/schedulers/direct.py,sha256=
|
133
|
+
hpcflow/sdk/submission/schedulers/direct.py,sha256=WyMrCpYRz8kQvq2GFfWvhu-JbnNRsePJHLRcXpvl_Qk,8318
|
134
134
|
hpcflow/sdk/submission/schedulers/sge.py,sha256=P-EJOLsuhDtmRzidzQHvCuOt9mR4eE4HdimDMv-jFvM,13849
|
135
135
|
hpcflow/sdk/submission/schedulers/slurm.py,sha256=011oY2H3Vss-uPZU4PVXNkuwGM1ybezsJo5Vmj-EIpc,24761
|
136
136
|
hpcflow/sdk/submission/schedulers/utils.py,sha256=0g63XpYFEPaei30u7avBzktCwIanKW9XtkQ0JN3fhLk,662
|
137
|
-
hpcflow/sdk/submission/shells/__init__.py,sha256=
|
137
|
+
hpcflow/sdk/submission/shells/__init__.py,sha256=1JSisTL5_gY0yMMnIX96dOTtGNhs6ChxgEURBdc_RCk,1557
|
138
138
|
hpcflow/sdk/submission/shells/base.py,sha256=W8sUVwyIqREZoFOWbM6OIRB57qIRVfmTybprMQ12GSg,7289
|
139
139
|
hpcflow/sdk/submission/shells/bash.py,sha256=Ql_rjNHBSWaxdYwEu2kZG-0VnlNBhA2SWUeNFqR1TIA,16252
|
140
140
|
hpcflow/sdk/submission/shells/os_version.py,sha256=_RK5A56png1Zk4_rzumy17xZ4xVguuPMS0Mll99SKaA,3521
|
141
141
|
hpcflow/sdk/submission/shells/powershell.py,sha256=OFxSEC9Quh-WDFOeYNCQLX_vg-VzO8KdpsYCS9AQfo0,11725
|
142
|
-
hpcflow/sdk/submission/submission.py,sha256=
|
142
|
+
hpcflow/sdk/submission/submission.py,sha256=nbbSxf6Kkn2omsZLk5ZQ1PiW4mMttxR_EH7KPLOAXCQ,51985
|
143
143
|
hpcflow/sdk/submission/types.py,sha256=8xYzjrFbRlTLtZoOwZJZeY3mDI4nCJlLSJ4ekbDoGVI,4220
|
144
144
|
hpcflow/sdk/typing.py,sha256=gu2h7a0RJs_r5UtV8AFVh9TNjo8kGe1n6UOxeH3zdgg,5060
|
145
|
-
hpcflow/sdk/utils/arrays.py,sha256=
|
145
|
+
hpcflow/sdk/utils/arrays.py,sha256=7znIaqfl_bGElZ6U_da0vumWPez6ITyNrSDu_AlACDI,2084
|
146
146
|
hpcflow/sdk/utils/deferred_file.py,sha256=LYIjTPjAmbOflwUaq_-o-O6DZJCQzRHX8dl_rIWTO5c,1381
|
147
147
|
hpcflow/sdk/utils/hashing.py,sha256=40H7yO-oYgrt6RCdlTDDzJV9YIGiQeDx6zGpMJrRKZo,484
|
148
148
|
hpcflow/sdk/utils/patches.py,sha256=jpbodcOjhE5ccrHPz5-L-r9yC7s2ymQccIdJi6Zd2Jo,398
|
@@ -184,7 +184,7 @@ hpcflow/tests/unit/test_jobscript_unit.py,sha256=E_uszw3-3Lf2nBcIUZUngMMIgd0S1X6
|
|
184
184
|
hpcflow/tests/unit/test_json_like.py,sha256=b0_BHW0zfBmc_J848s0ZcYIl4NJkTxNciiAMMRvUCtA,30434
|
185
185
|
hpcflow/tests/unit/test_loop.py,sha256=pN2xVcHhDPYOxR0WA9knVP0F3_PQ3qiXu97wmX32Byc,90046
|
186
186
|
hpcflow/tests/unit/test_meta_task.py,sha256=FEWLuUrP-6e6BO0CRJe2fQDDOZUjz1jfljL_-V7n5Gs,9592
|
187
|
-
hpcflow/tests/unit/test_multi_path_sequences.py,sha256=
|
187
|
+
hpcflow/tests/unit/test_multi_path_sequences.py,sha256=6cVYD2e7jMt-m4sr3Z6ixnKewvs-s--slP344trKIWM,9079
|
188
188
|
hpcflow/tests/unit/test_object_list.py,sha256=uWBou5QCyScaM3DLqL_7RCguMdYZKMkeZR0V8Lpterk,3342
|
189
189
|
hpcflow/tests/unit/test_parameter.py,sha256=_ImfDhmroXzPKwIuKiehsAw9qQPPHC9FQa8jN7OJqoA,7440
|
190
190
|
hpcflow/tests/unit/test_persistence.py,sha256=cwQoa2czgZ0ZDtCRoRSdkfoFMgMQ5qjnef_mhsMWzrc,17472
|
@@ -216,8 +216,8 @@ hpcflow/tests/workflows/test_submission.py,sha256=SUbBUbD8C8LSulrI7aETkzP9RqED48
|
|
216
216
|
hpcflow/tests/workflows/test_workflows.py,sha256=9z3rtXjA5iMOp4C0q4TkD_9kLzwourCY-obpeOtnNt0,18927
|
217
217
|
hpcflow/tests/workflows/test_zip.py,sha256=MzEwsIAYV_1A3bD0XRo23zUwUKVzkkmNd8_cil6YdWQ,578
|
218
218
|
hpcflow/viz_demo.ipynb,sha256=6D9uBbWK3oMfbaf93Tnv5riFPtW-2miUTWNr9kGcnd4,228913
|
219
|
-
hpcflow_new2-0.2.
|
220
|
-
hpcflow_new2-0.2.
|
221
|
-
hpcflow_new2-0.2.
|
222
|
-
hpcflow_new2-0.2.
|
223
|
-
hpcflow_new2-0.2.
|
219
|
+
hpcflow_new2-0.2.0a213.dist-info/LICENSE,sha256=Xhxf_KsrJNJFGMogumZhXSTPhUOVHCWf7nU-TDzqg0E,16763
|
220
|
+
hpcflow_new2-0.2.0a213.dist-info/METADATA,sha256=T2JLad7lOJCKVQ-Ebvbkl-gxKu99acAQTKAtVbvGyDw,2671
|
221
|
+
hpcflow_new2-0.2.0a213.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
222
|
+
hpcflow_new2-0.2.0a213.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
|
223
|
+
hpcflow_new2-0.2.0a213.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|