Shiny.Beacons 3.0.0-alpha-0497

Prefix Reserved
This is a prerelease version of Shiny.Beacons.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Shiny.Beacons --version 3.0.0-alpha-0497
                    
NuGet\Install-Package Shiny.Beacons -Version 3.0.0-alpha-0497
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Shiny.Beacons" Version="3.0.0-alpha-0497" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Shiny.Beacons" Version="3.0.0-alpha-0497" />
                    
Directory.Packages.props
<PackageReference Include="Shiny.Beacons" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Shiny.Beacons --version 3.0.0-alpha-0497
                    
#r "nuget: Shiny.Beacons, 3.0.0-alpha-0497"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Shiny.Beacons@3.0.0-alpha-0497
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Shiny.Beacons&version=3.0.0-alpha-0497&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Shiny.Beacons&version=3.0.0-alpha-0497&prerelease
                    
Install as a Cake Tool

Shiny v3 ALPHA for Microsoft Application UI (MAUI), Xamarin, & WebAssembly

<img src="https://github.com/shinyorg/shiny/raw/master/art/logo.png" width="100" />

THIS IS THE ALPHA/UNSTABLE BRANCH - FOR STABLE XAMARIN GO HERE

Shiny is a cross platform framework designed to make working with device services and background processes easy, testable, and consistent while bringing things like dependency injection & logging in a structured way to your code!

Features

  • Handles all of the cruft like Permissions, main thread traversal, persistent storage and app restarts
  • Brings your infrastructure to the background
  • Provides logging to ensure you know when your services fail in the background
  • Gives a clean & testable API surface for your code
  • Periodic Background Jobs
  • BLE Client & Hosting
  • Beacons Ranging & Monitoring
  • Locations - GPS, Geofencing, & Activity Monitoring (driving, walking, etc)
  • Push Notification - Native, Azure Notifications Hubs, Firebase, and more
  • Local Notifications - best of breed local notifications supporting almost all features across all of the supported platforms

Visual Studio Templates

These templates will help get you up & running quickly. Simply select what features of Shiny you want to use and they will wire up everything from permissions to app configuration.

GitHub NuGet

dotnet new --install Shiny.Templates

Support Shiny!

While Shiny is free and will continue to be so, maintenance and support takes a heavy toll on sustainability. If you or your company have the resources, please consider becoming a GitHub Sponsor. GitHub Sponsorships help to make Open Source Development more sustainable.

