47ng / nuqs

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.
https://nuqs.47ng.com
MIT License
4.86k stars 104 forks source link

Document max length of URLs #731

Closed Pra3t0r5 closed 2 weeks ago

Pra3t0r5 commented 3 weeks ago

Context

Description

One common issue of this kind of approach is to surpass the max length of an url.

As example and bug report: the demo at the official site are not protected against errors caused by excessively long urls, you might want to review that. Provide a util (like built-in hashing), even!

Reproduction

  1. Access https://nuqs.47ng.com/
  2. Input an absurdly large search key
  3. Hit enter

Result: Screenshot 2024-10-31 at 12 12 43 PM

Example

https://nuqs.47ng.com/?hello=asdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadadadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdadasdadasdasdad

franky47 commented 3 weeks ago

How would you expect it to behave when pasting such a large URL in the browser?

Pra3t0r5 commented 3 weeks ago

Touché @franky47 good Sir! The example is both exaggerated and biased if you paste it directly to the browser, but it's still valid for use cases missing validation.

For that matter, I'm pointing just an opportunity to clarify/enhance the homepage examples and/or the troubleshooting docs, specially for beginners 👍🏻

franky47 commented 3 weeks ago

There is definitely some education to do here: not every state belongs in the URL (I've seen people put way too much in there), and a doc section mentioning limits would be nice. Would you like to try your hand at a PR?

Another thing I thought about is how we transfer URLs: we usually use a web service where we paste the URL text, which then gets turned into an anchor tag when rendered. Those services already impose limits on what they consider to be a valid URL, length surely being one aspect. A good example is that the demo link you gave didn't get registered by GitHub as a URL, and got rendered as plain text instead.

If you have an example of a communication channel allowing clickable links of arbitrary lengths, I'm super interested! I started a spreadsheet of what unencoded characters each platform supports, but length could also be a variable in that database.

niklasbec commented 2 weeks ago

@franky47 Hey, gave it a shot, see this PR

github-actions[bot] commented 1 week ago

:tada: This issue has been resolved in version 2.1.2 :tada:

The release is available on:

Your semantic-release bot :package::rocket: