mirror of
https://github.com/python-kasa/python-kasa.git
synced 2026-10-30 16:37:20 +00:00
Add fixtures for KH100, KE100 and KE110 and simulate TRV states (#1726)
This PR adds fixture files for: - KH100 (UK), hardware 1.0, firmware 1.7.5 - KE100 (UK), hardware 1.0, firmware 2.15.0 - KE110 (EU), hardware 1.0, firmware 1.4.0 The fixtures were collected from physical devices and anonymized for use in development and testing. The KE110 fixture is a new device model and has been added to the appropriate fixture category. This also improves test suite by adding TRV state simulation to allow tests pass on fixtures that report a non-heating state. --------- Co-authored-by: Teemu Rytilahti <tpr@iki.fi>
This commit is contained in:
175
tests/fixtures/smart/child/KE100(UK)_1.0_2.15.0.json
vendored
Normal file
175
tests/fixtures/smart/child/KE100(UK)_1.0_2.15.0.json
vendored
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"component_nego": {
|
||||
"component_list": [
|
||||
{
|
||||
"id": "device",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "quick_setup",
|
||||
"ver_code": 3
|
||||
},
|
||||
{
|
||||
"id": "time",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "device_local_time",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "schedule",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "countdown",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "account",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "synchronize",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "sunrise_sunset",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "cloud_connect",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "iot_cloud",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "frost_protection",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "child_protection",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "temperature",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "remove_scale",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "early_start",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "screen_setting",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "night_mode",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "firmware",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "battery_detect",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "temp_record",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "progress_calibration",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "temperature_correction",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "window_open_detect",
|
||||
"ver_code": 4
|
||||
},
|
||||
{
|
||||
"id": "shutdown_mode",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "trv_multi_mode",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "smart_control_schedule",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "temp_control",
|
||||
"ver_code": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"get_connect_cloud_state": {
|
||||
"status": 0
|
||||
},
|
||||
"get_device_info": {
|
||||
"at_low_battery": false,
|
||||
"avatar": "kasa_trv",
|
||||
"battery_percentage": 100,
|
||||
"bind_count": 1,
|
||||
"category": "subg.trv",
|
||||
"child_protection": false,
|
||||
"current_temp": 23.3,
|
||||
"device_id": "SCRUBBED_CHILD_DEVICE_ID_1",
|
||||
"frost_protection_on": false,
|
||||
"fw_ver": "2.15.0 Build 260212 Rel.072732",
|
||||
"hidden": false,
|
||||
"hw_id": "00000000000000000000000000000000",
|
||||
"hw_ver": "1.0",
|
||||
"jamming_rssi": -111,
|
||||
"jamming_signal_level": 1,
|
||||
"lastOnboardingTimestamp": 1769099784,
|
||||
"location": "",
|
||||
"mac": "0CEF15000000",
|
||||
"max_control_temp": 30,
|
||||
"min_control_temp": 5,
|
||||
"model": "KE100",
|
||||
"next_schedule_time": 0,
|
||||
"nickname": "I01BU0tFRF9OQU1FIw==",
|
||||
"oem_id": "00000000000000000000000000000000",
|
||||
"parent_device_id": "0000000000000000000000000000000000000000",
|
||||
"region": "Europe/London",
|
||||
"rssi": -41,
|
||||
"signal_level": 3,
|
||||
"specs": "UK",
|
||||
"status": "online",
|
||||
"target_temp": 23.0,
|
||||
"temp_offset": 0,
|
||||
"temp_unit": "celsius",
|
||||
"trv_states": [],
|
||||
"type": "SMART.KASAENERGY"
|
||||
},
|
||||
"get_fw_download_state": {
|
||||
"cloud_cache_seconds": 1,
|
||||
"download_progress": 0,
|
||||
"reboot_time": 5,
|
||||
"status": 0,
|
||||
"upgrade_time": 5
|
||||
},
|
||||
"get_latest_fw": {
|
||||
"fw_size": 0,
|
||||
"fw_ver": "2.15.0 Build 260212 Rel.072732",
|
||||
"hw_id": "",
|
||||
"need_to_upgrade": false,
|
||||
"oem_id": "",
|
||||
"release_date": "",
|
||||
"release_note": "",
|
||||
"type": 0
|
||||
}
|
||||
}
|
||||
797
tests/fixtures/smart/child/KE110(EU)_1.0_1.4.0.json
vendored
Normal file
797
tests/fixtures/smart/child/KE110(EU)_1.0_1.4.0.json
vendored
Normal file
@@ -0,0 +1,797 @@
|
||||
{
|
||||
"component_nego": {
|
||||
"component_list": [
|
||||
{
|
||||
"id": "device",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "quick_setup",
|
||||
"ver_code": 3
|
||||
},
|
||||
{
|
||||
"id": "time",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "device_local_time",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "schedule",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "countdown",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "account",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "synchronize",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "sunrise_sunset",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "cloud_connect",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "iot_cloud",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "frost_protection",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "child_protection",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "temperature",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "remove_scale",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "early_start",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "screen_setting",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "night_mode",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "firmware",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "battery_detect",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "humidity",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "temp_humidity_record",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "comfort_humidity",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "report_mode",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "comfort_temperature",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "boost_mode",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "holdon_mode",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "temperature_correction",
|
||||
"ver_code": 1
|
||||
},
|
||||
{
|
||||
"id": "window_open_detect",
|
||||
"ver_code": 4
|
||||
},
|
||||
{
|
||||
"id": "shutdown_mode",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "smart_control_schedule",
|
||||
"ver_code": 2
|
||||
},
|
||||
{
|
||||
"id": "temp_control",
|
||||
"ver_code": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"get_connect_cloud_state": {
|
||||
"status": 0
|
||||
},
|
||||
"get_device_info": {
|
||||
"at_low_battery": false,
|
||||
"avatar": "kasa_trv",
|
||||
"battery_percentage": 100,
|
||||
"bind_count": 1,
|
||||
"boost_remain_time": 1780479977,
|
||||
"boost_temp": 300,
|
||||
"boost_time": 1800,
|
||||
"category": "subg.trv",
|
||||
"child_protection": false,
|
||||
"current_humidity": 43,
|
||||
"current_humidity_exception": 0,
|
||||
"current_temp": 23.3,
|
||||
"current_temp_exception": 0,
|
||||
"default_boost_temp": 300,
|
||||
"default_boost_time": 1800,
|
||||
"default_hold_on_time": 0,
|
||||
"device_id": "SCRUBBED_CHILD_DEVICE_ID_2",
|
||||
"frost_protection_on": false,
|
||||
"fw_ver": "1.4.0 Build 260330 Rel.011701",
|
||||
"hold_on": false,
|
||||
"hold_on_remain_time": 1780441201,
|
||||
"hold_on_time": 0,
|
||||
"humidity_offset": 0,
|
||||
"hw_id": "00000000000000000000000000000000",
|
||||
"hw_ver": "1.0",
|
||||
"jamming_rssi": -116,
|
||||
"jamming_signal_level": 1,
|
||||
"lastOnboardingTimestamp": 1769099419,
|
||||
"location": "",
|
||||
"mac": "782051000000",
|
||||
"max_control_temp": 30,
|
||||
"min_control_temp": 5,
|
||||
"model": "KE110",
|
||||
"next_schedule_time": 0,
|
||||
"nickname": "I01BU0tFRF9OQU1FIw==",
|
||||
"oem_id": "00000000000000000000000000000000",
|
||||
"parent_device_id": "0000000000000000000000000000000000000000",
|
||||
"region": "Europe/London",
|
||||
"rssi": -41,
|
||||
"signal_level": 3,
|
||||
"specs": "EU",
|
||||
"status": "online",
|
||||
"target_temp": 23.0,
|
||||
"temp_humidity_notification": false,
|
||||
"temp_offset": 0,
|
||||
"temp_unit": "celsius",
|
||||
"trv_states": [],
|
||||
"type": "SMART.KASAENERGY"
|
||||
},
|
||||
"get_fw_download_state": {
|
||||
"cloud_cache_seconds": 1,
|
||||
"download_progress": 0,
|
||||
"reboot_time": 5,
|
||||
"status": 0,
|
||||
"upgrade_time": 5
|
||||
},
|
||||
"get_latest_fw": {
|
||||
"fw_size": 0,
|
||||
"fw_ver": "1.4.0 Build 260330 Rel.011701",
|
||||
"hw_id": "",
|
||||
"need_to_upgrade": false,
|
||||
"oem_id": "",
|
||||
"release_date": "",
|
||||
"release_note": "",
|
||||
"type": 0
|
||||
},
|
||||
"get_temp_humidity_records": {
|
||||
"deviceState": [
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
[]
|
||||
],
|
||||
"heating_time": 0,
|
||||
"local_time": 1784360414,
|
||||
"past24h_humidity": [
|
||||
57,
|
||||
57,
|
||||
58,
|
||||
57,
|
||||
58,
|
||||
53,
|
||||
47,
|
||||
47,
|
||||
49,
|
||||
50,
|
||||
50,
|
||||
51,
|
||||
51,
|
||||
45,
|
||||
45,
|
||||
45,
|
||||
45,
|
||||
44,
|
||||
42,
|
||||
43,
|
||||
41,
|
||||
41,
|
||||
41,
|
||||
42,
|
||||
42,
|
||||
42,
|
||||
42,
|
||||
43,
|
||||
43,
|
||||
44,
|
||||
44,
|
||||
44,
|
||||
45,
|
||||
46,
|
||||
45,
|
||||
46,
|
||||
47,
|
||||
46,
|
||||
45,
|
||||
44,
|
||||
43,
|
||||
41,
|
||||
40,
|
||||
40,
|
||||
42,
|
||||
43,
|
||||
45,
|
||||
46,
|
||||
41,
|
||||
40,
|
||||
40,
|
||||
41,
|
||||
42,
|
||||
43,
|
||||
43,
|
||||
44,
|
||||
44,
|
||||
44,
|
||||
45,
|
||||
45,
|
||||
45,
|
||||
40,
|
||||
40,
|
||||
40,
|
||||
41,
|
||||
42,
|
||||
42,
|
||||
43,
|
||||
44,
|
||||
44,
|
||||
45,
|
||||
46,
|
||||
47,
|
||||
48,
|
||||
48,
|
||||
49,
|
||||
50,
|
||||
51,
|
||||
51,
|
||||
52,
|
||||
52,
|
||||
52,
|
||||
53,
|
||||
53,
|
||||
54,
|
||||
55,
|
||||
56,
|
||||
56,
|
||||
55,
|
||||
56,
|
||||
57,
|
||||
58,
|
||||
58,
|
||||
54,
|
||||
45,
|
||||
43
|
||||
],
|
||||
"past24h_humidity_exception": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"past24h_temp": [
|
||||
281,
|
||||
281,
|
||||
280,
|
||||
280,
|
||||
280,
|
||||
280,
|
||||
267,
|
||||
274,
|
||||
279,
|
||||
283,
|
||||
286,
|
||||
289,
|
||||
290,
|
||||
282,
|
||||
282,
|
||||
283,
|
||||
283,
|
||||
283,
|
||||
277,
|
||||
278,
|
||||
269,
|
||||
260,
|
||||
255,
|
||||
254,
|
||||
249,
|
||||
245,
|
||||
243,
|
||||
263,
|
||||
267,
|
||||
269,
|
||||
271,
|
||||
273,
|
||||
274,
|
||||
275,
|
||||
277,
|
||||
278,
|
||||
279,
|
||||
281,
|
||||
278,
|
||||
283,
|
||||
280,
|
||||
269,
|
||||
264,
|
||||
271,
|
||||
274,
|
||||
282,
|
||||
285,
|
||||
285,
|
||||
275,
|
||||
262,
|
||||
270,
|
||||
276,
|
||||
280,
|
||||
284,
|
||||
286,
|
||||
289,
|
||||
291,
|
||||
291,
|
||||
292,
|
||||
293,
|
||||
292,
|
||||
275,
|
||||
265,
|
||||
251,
|
||||
265,
|
||||
269,
|
||||
271,
|
||||
272,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
273,
|
||||
272,
|
||||
272,
|
||||
272,
|
||||
272,
|
||||
271,
|
||||
271,
|
||||
271,
|
||||
271,
|
||||
271,
|
||||
271,
|
||||
271,
|
||||
270,
|
||||
257,
|
||||
245
|
||||
],
|
||||
"past24h_temp_exception": [
|
||||
21,
|
||||
21,
|
||||
20,
|
||||
20,
|
||||
20,
|
||||
20,
|
||||
7,
|
||||
14,
|
||||
19,
|
||||
23,
|
||||
26,
|
||||
29,
|
||||
30,
|
||||
22,
|
||||
22,
|
||||
23,
|
||||
23,
|
||||
23,
|
||||
17,
|
||||
18,
|
||||
9,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
3,
|
||||
7,
|
||||
9,
|
||||
11,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
21,
|
||||
18,
|
||||
23,
|
||||
20,
|
||||
9,
|
||||
4,
|
||||
11,
|
||||
14,
|
||||
22,
|
||||
25,
|
||||
25,
|
||||
15,
|
||||
2,
|
||||
10,
|
||||
16,
|
||||
20,
|
||||
24,
|
||||
26,
|
||||
29,
|
||||
31,
|
||||
31,
|
||||
32,
|
||||
33,
|
||||
32,
|
||||
15,
|
||||
5,
|
||||
0,
|
||||
5,
|
||||
9,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
13,
|
||||
12,
|
||||
12,
|
||||
12,
|
||||
12,
|
||||
11,
|
||||
11,
|
||||
11,
|
||||
11,
|
||||
11,
|
||||
11,
|
||||
11,
|
||||
10,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"target_temp": [
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230,
|
||||
230
|
||||
],
|
||||
"temp_unit": "celsius"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user