Depending on your Sponsorship Tier, you may also get access to some great benefits on Sponsor Connect (https://sponsorconnect.dev) including:

  • The Sponsor Only Discord server
  • Training available ONLY to sponsors on Sponsor Connect
  • Special sponsor-only packages

https://sponsor.shinylib.net

How about some Shiny Gear

Contributors

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-android33.0 is compatible.  net7.0-ios was computed.  net7.0-ios16.1 is compatible.  net7.0-maccatalyst was computed.  net7.0-maccatalyst16.1 is compatible.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed.  monoandroid12.0 is compatible. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed.  xamarinios10 is compatible. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Shiny.Beacons:

Package Downloads
Shiny.Testing

Shiny mocks to make your unit testing life easier

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0-beta-0093 149 9/21/2025
4.0.0-beta-0092 276 9/17/2025
4.0.0-beta-0091 163 8/18/2025
4.0.0-beta-0086 188 6/23/2025
4.0.0-beta-0084 184 6/4/2025
4.0.0-beta-0083 172 6/3/2025
4.0.0-beta-0082 178 6/3/2025
4.0.0-beta-0081 106 5/30/2025
4.0.0-beta-0079 168 5/29/2025
4.0.0-beta-0075 120 5/24/2025
4.0.0-beta-0069 214 4/8/2025
4.0.0-beta-0061 195 4/3/2025
4.0.0-beta-0057 191 4/1/2025
4.0.0-beta-0055 162 3/27/2025
4.0.0-beta-0054 493 3/26/2025
4.0.0-beta-0049 130 3/21/2025
4.0.0-beta-0048 139 3/21/2025
4.0.0-beta-0047 173 3/20/2025
4.0.0-beta-0046 187 3/20/2025
4.0.0-beta-0040 165 6/14/2024
3.4.0-beta-0010 252 3/6/2025
3.4.0-beta-0009 139 2/5/2025
3.4.0-beta-0006 129 2/4/2025
3.4.0-beta-0005 130 2/4/2025
3.4.0-beta-0003 149 2/4/2025
3.3.4 1,248 1/15/2025
3.3.3 1,247 4/8/2024
3.3.3-beta-0007 161 4/8/2024
3.3.3-beta-0003 158 4/8/2024
3.3.2 210 3/26/2024
3.3.1 195 3/26/2024
3.3.0 202 3/18/2024
3.3.0-beta-0011 142 3/14/2024
3.3.0-beta-0009 139 3/12/2024
3.3.0-beta-0003 186 2/28/2024
3.2.4 347 2/3/2024
3.2.4-beta-0004 160 2/3/2024
3.2.4-beta-0002 154 2/2/2024
3.2.3 209 1/19/2024
3.2.2 250 1/3/2024
3.2.1 226 12/20/2023
3.2.0 248 12/11/2023
3.2.0-beta-0049 156 1/12/2024
3.2.0-beta-0042 170 1/3/2024
3.2.0-beta-0041 166 1/3/2024
3.2.0-beta-0034 183 12/20/2023
3.2.0-beta-0025 194 12/10/2023
3.2.0-beta-0022 200 11/29/2023
3.2.0-beta-0019 207 11/25/2023
3.2.0-beta-0010 193 11/11/2023
3.2.0-beta-0006 177 11/8/2023
3.1.2 408 11/8/2023
3.1.1 252 11/2/2023
3.1.0 239 10/27/2023
3.1.0-beta-0018 179 11/2/2023
3.1.0-beta-0017 213 10/27/2023
3.1.0-beta-0007 201 10/17/2023
3.1.0-beta-0005 204 10/14/2023
3.1.0-beta-0004 203 10/14/2023
3.0.1 987 9/20/2023
3.0.1-beta-0016 192 9/20/2023
3.0.1-beta-0002 199 9/14/2023
3.0.0 288 9/5/2023
3.0.0-beta-0305 252 9/1/2023
3.0.0-beta-0301 223 8/31/2023
3.0.0-beta-0300 252 8/31/2023
3.0.0-beta-0296 237 8/28/2023
3.0.0-beta-0293 248 8/28/2023
3.0.0-beta-0292 224 8/28/2023
3.0.0-beta-0282 231 8/25/2023
3.0.0-beta-0277 226 8/20/2023
3.0.0-beta-0273 220 8/20/2023
3.0.0-beta-0257 242 8/15/2023
3.0.0-beta-0245 240 8/8/2023
3.0.0-beta-0241 251 7/31/2023
3.0.0-beta-0231 265 7/25/2023
3.0.0-beta-0230 263 7/25/2023
3.0.0-beta-0215 262 7/18/2023
3.0.0-beta-0210 262 7/12/2023
3.0.0-beta-0200 274 7/5/2023
3.0.0-beta-0199 268 7/5/2023
3.0.0-beta-0179 311 6/27/2023
3.0.0-beta-0174 230 6/26/2023
3.0.0-beta-0165 228 6/22/2023
3.0.0-beta-0154 249 6/17/2023
3.0.0-beta-0153 229 6/16/2023
3.0.0-beta-0124 252 6/1/2023
3.0.0-beta-0122 252 5/31/2023
3.0.0-beta-0116 278 5/30/2023
3.0.0-beta-0114 279 5/29/2023
3.0.0-beta-0092 277 5/16/2023
3.0.0-beta-0081 239 5/13/2023
3.0.0-beta-0073 243 5/12/2023
3.0.0-beta-0039 253 5/7/2023
3.0.0-beta-0031 253 5/5/2023
3.0.0-beta-0026 258 4/28/2023
3.0.0-beta-0023 265 4/26/2023
3.0.0-beta-0015 263 4/22/2023
3.0.0-beta-0001 296 4/14/2023
3.0.0-alpha-0608 265 4/13/2023
3.0.0-alpha-0604 254 4/13/2023
3.0.0-alpha-0593 282 4/7/2023
3.0.0-alpha-0560 292 3/28/2023
3.0.0-alpha-0557 286 3/27/2023
3.0.0-alpha-0552 280 3/26/2023
3.0.0-alpha-0550 275 3/25/2023
3.0.0-alpha-0548 290 3/25/2023
3.0.0-alpha-0545 282 3/25/2023
3.0.0-alpha-0543 276 3/24/2023
3.0.0-alpha-0540 286 3/24/2023
3.0.0-alpha-0533 292 3/14/2023
3.0.0-alpha-0532 265 3/12/2023
3.0.0-alpha-0530 256 3/6/2023
3.0.0-alpha-0523 293 3/1/2023
3.0.0-alpha-0516 263 2/27/2023
3.0.0-alpha-0513 235 2/26/2023
3.0.0-alpha-0497 269 2/23/2023
3.0.0-alpha-0496 292 2/4/2023
3.0.0-alpha-0495 331 1/12/2023
3.0.0-alpha-0491 317 12/24/2022
3.0.0-alpha-0489 280 12/23/2022
3.0.0-alpha-0470 279 12/15/2022
3.0.0-alpha-0427 316 12/4/2022
3.0.0-alpha-0423 285 12/1/2022
3.0.0-alpha-0402 306 11/19/2022
3.0.0-alpha-0399 275 11/12/2022
3.0.0-alpha-0396 302 11/12/2022
3.0.0-alpha-0392 313 10/29/2022
3.0.0-alpha-0391 298 10/27/2022
3.0.0-alpha-0387 337 10/25/2022
3.0.0-alpha-0384 311 10/24/2022
3.0.0-alpha-0381 330 10/18/2022
3.0.0-alpha-0376 297 10/7/2022
3.0.0-alpha-0370 319 10/4/2022
3.0.0-alpha-0360 302 10/3/2022
3.0.0-alpha-0354 293 10/1/2022
3.0.0-alpha-0348 330 9/26/2022
3.0.0-alpha-0344 295 9/25/2022
3.0.0-alpha-0343 294 9/24/2022
3.0.0-alpha-0338 317 9/22/2022
3.0.0-alpha-0329 323 9/20/2022
3.0.0-alpha-0310 288 9/3/2022
3.0.0-alpha-0283 297 8/24/2022
3.0.0-alpha-0266 323 8/13/2022
3.0.0-alpha-0245 321 8/10/2022
3.0.0-alpha-0225 303 8/9/2022
3.0.0-alpha-0216 314 8/7/2022
3.0.0-alpha-0208 306 8/5/2022
3.0.0-alpha-0204 292 7/31/2022
3.0.0-alpha-0181 315 7/25/2022
3.0.0-alpha-0172 287 7/22/2022
3.0.0-alpha-0167 313 7/19/2022
3.0.0-alpha-0160 296 7/18/2022
3.0.0-alpha-0158 322 7/18/2022
3.0.0-alpha-0157 303 7/17/2022
3.0.0-alpha-0156 323 7/16/2022
3.0.0-alpha-0155 318 7/15/2022
3.0.0-alpha-0142 315 7/14/2022
3.0.0-alpha-0128 344 6/16/2022
3.0.0-alpha-0102 301 6/6/2022
3.0.0-alpha-0099 307 6/2/2022
3.0.0-alpha-0090 326 5/25/2022
3.0.0-alpha-0087 276 5/24/2022
3.0.0-alpha-0084 304 5/24/2022
3.0.0-alpha-0082 291 5/23/2022
3.0.0-alpha-0079 309 5/21/2022
3.0.0-alpha-0075 302 5/20/2022
3.0.0-alpha-0002 312 5/5/2022
2.7.3 1,465 8/25/2023
2.7.2 1,201 4/17/2023
2.7.1 622 11/11/2022
2.7.0 588 10/29/2022
2.6.3 675 9/14/2022
2.6.2 647 8/26/2022
2.6.1 663 8/15/2022
2.6.0 675 8/9/2022
2.5.5 2,119 6/17/2022
2.5.4 704 6/7/2022
2.5.3 793 6/1/2022
2.5.2 660 5/25/2022
2.5.1 926 5/10/2022
2.5.0-preview-3124 319 5/5/2022
2.5.0-preview-3117 312 5/3/2022
2.5.0-preview-3109 296 4/26/2022
2.5.0-preview-3108 317 4/25/2022
2.5.0-preview-3107 323 4/24/2022
2.5.0-preview-3100 347 4/22/2022
2.5.0-preview-3096-g833b58f618 288 4/22/2022
2.5.0-preview.3067 253 3/28/2022
2.5.0-preview.3062 231 3/26/2022
2.5.0-preview.3061 231 3/26/2022
2.5.0-preview.3045 228 3/23/2022
2.5.0-preview.3040 227 3/22/2022
2.5.0-preview.3028 216 3/21/2022
2.5.0-gceb9616c08 312 5/5/2022
2.4.3.3024 1,048 3/14/2022
2.4.3.3023 943 3/14/2022
2.4.3.3022 954 3/14/2022
2.4.3.3021 1,018 3/14/2022
2.4.3.3003 1,585 2/9/2022
2.4.3.3002-preview 373 2/9/2022
2.4.3.3000-preview 391 2/7/2022
2.4.3.2998-preview 404 2/5/2022
2.4.2.2996 1,167 1/11/2022
2.4.2.2995-preview 414 1/11/2022
2.4.1.2971 802 12/2/2021
2.4.1.2970-preview 410 12/2/2021
2.4.0.2967-preview 718 11/21/2021
2.4.0.2960 716 11/18/2021
2.3.0.2958 670 11/18/2021
2.3.0.2957-preview 413 11/18/2021
2.3.0.2946-preview 487 11/13/2021
2.3.0.2940-preview 472 11/11/2021
2.3.0.2936-preview 541 11/5/2021
2.3.0.2932-preview 425 11/4/2021
2.3.0.2923-preview 603 10/30/2021
2.3.0.2919-preview 527 10/29/2021
2.3.0.2909-preview 521 10/21/2021
2.3.0.2906 1,602 10/16/2021
2.3.0.2902-preview 490 10/14/2021
2.3.0.2898-preview 552 10/11/2021
2.3.0.2894-preview 504 10/10/2021
2.3.0.2891-preview 482 10/6/2021
2.3.0.2890-preview 526 10/5/2021
2.3.0.2888-preview 496 10/1/2021
2.3.0.2881-preview 466 9/27/2021
2.3.0.2879-preview 504 9/27/2021
2.3.0.2877-preview 464 9/24/2021
2.3.0.2869-preview 587 9/11/2021
2.3.0.2855-preview 476 8/25/2021
2.3.0.2852-preview 477 8/24/2021
2.3.0.2850-preview 451 8/24/2021
2.3.0.2848-preview 532 8/22/2021
2.2.0.2829 965 7/30/2021
2.2.0.2826-preview 550 7/29/2021
2.2.0.2824-preview 493 7/29/2021
2.2.0.2820-preview 525 7/27/2021
2.2.0.2818-preview 555 7/25/2021
2.2.0.2814-preview 512 7/22/2021
2.2.0.2813-preview 471 7/22/2021
2.2.0.2812-preview 468 7/22/2021
2.2.0.2804-preview 507 7/22/2021
2.2.0.2801-preview 456 7/19/2021
2.2.0.2800-preview 455 7/19/2021
2.2.0.2798-preview 497 7/19/2021
2.2.0.2791-preview 502 7/15/2021
2.2.0.2776-preview 509 7/8/2021
2.2.0.2762-preview 581 6/27/2021
2.2.0.2759-preview 506 6/19/2021
2.2.0.2753-preview 514 6/14/2021
2.1.0.2769 1,303 7/3/2021
2.1.0.2757 1,881 6/19/2021
2.1.0.2748-preview 464 6/13/2021
2.1.0.2744-preview 532 6/11/2021
2.1.0.2741 1,718 6/10/2021
2.1.0.2740-preview 512 6/10/2021
2.1.0.2731-preview 524 6/6/2021
2.1.0.2729-preview 491 6/6/2021
2.1.0.2710-preview 596 5/31/2021
2.1.0.2707-preview 582 5/29/2021
2.0.2696-preview 488 5/26/2021
2.0.2692-preview 510 5/26/2021
2.0.2691-preview 395 5/26/2021
2.0.2689-preview 423 5/26/2021
2.0.2687-preview 402 5/26/2021
2.0.2685-preview 405 5/26/2021
2.0.2682-preview 405 5/26/2021
2.0.2673-preview 515 5/20/2021
2.0.2672-preview 487 5/20/2021
2.0.2667-preview 576 5/16/2021
2.0.0.2655-preview 464 5/10/2021
2.0.0.2639 1,057 5/5/2021
2.0.0.2636-preview 544 4/30/2021
2.0.0.2632-preview 466 4/30/2021
2.0.0.2630-preview 509 4/29/2021
2.0.0.2628-preview 462 4/29/2021
2.0.0.2608-preview 488 4/21/2021
2.0.0.2606-preview 514 4/19/2021
2.0.0.2604-preview 532 4/19/2021
2.0.0.2593-preview 495 4/15/2021
2.0.0.2591-preview 502 4/15/2021
2.0.0.2579-preview 505 3/31/2021
2.0.0.2572-preview 463 3/29/2021
2.0.0.2570-preview 508 3/25/2021
2.0.0.2567-preview 495 3/25/2021
2.0.0.2560-preview 528 3/23/2021
2.0.0.2542-preview 553 3/15/2021
2.0.0.2533-preview 1,713 3/2/2021
2.0.0.2531-preview 506 3/2/2021
2.0.0.2524-preview 501 2/26/2021
2.0.0.2522-preview 496 2/26/2021
2.0.0.2518-preview 545 2/26/2021
2.0.0.2516-preview 538 2/25/2021
2.0.0.2508-preview 982 2/23/2021
2.0.0.2501-preview 484 2/18/2021
2.0.0.2487-preview 485 2/14/2021
2.0.0.2476-preview 526 2/12/2021
2.0.0.2462-preview 511 2/2/2021
2.0.0.2458-preview 481 1/29/2021
2.0.0.2450-preview 497 1/26/2021
2.0.0.2448-preview 468 1/25/2021
2.0.0.2434-preview 500 1/11/2021
2.0.0.2431-preview 628 1/10/2021
2.0.0.2427-preview 538 1/8/2021
2.0.0.2424-preview 558 1/7/2021
2.0.0.2417-preview 562 1/5/2021
2.0.0.2412-preview 602 1/1/2021
2.0.0.2410-preview 649 1/1/2021
2.0.0.2404-preview 607 12/26/2020
2.0.0.2401-preview 579 12/25/2020
2.0.0.2396-preview 516 12/22/2020
2.0.0.2394-preview 517 12/22/2020
2.0.0.2392-preview 638 12/22/2020
2.0.0.2389-preview 586 12/21/2020
2.0.0.2381-preview 563 12/15/2020
2.0.0.2373-preview 966 12/11/2020
2.0.0.2356-preview 644 11/9/2020
2.0.0.2349-preview 589 10/29/2020
2.0.0.2348-preview 756 10/29/2020
2.0.0.2337-preview 597 10/24/2020
2.0.0.2334-preview 594 10/24/2020
2.0.0.2333-preview 589 10/23/2020
2.0.0.2322-preview 617 10/20/2020
2.0.0.2320-preview 596 10/19/2020
2.0.0.2317-preview 598 10/19/2020
2.0.0.2312-preview 584 10/17/2020
2.0.0.2311-preview 511 10/17/2020
2.0.0.2310-preview 631 10/17/2020
2.0.0.2294-preview 587 10/13/2020
2.0.0.2285-preview 651 10/10/2020
2.0.0.2280-preview 2,353 10/8/2020
2.0.0.28-preview 531 10/17/2020
1.2.0.1755-beta 2,970 6/18/2020
1.2.0.1686-beta 1,101 6/4/2020
1.1.0.1570-beta 1,530 5/6/2020
1.1.0.1473-beta 2,578 3/17/2020
1.1.0.1469-beta 715 3/17/2020
1.1.0.1449-beta 1,303 3/12/2020
1.0.0.1182-beta 940 1/24/2020
1.0.0.1181-beta 587 1/24/2020
1.0.0.1179-beta 574 1/24/2020
1.0.0.1174-beta 650 1/24/2020
1.0.0.572-beta 584 1/16/2020
1.0.0.567-beta 605 1/16/2020
1.0.0.560-beta 698 1/11/2020
1.0.0.556-beta 726 1/11/2020
1.0.0.531-beta 907 12/22/2019
1.0.0.525-beta 568 12/21/2019
1.0.0.484-beta 1,607 11/1/2019
1.0.0.464-beta 807 10/19/2019
1.0.0.462-beta 705 10/18/2019
1.0.0.454-beta 791 10/15/2019
1.0.0.425-beta 767 9/27/2019
1.0.0.400-beta 808 9/17/2019
1.0.0.398-beta 684 9/17/2019
1.0.0.391-beta 1,075 9/13/2019
1.0.0.375-beta 705 9/9/2019
1.0.0.357-beta 742 8/21/2019
1.0.0.332-beta 731 8/11/2019
1.0.0.330-beta 813 8/10/2019
1.0.0.306-beta 719 8/1/2019
1.0.0.304-beta 747 8/1/2019
1.0.0.300-beta 714 7/30/2019
1.0.0.280-beta 736 7/20/2019
1.0.0.264-beta 723 7/7/2019
1.0.0.261-beta 723 7/6/2019
1.0.0.252-beta 755 7/1/2019
1.0.0.250-beta 733 6/29/2019
1.0.0.244-beta 766 6/27/2019
1.0.0.238-beta 813 6/18/2019
1.0.0.232-beta 676 6/15/2019
1.0.0.226-beta 753 6/13/2019
1.0.0.217-beta 770 6/10/2019
1.0.0.197-beta 745 6/5/2019
1.0.0.195-beta 756 6/5/2019
1.0.0.193-beta 747 5/29/2019
1.0.0.187-beta 712 5/25/2019
1.0.0.8-beta 730 5/21/2019
1.0.0.7-beta 694 5/16/2019
1.0.0.3-beta 772 5/7/2019
1.0.0.2-beta 736 4/30/2019
1.0.0 353 5/27/2023