Compare commits
13 commits
master
...
delete_unu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e105676c5 | ||
|
|
6cf30fd00c | ||
|
|
4eac0e55f5 | ||
|
|
8809337489 | ||
|
|
ff858f5dbd | ||
|
|
1a5114cb1e | ||
|
|
6a687dc3d8 | ||
|
|
0061277410 | ||
|
|
bb6058b764 | ||
|
|
43b072702b | ||
|
|
3f74c32201 | ||
|
|
16647cf860 | ||
|
|
aa3eaf0be5 |
2 changed files with 46 additions and 35 deletions
|
|
@ -9,45 +9,52 @@ ALL_PLATFORMS={
|
||||||
"cpx" : ["arduino:samd:adafruit_circuitplayground_m0", "0x68ed2b88", None],
|
"cpx" : ["arduino:samd:adafruit_circuitplayground_m0", "0x68ed2b88", None],
|
||||||
# Espressif
|
# Espressif
|
||||||
"esp8266" : ["esp8266:esp8266:huzzah:eesz=4M3M,xtal=80", None, None],
|
"esp8266" : ["esp8266:esp8266:huzzah:eesz=4M3M,xtal=80", None, None],
|
||||||
"esp32" : ["esp32:esp32:featheresp32:FlashFreq=80", None, None],
|
"esp32" : ["espressif:esp32:featheresp32:FlashFreq=80", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"itsybitsy_esp32" : ["esp32:esp32:adafruit_itsybitsy_esp32:FlashFreq=80", None, None],
|
"itsybitsy_esp32" : ["espressif:esp32:adafruit_itsybitsy_esp32:FlashFreq=80", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp8266" : ["esp8266:esp8266:huzzah:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200", None, None],
|
"feather_esp8266" : ["esp8266:esp8266:huzzah:xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200", None, None],
|
||||||
"feather_esp32" : ["esp32:esp32:featheresp32:FlashFreq=80", None, None],
|
"feather_esp32" : ["espressif:esp32:featheresp32:FlashFreq=80", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"wippersnapper_feather_esp32" : ["esp32:esp32:featheresp32:FlashFreq=80,PartitionScheme=min_spiffs", None, None],
|
"wippersnapper_feather_esp32" : ["espressif:esp32:featheresp32:FlashFreq=80,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32_v2" : ["esp32:esp32:adafruit_feather_esp32_v2", None, None],
|
"feather_esp32_v2" : ["espressif:esp32:adafruit_feather_esp32_v2", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"qtpy_esp32" : ["esp32:esp32:adafruit_qtpy_esp32_pico", None, None],
|
"qtpy_esp32" : ["espressif:esp32:adafruit_qtpy_esp32_pico", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
## ESP32-C3/C6
|
## ESP32-C3/C6
|
||||||
"feather_esp32c6" : ["esp32:esp32:adafruit_feather_esp32c6:FlashMode=qio", None, None],
|
"feather_esp32c6" : ["espressif:esp32:adafruit_feather_esp32c6:FlashMode=qio", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"wippersnapper_feather_esp32c6" : ["esp32:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
"wippersnapper_feather_esp32c6" : ["espressif:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"wippersnapper_feather_esp32c6_debug" : ["esp32:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,DebugLevel=verbose,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
"wippersnapper_feather_esp32c6_debug" : ["espressif:esp32:adafruit_feather_esp32c6:CDCOnBoot=cdc,DebugLevel=verbose,CPUFreq=160,FlashFreq=80,FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"qtpy_esp32c3" : ["esp32:esp32:adafruit_qtpy_esp32c3:FlashMode=qio", None, None],
|
"qtpy_esp32c3" : ["espressif:esp32:adafruit_qtpy_esp32c3:FlashMode=qio", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"wippersnapper_qtpy_esp32c3" : ["esp32:esp32:adafruit_qtpy_esp32c3:FlashMode=qio,PartitionScheme=min_spiffs", None, None],
|
"wippersnapper_qtpy_esp32c3" : ["espressif:esp32:adafruit_qtpy_esp32c3:FlashMode=qio,PartitionScheme=min_spiffs", None, "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
## ESP32-S2
|
## ESP32-S2
|
||||||
"magtag" : ["esp32:esp32:adafruit_magtag29_esp32s2", "0xbfdd4eee", None],
|
"magtag" : ["espressif:esp32:adafruit_magtag29_esp32s2", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"funhouse" : ["esp32:esp32:adafruit_funhouse_esp32s2", "0xbfdd4eee", None],
|
"funhouse" : ["espressif:esp32:adafruit_funhouse_esp32s2", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"funhouse_noota" : ["esp32:esp32:adafruit_funhouse_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", None],
|
"funhouse_noota" : ["espressif:esp32:adafruit_funhouse_esp32s2:PartitionScheme=tinyuf2_noota", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"metroesp32s2" : ["esp32:esp32:adafruit_metro_esp32s2", "0xbfdd4eee", None],
|
"metroesp32s2" : ["espressif:esp32:adafruit_metro_esp32s2", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"qtpy_esp32s2" : ["esp32:esp32:adafruit_qtpy_esp32s2", "0xbfdd4eee", None],
|
"metroesp32s2_debug" : ["espressif:esp32:adafruit_metro_esp32s2:DebugLevel=verbose", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s2" : ["esp32:esp32:adafruit_feather_esp32s2", "0xbfdd4eee", None],
|
"qtpy_esp32s2" : ["espressif:esp32:adafruit_qtpy_esp32s2", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s2_debug" : ["esp32:esp32:adafruit_feather_esp32s2:DebugLevel=verbose", "0xbfdd4eee", None],
|
"feather_esp32s2" : ["espressif:esp32:adafruit_feather_esp32s2", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s2_tft" : ["esp32:esp32:adafruit_feather_esp32s2_tft", "0xbfdd4eee", None],
|
"feather_esp32s2_debug" : ["espressif:esp32:adafruit_feather_esp32s2:DebugLevel=verbose", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s2_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s2_tft:DebugLevel=verbose", "0xbfdd4eee", None],
|
"feather_esp32s2_tft" : ["espressif:esp32:adafruit_feather_esp32s2_tft", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s2_reverse_tft" : ["esp32:esp32:adafruit_feather_esp32s2_reversetft", "0xbfdd4eee", None],
|
"feather_esp32s2_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s2_tft:DebugLevel=verbose", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"feather_esp32s2_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s2_reversetft", "0xbfdd4eee", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
## ESP32-S3
|
## ESP32-S3
|
||||||
"feather_esp32s3" : ["esp32:esp32:adafruit_feather_esp32s3_nopsram", "0xc47e5767", None],
|
"feather_esp32s3" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_debug" : ["esp32:esp32:adafruit_feather_esp32s3_nopsram:DebugLevel=verbose", "0xc47e5767", None],
|
"wippersnapper_feather_esp32s3" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_4mbflash_2mbpsram" : ["esp32:esp32:adafruit_feather_esp32s3", "0xc47e5767", None],
|
"feather_esp32s3_debug" : ["espressif:esp32:adafruit_feather_esp32s3_nopsram:DebugLevel=verbose", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_4mbflash_2mbpsram_debug" : ["esp32:esp32:adafruit_feather_esp32s3:DebugLevel=verbose", "0xc47e5767", None],
|
"wippersnapper_feather_esp32s3_4mbflash_2mbpsram" : ["espressif:esp32:adafruit_feather_esp32s3:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_tft" : ["esp32:esp32:adafruit_feather_esp32s3_tft", "0xc47e5767", None],
|
"feather_esp32s3_4mbflash_2mbpsram" : ["espressif:esp32:adafruit_feather_esp32s3", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s3_tft:DebugLevel=verbose", "0xc47e5767", None],
|
"feather_esp32s3_4mbflash_2mbpsram_debug" : ["espressif:esp32:adafruit_feather_esp32s3:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_reverse_tft" : ["esp32:esp32:adafruit_feather_esp32s3_reversetft", "0xc47e5767", None],
|
"feather_esp32s3_tft" : ["espressif:esp32:adafruit_feather_esp32s3_tft", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"feather_esp32s3_reverse_tft_debug" : ["esp32:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose", "0xc47e5767", None],
|
"wippersnapper_feather_esp32s3_tft" : ["espressif:esp32:adafruit_feather_esp32s3_tft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"feather_esp32s3_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_tft:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"feather_esp32s3_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"feather_esp32s3_reverse_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"wippersnapper_feather_esp32s3_reverse_tft" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"wippersnapper_feather_esp32s3_reverse_tft_debug" : ["espressif:esp32:adafruit_feather_esp32s3_reversetft:DebugLevel=verbose,PartitionScheme=tinyuf2_noota", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"matrixportal_s3" : ["esp32:esp32:adafruit_matrixportal_esp32s3", "0xc47e5767", None],
|
"matrixportal_s3" : ["esp32:esp32:adafruit_matrixportal_esp32s3", "0xc47e5767", None],
|
||||||
"metro_esp32s3" : ["esp32:esp32:adafruit_metro_esp32s3", "0xc47e5767", None],
|
"metro_esp32s3" : ["espressif:esp32:adafruit_metro_esp32s3", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
|
"metro_esp32s3_debug" : ["espressif:esp32:adafruit_metro_esp32s3:DebugLevel=verbose", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"pycamera_s3" : ["esp32:esp32:adafruit_camera_esp32s3", "0xc47e5767", None],
|
"pycamera_s3" : ["esp32:esp32:adafruit_camera_esp32s3", "0xc47e5767", None],
|
||||||
"qualia_s3_rgb666" : ["esp32:esp32:adafruit_qualia_s3_rgb666", "0xc47e5767", None],
|
"qualia_s3_rgb666" : ["esp32:esp32:adafruit_qualia_s3_rgb666", "0xc47e5767", None],
|
||||||
"qtpy_esp32s3" : ["esp32:esp32:adafruit_qtpy_esp32s3_nopsram", "0xc47e5767", None],
|
"qtpy_esp32s3" : ["espressif:esp32:adafruit_qtpy_esp32s3_nopsram", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
"qtpy_esp32s3_n4r2" : ["esp32:esp32:adafruit_qtpy_esp32s3_n4r2", "0xc47e5767", None],
|
"qtpy_esp32s3_n4r2" : ["espressif:esp32:adafruit_qtpy_esp32s3_n4r2", "0xc47e5767", "adafruit/wipper-3.0.7-idf-5.1.4"],
|
||||||
# Adafruit AVR
|
# Adafruit AVR
|
||||||
"trinket_3v" : ["adafruit:avr:trinket3", None, None],
|
"trinket_3v" : ["adafruit:avr:trinket3", None, None],
|
||||||
"trinket_5v" : ["adafruit:avr:trinket5", None, None],
|
"trinket_5v" : ["adafruit:avr:trinket5", None, None],
|
||||||
|
|
@ -103,9 +110,6 @@ ALL_PLATFORMS={
|
||||||
"X_m0" : ["adafruit:samd:adafruit_X_m0", "0x68ed2b88", None],
|
"X_m0" : ["adafruit:samd:adafruit_X_m0", "0x68ed2b88", None],
|
||||||
"qtpy_m0" : ["adafruit:samd:adafruit_qtpy_m0", "0x68ed2b88", None],
|
"qtpy_m0" : ["adafruit:samd:adafruit_qtpy_m0", "0x68ed2b88", None],
|
||||||
"qtpy_m0_tinyusb" : ["adafruit:samd:adafruit_qtpy_m0:usbstack=tinyusb", "0x68ed2b88", None],
|
"qtpy_m0_tinyusb" : ["adafruit:samd:adafruit_qtpy_m0:usbstack=tinyusb", "0x68ed2b88", None],
|
||||||
# Arduino SAMD
|
|
||||||
"mkrwifi1010" : ["arduino:samd:mkrwifi1010", "0x8054", None],
|
|
||||||
"nano_33_iot" : ["arduino:samd:nano_33_iot", "0x8057", None],
|
|
||||||
# Arduino nRF
|
# Arduino nRF
|
||||||
"microbit" : ["sandeepmistry:nRF5:BBCmicrobit:softdevice=s110", None, None],
|
"microbit" : ["sandeepmistry:nRF5:BBCmicrobit:softdevice=s110", None, None],
|
||||||
# Adafruit nRF
|
# Adafruit nRF
|
||||||
|
|
@ -123,6 +127,9 @@ ALL_PLATFORMS={
|
||||||
"pico_rp2350_tinyusb_host" : ["rp2040:rp2040:rpipico2:flash=4194304_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
"pico_rp2350_tinyusb_host" : ["rp2040:rp2040:rpipico2:flash=4194304_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
||||||
"picow_rp2040" : ["rp2040:rp2040:rpipicow:flash=2097152_0,freq=125", "0xe48bff56", None],
|
"picow_rp2040" : ["rp2040:rp2040:rpipicow:flash=2097152_0,freq=125", "0xe48bff56", None],
|
||||||
"picow_rp2040_tinyusb" : ["rp2040:rp2040:rpipicow:flash=2097152_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
"picow_rp2040_tinyusb" : ["rp2040:rp2040:rpipicow:flash=2097152_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
|
"picow_rp2350" : ["rp2040:rp2040:rpipico2w:freq=125,flash=4194304_0", "0xe48bff56", None],
|
||||||
|
"picow_rp2350_tinyusb" : ["rp2040:rp2040:rpipico2w:flash=4194304_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
|
"picow_rp2350_tinyusb_host" : ["rp2040:rp2040:rpipico2w:flash=4194304_131072,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb_host", "0xe48bff56", None],
|
||||||
"feather_rp2040" : ["rp2040:rp2040:adafruit_feather:freq=125,flash=8388608_0", "0xe48bff56", None],
|
"feather_rp2040" : ["rp2040:rp2040:adafruit_feather:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||||
"feather_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_feather:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
"feather_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_feather:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
"feather_rp2040_adalogger" : ["rp2040:rp2040:adafruit_feather_adalogger:freq=125,flash=8388608_0", "0xe48bff56", None],
|
"feather_rp2040_adalogger" : ["rp2040:rp2040:adafruit_feather_adalogger:freq=125,flash=8388608_0", "0xe48bff56", None],
|
||||||
|
|
@ -138,6 +145,8 @@ ALL_PLATFORMS={
|
||||||
"qt_py_rp2040_tinyusb": ["rp2040:rp2040:adafruit_qtpy:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
"qt_py_rp2040_tinyusb": ["rp2040:rp2040:adafruit_qtpy:flash=8388608_0,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
"itsybitsy_rp2040" : ["rp2040:rp2040:adafruit_itsybitsy:freq=125,flash=8388608_524288", "0xe48bff56", None],
|
"itsybitsy_rp2040" : ["rp2040:rp2040:adafruit_itsybitsy:freq=125,flash=8388608_524288", "0xe48bff56", None],
|
||||||
"itsybitsy_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_itsybitsy:flash=8388608_524288,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
"itsybitsy_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_itsybitsy:flash=8388608_524288,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
|
"floppsy_rp2040" : ["rp2040:rp2040:adafruit_floppsy:freq=125,flash=16777216_14680064", "0xe48bff56", None],
|
||||||
|
"floppsy_rp2040_tinyusb" : ["rp2040:rp2040:adafruit_floppsy:flash=16777216_14680064,freq=120,dbgport=Disabled,dbglvl=None,usbstack=tinyusb", "0xe48bff56", None],
|
||||||
|
|
||||||
# Attiny8xy, 16xy, 32xy (SpenceKonde)
|
# Attiny8xy, 16xy, 32xy (SpenceKonde)
|
||||||
"attiny3217" : ["megaTinyCore:megaavr:atxy7:chip=3217", None, None],
|
"attiny3217" : ["megaTinyCore:megaavr:atxy7:chip=3217", None, None],
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,8 @@ def install_platform(fqbn, full_platform_name=None):
|
||||||
install_platform("arduino:avr", full_platform_name)
|
install_platform("arduino:avr", full_platform_name)
|
||||||
if full_platform_name[2] is not None:
|
if full_platform_name[2] is not None:
|
||||||
manually_install_esp32_bsp(full_platform_name[2]) # build esp32 bsp from desired source and branch
|
manually_install_esp32_bsp(full_platform_name[2]) # build esp32 bsp from desired source and branch
|
||||||
|
print(os.popen('arduino-cli core list | grep {}'.format(fqbn)).read(), end='')
|
||||||
|
return # bail out
|
||||||
for retry in range(0, 3):
|
for retry in range(0, 3):
|
||||||
print("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS)
|
print("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS)
|
||||||
if os.system("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS+" > /dev/null") == 0:
|
if os.system("arduino-cli core install "+fqbn+" --additional-urls "+BSP_URLS+" > /dev/null") == 0:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue