-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
572 changed files
with
154,950 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Deploy to GitHub Pages | ||
|
||
on: | ||
# Trigger the workflow every time you push to the `main` branch | ||
# Using a different branch name? Replace `main` with your branch’s name | ||
push: | ||
branches: [ main ] | ||
# Allows you to run this workflow manually from the Actions tab on GitHub. | ||
workflow_dispatch: | ||
|
||
# Allow this job to clone the repo and create a page deployment | ||
permissions: | ||
contents: read | ||
pages: write | ||
id-token: write | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout your repository using git | ||
uses: actions/checkout@v4 | ||
- name: Install, build, and upload your site | ||
uses: withastro/action@v2 | ||
with: | ||
# path: . # The root location of your Astro project inside the repository. (optional) | ||
node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 20. (optional) | ||
package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional) | ||
|
||
deploy: | ||
needs: build | ||
runs-on: ubuntu-latest | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
//in DEV Mode process.env does not have .env content | ||
import * as dotenv from 'dotenv' | ||
|
||
dotenv.config() | ||
const rootdir = process.cwd() | ||
|
||
const outdir = (process.env.OUT_DIR==null)?"dist":process.env.OUT_DIR | ||
const base = (process.env.PUBLIC_BASE==null)?"":process.env.PUBLIC_BASE | ||
const contentdir = "content" | ||
|
||
const config = { | ||
rootdir: rootdir, | ||
outDir: outdir, | ||
base: base, | ||
content_path: `${rootdir}/${contentdir}`, | ||
code_path: `${rootdir}/${outdir}/codes`, | ||
plantuml_server: "https://www.plantuml.com/plantuml/svg", | ||
kroki_server: "https://kroki.io", | ||
client_menu:true, | ||
highlighter:{ | ||
theme:"dark-plus", | ||
langs:['javascript','js','python','yaml'] | ||
}, | ||
copy_assets:false, | ||
copy_assets_dir: "_astro", | ||
assets_hash_dir:true //N.A. if(copy_assets == false) | ||
} | ||
|
||
config.collect_content = { | ||
rootdir:config.rootdir, | ||
rel_contentdir:contentdir, | ||
content_ext:["md"], | ||
assets_ext:["svg","webp","png","jpeg","jpg","xlsx","glb","hdr","ico"], | ||
rel_outdir:".structure",//dist does not persist before build | ||
raw_menu:"menu.yaml", | ||
out_menu:"public/menu.json",//used by src\layout\client_nav_menu.js | ||
debug:false | ||
} | ||
|
||
console.log(config) | ||
|
||
export { | ||
config | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
title: ESP32 remote | ||
description: Remote control with up down button for ESP32 | ||
order: 4 | ||
date: 2021-01-01T00:00:00+00:00 | ||
image: ./esp32_remote.png | ||
tags: [Electronics] | ||
--- | ||
|
||
# ESP32 Case for up/down remote control | ||
|
||
 | ||
|
||
[ESP32 Rmote](https://raw.githubusercontent.com/HomeSmartMesh/models/main/esp32_remote.glb) | ||
|
||
:button[]{ label="STL models zip" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/esp32_remote.zip" icon="download"} | ||
|
||
# Application | ||
|
||
 | ||
|
||
:button[]{ label="More details on the ESP32 Arduino code" link="/microcontrollers/esp32/ttgo-t-display#thermostat-control" } | ||
|
||
3D printing creation requires sometimes quite a number of iterations | ||
|
||
 | ||
|
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
--- | ||
title: Handbag hanger | ||
description: Hang your handbag like you hang clothes | ||
date: 2021-01-01T00:00:00+00:00 | ||
orged: 10 | ||
image: ./handbag carrier.jpg | ||
tags: [home] | ||
--- | ||
|
||
# Handbag hanger | ||
|
||
 | ||
|
||
[Handbag hanger](https://raw.githubusercontent.com/HomeSmartMesh/models/main/handbag_hanger.glb) | ||
|
||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/Hang%20bag%20v2.stl" icon="download" } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--- | ||
title: House model | ||
description: House model reproduction | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 12 | ||
image: ./house_images/03 Model Side.jpg | ||
--- | ||
|
||
# House Model | ||
|
||
```yaml gallery | ||
dir: ./house_images | ||
``` | ||
The house model shown above was 3d printed with the model below, then decorated and painted by hand. The roof was made ready plastic material and painted. | ||
[house](https://raw.githubusercontent.com/HomeSmartMesh/models/main/house.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/house.zip" icon="download" } | ||
:button[]{label="Fusion 3D Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/house%20model%20print.f3d" icon="download" } |
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
title: Kayak Trailer | ||
description: minimal weight and size kayak trailer | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 1 | ||
image: ./kayak_trailer/13 shape fit mounted.png | ||
--- | ||
:button[]{ link="/3dprinting" label="← Back to 3D Printing"} | ||
|
||
* Lightweight | ||
* small | ||
* can be taken along, fits in the kayak behind the seat | ||
|
||
models available for free on demand, feel free to ask on the forum | ||
:button[]{label="Home Smart Mesh - website" link="https://github.com/HomeSmartMesh/website/discussions" icon="github"} | ||
|
||
```yaml gallery | ||
dir: ./kayak_trailer | ||
``` |
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
title: Light Switch Cover | ||
description: How to cover a dumb switch with a smart switch | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 2 | ||
image: ./dumb_to_smart.png | ||
tags: [Light] | ||
--- | ||
|
||
# Cover Dumb Switch with Smart Switch | ||
|
||
 | ||
|
||
[Wall Switch](https://raw.githubusercontent.com/HomeSmartMesh/models/main/wall_switch.glb) | ||
|
||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/switch_cover_switch.stl" icon="download" } | ||
|
||
```yaml gallery | ||
dir: ./wall switch | ||
``` | ||
# Application | ||
 | ||
:button[]{link="/frameworks/raspi-iot#hue-light-control" label="More details on the raspberry pi service"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title : 3D Printing | ||
slug: 3dprinting | ||
description: 3D Models for Smart Home, electronics and house utilities | ||
order: 9 | ||
date: 2021-01-17T00:00:00+00:00 | ||
image: ./3dmodels.png | ||
features: | ||
- 3D Models for Smart Home, electronics and house utilities | ||
toc: false | ||
--- | ||
|
||
# 3D Printing | ||
|
||
```yaml cards | ||
- uid: 3dprinting.kayak-trailer | ||
- uid: 3dprinting.light-switch-cover | ||
- uid: 3dprinting.switch-socket-cover | ||
- uid: 3dprinting.under-desk-shelf | ||
- uid: 3dprinting.esp32-remote | ||
- uid: 3dprinting.handbag-hanger | ||
- uid: 3dprinting.house-model | ||
- uid: 3dprinting.voronoi-shapes | ||
``` | ||
# Get in touch | ||
:button[]{ label="Home Smart Mesh - Discussions" link="https://github.com/HomeSmartMesh/website/discussions" icon="github" } | ||
# Gallery | ||
```yaml gallery | ||
dir: ./all models | ||
``` |
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
title: Switch Socket Cover | ||
description: How to cover a dumb switch and a Socket | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 3 | ||
image: ./cover_switch_socket.png | ||
tags: [Light] | ||
--- | ||
|
||
# Cover Dumb Switch and smart Socket | ||
|
||
 | ||
|
||
[Wall Switch Double](https://raw.githubusercontent.com/HomeSmartMesh/models/main/wall_switch_double.glb) | ||
|
||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/wall_switch_double.stl" icon="download"} | ||
|
||
# Application | ||
|
||
 | ||
|
||
:button[]{link="/frameworks/raspi-iot#home-status" label="More details on the raspberry pi service"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
title: Under desk shelf | ||
description: Hang a shelf below the desk fixed with 3d printed joints | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 11 | ||
image: ./shelf/02 Shelf Top View.jpg | ||
tags: [home] | ||
--- | ||
|
||
# Under desk shelf | ||
|
||
```yaml gallery | ||
dir: ./shelf | ||
``` | ||
* Tubula steel legs : 25 mm x 25 mm x 500 mm | ||
:button[]{label="Tubular steel legs on amazon" link="https://www.amazon.de/gp/product/B00LFK5YY6/ref=ppx_yo_dt_b_asin_title_o05_s01?ie=UTF8&psc=1"} | ||
* Screws : M10 x 40 mm | ||
:button[]{label="Hexagon head screws on amazon" link="https://www.amazon.de/gp/product/B07MJY4SJ3/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1"} | ||
[PC Platform](https://raw.githubusercontent.com/HomeSmartMesh/models/main/pc_platform.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/pc_platform.stl" icon="download"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: Voronoi Shapes | ||
description: Randomly generated voronoi shapes | ||
date: 2021-01-01T00:00:00+00:00 | ||
order: 20 | ||
image: ./Voronoi cells.jpg | ||
--- | ||
# Webapp | ||
|
||
:button[]{link="/applications/voronoi" label="Voronoi Generator Tool"} | ||
|
||
## Cells Circle | ||
|
||
 | ||
|
||
[Cells circle](https://raw.githubusercontent.com/HomeSmartMesh/models/main/cells_circle.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/cells_circle.stl" icon="download" } | ||
|
||
## Fantasy pen holder | ||
|
||
[Fantasy Pen holder](https://raw.githubusercontent.com/HomeSmartMesh/models/main/fantasy_pen_holder.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/fantasy_pen_holder.stl" icon="download" } | ||
|
||
## Fantasy Turtle Flower | ||
|
||
[turtle Flower](https://raw.githubusercontent.com/HomeSmartMesh/models/main/trtl_flower.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/trtl_flower.stl" icon="download" } | ||
|
||
## Girafe round | ||
|
||
[girafe round](https://raw.githubusercontent.com/HomeSmartMesh/models/main/girafe_round.glb) | ||
:button[]{label="STL Model" link="https://raw.githubusercontent.com/HomeSmartMesh/models/main/girafe_round.stl" icon="download" } | ||
|
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
thingy53: | ||
vendor: nordic | ||
soc: nRF5340 | ||
sensors: | ||
- BH1749 | ||
- BME688 | ||
- ADXL362 | ||
- BMI270 | ||
- BMM150 | ||
- VM3011 | ||
page: https://www.nordicsemi.com/Products/Development-hardware/Nordic-Thingy-53 |
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
--- | ||
title: Home Assistant | ||
description: "Integration of different Protocols, Networks and Frameworks in Home assistant" | ||
date: 2021-02-13T08:48:57+00:00 | ||
lastmod: 2021-02-13T08:48:57+00:00 | ||
order: 4 | ||
image: ./hassio.png | ||
tags: [Framework] | ||
toc: true | ||
--- | ||
|
||
:button[]{link="https://www.home-assistant.io/" label="Official Website" } | ||
|
||
# Automations | ||
## Symfonisk volume rotary remote | ||
The gola of this Automation is to adjust the volume of the sonos system with the rotation but also use the press to play pause another system wich is a smart Samsung Tv. | ||
- zigbee2mqtt : https://www.zigbee2mqtt.io/ | ||
- blueprint : https://epmatt.github.io/awesome-ha-blueprints/docs/blueprints/controllers/ikea_e1744 | ||
- HA entity input_text : https://www.home-assistant.io/integrations/input_text/ | ||
|
||
**alternative to HA Integration** : Without HA, it is necessary to pair the rotary remote with IKEA gateway, although it is enough to control the volume, it does not allow fine adjutment and combining functions with different devices. | ||
# Bluetooth | ||
## BLE Bluetooth Low Energy | ||
|
||
* This is a simple integration that tracks BLE devices and beacons without even requiring pairing (privacy notice might be required) | ||
|
||
:button[]{link="https://www.home-assistant.io/integrations/bluetooth_le_tracker/" label="BLE Tracker" icon="new" } | ||
|
||
# Bluetooth Mesh | ||
* One investigation path for integrating Bluetooth mesh in Home Assistant is bridging it through an ip layer using the `Bearer Layer` of the [BLE Architecture](https://en.wikipedia.org/wiki/Bluetooth_mesh_networking#Architecture) | ||
|
||
`BLE Mesh => IP => MQTT-SN => MQTT => Home Assistant` | ||
|
||
# MQTT | ||
|
||
* MQTT : Message Queuing Telemetry Transport, is a first class citizen in Home Assistant | ||
|
||
:button[]{link="https://www.home-assistant.io/integrations/mqtt/" label="MQTT Integration" icon="new" } | ||
|
||
# Zigbee | ||
|
||
* Zigbee : Low power mesh network, allows to extend the network with repeater devices e.g. zigbee light bulbs. This Home Assistant inetgration is based on [Zigpy](https://github.com/zigpy/zigpy) | ||
|
||
:button[]{link="https://www.home-assistant.io/integrations/zha/" label="MQTT Integration" icon="new" } | ||
|
||
# Thread | ||
## CHIP - Connected Home Over IP | ||
|
||
* I'm still analyzing the options how CHIP can or will be integrated in Home Assistant | ||
|
||
:button[]{link="/frameworks/chip/" label="Project CHIP"} | ||
|
||
## MQTT-SN over Thread | ||
* MQTT-SN integration should be trensparent to Home Assistant and treated as any other MQTT connection | ||
* MQTT-SN is a light weight protocol that plays the role of a bridge between an MQTT broker and constrained devices that need to minimise payload and packets traffic. Therefore it's appropriate for Low power wirelss mesh netwroks such as Thread | ||
|
||
:button[]{link="/networks/thread#mqtt-sn" label="Thread - MQTT-SN"} |
Oops, something went wrong.
Oops, something went wrong.