makea-cli 0.2.6__tar.gz → 0.2.8__tar.gz
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.
- {makea_cli-0.2.6 → makea_cli-0.2.8}/CHANGELOG.md +15 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/PKG-INFO +3 -3
- {makea_cli-0.2.6 → makea_cli-0.2.8}/README.md +2 -2
- makea_cli-0.2.8/makea_cli/__init__.py +1 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/api_client.py +10 -3
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/factory/cmd.py +13 -1
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/orders/cmd.py +9 -2
- {makea_cli-0.2.6 → makea_cli-0.2.8}/pyproject.toml +1 -1
- {makea_cli-0.2.6 → makea_cli-0.2.8}/tests/golden_manifest.json +25 -1
- makea_cli-0.2.6/makea_cli/__init__.py +0 -1
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/create-supplier-profile/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/lark-cli-setup/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/link-supplier-user/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/makea-cli-setup/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/payment-revenue-report/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.claude/skills/supplier-user-id-migration/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/.gitignore +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea-collection-upload/SKILL.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea-collection-upload/scripts/create_products.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/__main__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/auth_pkce.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/broker.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/_util.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/analytics/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/analytics/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/auth/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/auth/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/brand/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/brand/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/designer/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/designer/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/directory/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/directory/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/document/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/document/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/email/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/email/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/factory/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/library/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/library/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/metrics/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/metrics/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/orders/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/product/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/product/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/production/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/production/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/production/pricing_spec.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/supplier/__init__.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/commands/supplier/cmd.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/config.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/errors.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/identity.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/main.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/output.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/posthog_client.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/makea_cli/registry.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/npm/makea-cli/README.md +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/npm/makea-cli/makea-cli.mjs +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/npm/makea-cli/package.json +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/tests/test_broker.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/tests/test_output_contract.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/tests/test_persona_commands.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/tests/test_registry.py +0 -0
- {makea_cli-0.2.6 → makea_cli-0.2.8}/uv.lock +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.8
|
|
4
|
+
|
|
5
|
+
- `supplier get pack <quote_request_id> --readable`: the pack as a person reads
|
|
6
|
+
it, each section's filled fields (label and value) and the essential fields
|
|
7
|
+
still blank, instead of the full payload the quote form renders (100KB+ on a
|
|
8
|
+
large pack). For Beeboo acting for a factory through the CLI. Needs the
|
|
9
|
+
backend's `view=readable`; `supplier get pack` also no longer needs the
|
|
10
|
+
backend to be told the product (it is read off the quote request).
|
|
11
|
+
|
|
12
|
+
## 0.2.7
|
|
13
|
+
|
|
14
|
+
- `admin update tracking-status ... --silent`: move the orders without
|
|
15
|
+
telling anyone (no email, WhatsApp or WeChat). For parcels that landed long
|
|
16
|
+
before anyone noticed, where a "your order has arrived" email would confuse.
|
|
17
|
+
|
|
3
18
|
## 0.2.6
|
|
4
19
|
|
|
5
20
|
- `admin update tracking-status <kind> <order_id> <tracking_number> --status Delivered`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: makea-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: Makea admin CLI (browser login + Makea admin HTTP API)
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: click<9,>=8.1
|
|
@@ -131,7 +131,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
131
131
|
| `makea-cli admin update quote-request` | write(ask) | `PATCH /admin/quote_requests/{quote_request_id}/update` | set a quote request's stage, status and/or due date. Only what you pass is changed. This is the door that unblocks a … | `update-quote-request` |
|
|
132
132
|
| `makea-cli admin update supplier` | write(ask) | `PUT /admin/supplier/update_supplier` | update an existing supplier from a JSON file (admin). Run `makea-cli get-supplier-profile-schema` FIRST to get the fi… | `update-supplier` |
|
|
133
133
|
| `makea-cli admin update tech-spec` | write(ask) | `POST /admin/products/{id}/technical-specifications` | persist specs from a JSON file. | `save-product-tech-spec` |
|
|
134
|
-
| `makea-cli admin update tracking-status` | write(ask) | `POST /admin/tracking/carrier_status` | apply a carrier status looked up by hand (tracking-sweep skill) to one order. Runs the 17track webhook path: status, fan-out, delivered emails. | — |
|
|
134
|
+
| `makea-cli admin update tracking-status` | write(ask) | `POST /admin/tracking/carrier_status` | apply a carrier status looked up by hand (tracking-sweep skill) to one order. Runs the 17track webhook path: status, fan-out, delivered emails (--silent: state only). | — |
|
|
135
135
|
| `makea-cli admin update user` | write(ask) | `PUT /admin/user-profiles/{user_id}/update` | admin updates DynamoDB user profile fields and/or Cognito custom:userType. Allowed --user-type values: "Fashion brand… | `update-user-profile` |
|
|
136
136
|
| `makea-cli admin upload financial-document` | write(auto) | `POST /admin/products/{product_id}/financial_documents` | upload one or more files to AWS S3 and return financial document metadata. | `upload-financial-documents` |
|
|
137
137
|
| `makea-cli admin upload link-document` | write(auto) | `POST /admin/upload_link_document` | upload a file to AWS S3 and return document domain metadata for reuse as input in other commands. | `upload-link-document` |
|
|
@@ -197,7 +197,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
197
197
|
|---|---|---|---|---|
|
|
198
198
|
| `makea-cli supplier create note` | write(ask) | `POST /supplier/products/{id}/channels/{key}/notes` | post a message into a product channel you are part of. | — |
|
|
199
199
|
| `makea-cli supplier download document` | read | `GET /supplier/document/download` | save a document you are allowed to read. | — |
|
|
200
|
-
| `makea-cli supplier get pack` | read | `GET /supplier/quote_requests/{id}/technical-specifications` | the tech pack for an RFQ, as the factory is allowed to see it. | — |
|
|
200
|
+
| `makea-cli supplier get pack` | read | `GET /supplier/quote_requests/{id}/technical-specifications` | the tech pack for an RFQ, as the factory is allowed to see it (`--readable`: labels, values and blank essentials only). | — |
|
|
201
201
|
| `makea-cli supplier get pack-changes` | read | `GET /supplier/products/{product_id}/specification-change-history` | what changed in the pack since you quoted, field by field. | — |
|
|
202
202
|
| `makea-cli supplier get profile` | read | `GET /supplier/profile` | your own supplier profile. | — |
|
|
203
203
|
| `makea-cli supplier get rfq` | read | `GET /supplier/quote_requests` | one RFQ in full. | — |
|
|
@@ -119,7 +119,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
119
119
|
| `makea-cli admin update quote-request` | write(ask) | `PATCH /admin/quote_requests/{quote_request_id}/update` | set a quote request's stage, status and/or due date. Only what you pass is changed. This is the door that unblocks a … | `update-quote-request` |
|
|
120
120
|
| `makea-cli admin update supplier` | write(ask) | `PUT /admin/supplier/update_supplier` | update an existing supplier from a JSON file (admin). Run `makea-cli get-supplier-profile-schema` FIRST to get the fi… | `update-supplier` |
|
|
121
121
|
| `makea-cli admin update tech-spec` | write(ask) | `POST /admin/products/{id}/technical-specifications` | persist specs from a JSON file. | `save-product-tech-spec` |
|
|
122
|
-
| `makea-cli admin update tracking-status` | write(ask) | `POST /admin/tracking/carrier_status` | apply a carrier status looked up by hand (tracking-sweep skill) to one order. Runs the 17track webhook path: status, fan-out, delivered emails. | — |
|
|
122
|
+
| `makea-cli admin update tracking-status` | write(ask) | `POST /admin/tracking/carrier_status` | apply a carrier status looked up by hand (tracking-sweep skill) to one order. Runs the 17track webhook path: status, fan-out, delivered emails (--silent: state only). | — |
|
|
123
123
|
| `makea-cli admin update user` | write(ask) | `PUT /admin/user-profiles/{user_id}/update` | admin updates DynamoDB user profile fields and/or Cognito custom:userType. Allowed --user-type values: "Fashion brand… | `update-user-profile` |
|
|
124
124
|
| `makea-cli admin upload financial-document` | write(auto) | `POST /admin/products/{product_id}/financial_documents` | upload one or more files to AWS S3 and return financial document metadata. | `upload-financial-documents` |
|
|
125
125
|
| `makea-cli admin upload link-document` | write(auto) | `POST /admin/upload_link_document` | upload a file to AWS S3 and return document domain metadata for reuse as input in other commands. | `upload-link-document` |
|
|
@@ -185,7 +185,7 @@ exit code:`0` 成功 · `2` 用法错 · `3` 未登录或身份与 persona 不
|
|
|
185
185
|
|---|---|---|---|---|
|
|
186
186
|
| `makea-cli supplier create note` | write(ask) | `POST /supplier/products/{id}/channels/{key}/notes` | post a message into a product channel you are part of. | — |
|
|
187
187
|
| `makea-cli supplier download document` | read | `GET /supplier/document/download` | save a document you are allowed to read. | — |
|
|
188
|
-
| `makea-cli supplier get pack` | read | `GET /supplier/quote_requests/{id}/technical-specifications` | the tech pack for an RFQ, as the factory is allowed to see it. | — |
|
|
188
|
+
| `makea-cli supplier get pack` | read | `GET /supplier/quote_requests/{id}/technical-specifications` | the tech pack for an RFQ, as the factory is allowed to see it (`--readable`: labels, values and blank essentials only). | — |
|
|
189
189
|
| `makea-cli supplier get pack-changes` | read | `GET /supplier/products/{product_id}/specification-change-history` | what changed in the pack since you quoted, field by field. | — |
|
|
190
190
|
| `makea-cli supplier get profile` | read | `GET /supplier/profile` | your own supplier profile. | — |
|
|
191
191
|
| `makea-cli supplier get rfq` | read | `GET /supplier/quote_requests` | one RFQ in full. | — |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.8"
|
|
@@ -1044,9 +1044,16 @@ def supplier_list_quote_requests(*, quote_request_id: str | None = None) -> Any:
|
|
|
1044
1044
|
return get_json("/supplier/quote_requests", params=params)
|
|
1045
1045
|
|
|
1046
1046
|
|
|
1047
|
-
def supplier_get_quote_request_tech_spec(quote_request_id: str) -> Any:
|
|
1048
|
-
"""GET /supplier/quote_requests/{id}/technical-specifications — the pack as the factory sees it.
|
|
1049
|
-
|
|
1047
|
+
def supplier_get_quote_request_tech_spec(quote_request_id: str, *, readable: bool = False) -> Any:
|
|
1048
|
+
"""GET /supplier/quote_requests/{id}/technical-specifications — the pack as the factory sees it.
|
|
1049
|
+
|
|
1050
|
+
``readable`` asks for ``view=readable``: section, field label, value and the
|
|
1051
|
+
essentials still blank, instead of the full payload the quote form renders.
|
|
1052
|
+
"""
|
|
1053
|
+
params = {"view": "readable"} if readable else None
|
|
1054
|
+
return get_json(
|
|
1055
|
+
f"/supplier/quote_requests/{quote_request_id}/technical-specifications", params=params
|
|
1056
|
+
)
|
|
1050
1057
|
|
|
1051
1058
|
|
|
1052
1059
|
def supplier_list_production_orders(*, quote_request_id: str | None = None) -> Any:
|
|
@@ -72,10 +72,22 @@ def register(app: typer.Typer) -> None:
|
|
|
72
72
|
)
|
|
73
73
|
def get_pack(
|
|
74
74
|
quote_request_id: str = typer.Argument(..., help="The quote request whose pack to read."),
|
|
75
|
+
readable: bool = typer.Option(
|
|
76
|
+
False,
|
|
77
|
+
"--readable",
|
|
78
|
+
help=(
|
|
79
|
+
"Only what a person reads: each section's filled fields (label and "
|
|
80
|
+
"value) and the essential fields still blank. The full payload runs "
|
|
81
|
+
"to 100KB+ on a large pack."
|
|
82
|
+
),
|
|
83
|
+
),
|
|
75
84
|
) -> None:
|
|
76
85
|
"""Read the technical specification behind an RFQ."""
|
|
77
86
|
print_json_or_exit(
|
|
78
|
-
console,
|
|
87
|
+
console,
|
|
88
|
+
lambda: api_client.supplier_get_quote_request_tech_spec(
|
|
89
|
+
quote_request_id, readable=readable
|
|
90
|
+
),
|
|
79
91
|
)
|
|
80
92
|
|
|
81
93
|
@command(
|
|
@@ -323,7 +323,7 @@ def register(app: typer.Typer) -> None:
|
|
|
323
323
|
api="POST /admin/tracking/carrier_status",
|
|
324
324
|
side_effects=[
|
|
325
325
|
"moves the order to delivered when the status says so",
|
|
326
|
-
"emails and messages the designer, supplier and admins as the 17track webhook did",
|
|
326
|
+
"emails and messages the designer, supplier and admins as the 17track webhook did (none with --silent)",
|
|
327
327
|
],
|
|
328
328
|
approval="ask",
|
|
329
329
|
idempotent=True,
|
|
@@ -349,13 +349,19 @@ def register(app: typer.Typer) -> None:
|
|
|
349
349
|
time_utc: str | None = typer.Option(
|
|
350
350
|
None, "--time", help="Latest event time, ISO 8601 UTC."
|
|
351
351
|
),
|
|
352
|
+
silent: bool = typer.Option(
|
|
353
|
+
False,
|
|
354
|
+
"--silent",
|
|
355
|
+
help="Change state only: no email, WhatsApp or WeChat to anyone. For parcels that landed long ago.",
|
|
356
|
+
),
|
|
352
357
|
) -> None:
|
|
353
358
|
"""
|
|
354
359
|
Tell Makea what the carrier says about one parcel.
|
|
355
360
|
|
|
356
361
|
Output: JSON from the webhook path: success, status, and one entry per
|
|
357
362
|
order the number was fanned out to. Repeating a Delivered update is a
|
|
358
|
-
no-op (no second email).
|
|
363
|
+
no-op (no second email). --silent moves the orders without telling
|
|
364
|
+
anyone.
|
|
359
365
|
"""
|
|
360
366
|
track_info = {
|
|
361
367
|
"latest_status": {"status": status, "sub_status": sub_status},
|
|
@@ -374,6 +380,7 @@ def register(app: typer.Typer) -> None:
|
|
|
374
380
|
"order_id": order_id,
|
|
375
381
|
"tracking_number": tracking_number,
|
|
376
382
|
"track_info": track_info,
|
|
383
|
+
"notify": not silent,
|
|
377
384
|
},
|
|
378
385
|
),
|
|
379
386
|
)
|
|
@@ -3574,7 +3574,7 @@
|
|
|
3574
3574
|
"external": null,
|
|
3575
3575
|
"side_effects": [
|
|
3576
3576
|
"moves the order to delivered when the status says so",
|
|
3577
|
-
"emails and messages the designer, supplier and admins as the 17track webhook did"
|
|
3577
|
+
"emails and messages the designer, supplier and admins as the 17track webhook did (none with --silent)"
|
|
3578
3578
|
],
|
|
3579
3579
|
"approval": "ask",
|
|
3580
3580
|
"reversible": null,
|
|
@@ -3679,6 +3679,18 @@
|
|
|
3679
3679
|
"multiple": false,
|
|
3680
3680
|
"default": null,
|
|
3681
3681
|
"help": "Latest event time, ISO 8601 UTC."
|
|
3682
|
+
},
|
|
3683
|
+
{
|
|
3684
|
+
"name": "silent",
|
|
3685
|
+
"kind": "option",
|
|
3686
|
+
"opts": [
|
|
3687
|
+
"--silent"
|
|
3688
|
+
],
|
|
3689
|
+
"type": "flag",
|
|
3690
|
+
"required": false,
|
|
3691
|
+
"multiple": false,
|
|
3692
|
+
"default": false,
|
|
3693
|
+
"help": "Change state only: no email, WhatsApp or WeChat to anyone. For parcels that landed long ago."
|
|
3682
3694
|
}
|
|
3683
3695
|
]
|
|
3684
3696
|
},
|
|
@@ -6836,6 +6848,18 @@
|
|
|
6836
6848
|
"multiple": false,
|
|
6837
6849
|
"default": null,
|
|
6838
6850
|
"help": "The quote request whose pack to read."
|
|
6851
|
+
},
|
|
6852
|
+
{
|
|
6853
|
+
"name": "readable",
|
|
6854
|
+
"kind": "option",
|
|
6855
|
+
"opts": [
|
|
6856
|
+
"--readable"
|
|
6857
|
+
],
|
|
6858
|
+
"type": "flag",
|
|
6859
|
+
"required": false,
|
|
6860
|
+
"multiple": false,
|
|
6861
|
+
"default": false,
|
|
6862
|
+
"help": "Only what a person reads: each section's filled fields (label and value) and the essential fields still blank. The full payload runs to 100KB+ on a large pack."
|
|
6839
6863
|
}
|
|
6840
6864
|
]
|
|
6841
6865
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.6"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|