- May 2024
-
news.ycombinator.com news.ycombinator.com
-
For anyone who is interested to learn more about Chitchatter, please check out the project README: https://github.com/jeremyckahn/chitchatter#readme
chitchatter HN
-
-
theuncloud.co theuncloud.co
-
UnCloud docs
p2p chat system
-
-
github.com github.com
-
for: IndyWeb
-
is still limited by a key feature of the web: Creating and Hosting servers.
hosting servers
-
local-first-cyberspace
local-first
-
WebXR flips this on it's head.
WwbXR flips it on it's head
-
A roadmap for realizing a local-first and offline-first cyberspace
l1cs
Tags
Annotators
URL
-
-
www.w3.org www.w3.org
-
WebXR Device API
-
-
blog.mauve.moe blog.mauve.moe
-
Local First Cyberspace Components
follow up
-
-
github.com github.com
-
Error when opening newly created post on ipns sutty site
ipns agregore cache
-
-
github.com github.com
-
Compare writable IPFS gateway with js-ipfs-fetch
ipns cached
-
-
github.com github.com
-
A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers!
-
-
github.com github.com
-
Hypercore Protocol A fast, scalable, and secure peer-to-peer protocol for everyone
-
-
-
Server-sent events for Go
interesting
-
-
ipfs.indy0.net ipfs.indy0.net
-
I created this temporary group chat in order to provide a place that we can post a message among the four of us as needed.
Looks like it does work
-
IndyWeb 🦅 (alpha team)
could create a private annotation group But I do not see the point
Actually all this is to empower the Open Learning Commons and the Indy Learning Commons
-
-
www.youtube.com www.youtube.com
-
remember feeling like a genius when I implemented my first abstraction Factory Singleton proxy decorator in JavaScript
You have been fooled at industrial scale
Javascript's greatest gift to Mankind
as Douglas Crockford the author of "Javascript the Good Parts" said:
Class-free Objects
Now that is just too empowering an idea
let's turn Javascript into Java
and perpetuate all the gratuitous complications that Java is infested with
simply because the underlying concepts are deeply limiting
-
I wish I would have written less code
code is not assets
but a liability
-
10 regrets of experienced programmers
I recently asked "You are on your deathbed, what do you regret the most about programming?". Let's break down the biggest mistakes shared by most software engineers.
-
recently I volunteered my time at a hospice center for dying programmers also known as X and I asked the question
x
-
-
developer.mozilla.org developer.mozilla.org
-
Element: querySelectorAll() method
document.querySelectorAll('meta[property="og:image"]')[0].content
do.how - open graph image
-
-
www.thebeatles.com www.thebeatles.com
-
- There's nothing you can do that can't be done.
- Nothing you can sing that can't be sung.
-
Nothing you can say but you can learn how to play the game.
-
Nothing you can make that can't be made.
- No one you can save that can't be saved.
-
Nothing you can do, but you can learn how to be you in time.
-
There's nothing you can know that isn't known. ❌‽
- Nothing you can see that isn't shown. ❌‽
- Nowhere you can be that isn't where you're meant to be. It's easy
-
Nothing you can do, but you can learn how to be you in time.
learn how to be you thorugh time
-
-
en.wikipedia.org en.wikipedia.org
-
Isomorphic JavaScript
x
-
-
www.youtube.com www.youtube.com
-
talking about ipfs fetch specifically i want to look at how i've combined some of the usual webby interfaces we're used to with some of these cool peer-to-peer interface
.meta.doHow - development on the margins - continue with the practice of articulating on the margin - start to develop on the margins, the software needed to creat & morph annotations
.meta.do.how :- create a card for page
fn.getTitle
``` document.querySelector("title").innerHTML
```
.fn.getOgImage ``` document.querySelectorAll('meta[property="og:image"]')[0].content < 'https://i.ytimg.com/vi/ARkArPQFmXc/maxresdefault.jpg'
```
.real.soon - intent to be able to process annotations
-
.card - titlle: 'IPFS Fetch - Mauve - YouTube' - stub - to:
'https://via.hypothes.is/' + location.href
https://via.hypothes.is/' + location.href -
.do.meta - create card
``` document.querySelector('title').innerHTML 'IPFS Fetch - Mauve - YouTube'
document.querySelectorAll('meta[property="og:image"]')[0].content
'https://i.ytimg.com/vi/ARkArPQFmXc/maxresdefault.jpg'
```
-
.card - title:'IPFS Fetch - Mauve - YouTube' .- src: 'IPFS Fetch - Mauve - YouTube' - stub: - talking about ipfs fetch: - how i've combined some of the usual webby interfaces we're used to with some of these cool peer-to-peer interface
-
IPFS Fetch - Mauve
do.how - create card
get title - document.querySelector('title').innerHTML
get image - document.querySelectorAll('meta[property="og:image"]')[0].content
-
-
www.browserstack.com www.browserstack.com
-
represented
named and amenable to the put to be interpreted in specific context/environment dependent way
-
.card: - title: How to access local host on a mobile device? - stub: BrowserStack have made it easier to test and access local development environments on mobile devices.
-
BrowserStack have made it easier to test and access local development environments on mobile devices
title
-
Test your Local Website on Real Devices Access your local website on real mobile devices. Test its look and feel before launching
-
-
www.digitalocean.com www.digitalocean.com
-
How To Host A Web Server On Android
-
-
archiveweb.page archiveweb.page
-
How To Create Web Archives with ArchiveWeb.page
-
The Internet is hard to archive.
indeed
-
from - Agregore
-
-
www.youtube.com www.youtube.com
-
as you all know Licklider is heading up up ARPA the government funding agency
just listen to the next couple of minutes where he says API is a baaad ide
-
-
github.com github.com
-
About A basic fediverse blocklist for Mastodon admins to block the most well known sources of hate speech, harassment, etc.
-
-
distributed.press distributed.press
-
GardenFence to automatically block servers that have shown to be sources of hateful rhetoric, harassment, and spam.)
block some
-
Approve replies as comments
replies
-
Post to the Fediverse
Post to the Fediverse
part of POSSE
-
incorporate ActivityPub
activity pub
-
Social Inbox for the Decentralized Web
social inbox for DWEB
-
check out the auto-generated swagger interface.
-
“DWeb-ify” your site, you just need a Distributed.Press instance
instance => server?
-
make publishing fair, democratic, and dignified for all.
dignified for all
-
Distributed Press is an open source publishing tool for the World Wide Web and DWeb. It automates publishing and hosting content to the WWW that it seeds to Hypercore and IPFS.
embeded with social interactions
-
amplify free expression worldwide
amplify
-
-
api.distributed.press api.distributed.press
-
Distributed Press API
-
-
en.wikipedia.org en.wikipedia.org
-
A Space-based architecture (SBA) is an approach to distributed computing systems where the various components interact with each other by exchanging tuples or entries via one or more shared spaces.
Exchanging messages
Transition form Actor Model to Human Actor Models
from-"No to SQL? Anti-database movem…" (natishalom.typepad.com)
-
-
natishalom.typepad.com natishalom.typepad.com
-
Space Based Architecture (SBA). The Actor model that was introduced with new functional languages like Scala and Erlang is built into the SBA model, with the difference that in SBA, actors can share state and pass events by references, and thus avoid the overhead of copying the data with every transaction.
Space Based Architector (SBA)
-
“No to SQL? Anti-database movement gains steam”
No SQL Anti-(SQL)-databases
15 years later No Databse per se Anti-Database The Network became the computer
time for the Network to become the Datanse
-
No to SQL? Anti-database movement gains steam – My Take
-
-
www.thebernician.net www.thebernician.net
-
The Bernician In Voluntary Association I Trust
-
-
github.com github.com
-
A preconfigured instance which allows developers to "test drive" OrbitDB.
test drive OrbitDB
-
-
-
How to do most anything with your Helia node
-
-
docs.ipfs.tech docs.ipfs.tech
-
install IPFS
-
IPFS Helia
Helia
-
command-line version of IPFS
no GUI
-
Get Started
IPFS
-
-
www.goodreads.com www.goodreads.com
-
“I know not with what weapons World War III will be fought, but World War IV will be fought with sticks and stones.”
-
-
www.youtube.com www.youtube.com
-
computers are virtualizes that's what Universal turning machine means
most ideas don't scale well
forget about wires you
don't need no stinking wires what we need to do is to understand how to organize systems as virtual entities and
we can render some of them and hardware and we'll render some of them in software but in fact everything winds up
being something like a single communications line with an arbitrary number of entities on everyone can talk
to everyone else and all of a sudden you've thrown away all the things that Bell Telephone had and every
piece of the way most offer was done and replaced it with a simple messaging system
-
it was called the Internet and they could not use any technique that Bell Telephone 80 used because didn't scale just completely out of the scope
did not scale
-
you have to go back to a different conception of what the materials are
how to build structures that scake very well
what we can do with out special knowledge we wind up with an Egyptian
pyramid it's the only big thing you can build without knowing how to build which is just a big garbage dump and plastered
over with limestone so it looks good but if you think about it camp it has no room inside so in order to get the
superdome you have to do that other thing you have to go back to a different conception of what the materials are was
you're actually tensile structures and then you can build enormous domed structures that scale very very well
-
pulling other people into a blue world
invention is easy with the right kind of funding
what.is - difficult - pulling other people into a blue world
difficult < is - pulling other people into a blue world
the blue plain < is - also a Gulley
-
the blue plane is also a gully
-
sanity is relative to the things we believe are true
sanitty < is
-
-
www.youtube.com www.youtube.com
-
mimetic signatures
Memetic signature
Salience landscape
Symmathetic signature
-
those that are on the Forefront of evolutionary change are largely operating in silos with little in the way of shared infrastructure
Flip that
-
unconscious economy
They are heavily interconnected
-
delivered is via profoundly and progressively disempowering architecture
Apps
-
returning to that uh sanity
Indigenious worldviee
-
our systems for Collective sense making meaning making and choice making are themselves breaking down
- Collective sense meaning making & choice
breaking down
-
Wow Person Centric Architecture and the MAP Memetic Activation Platform MAP
https://via.hypothes.is/https://www.youtube.com/watch?v=sfB7zCwOpo8
via.hypothes.is now loads youtube videos with transcripts with the docdrop.org annotator preloaded
looks like hypothes.is is automatically brings up transcript for annotations!
No need to have the browser extension installed can signup to hypothesis and make reading active and social and annotate!
-
fostering co-creation of a world that works for all
Memetic Activation Platform MAP
https://via.hypothes.is/https://www.youtube.com/watch?v=sfB7zCwOpo8
via.hypothes.is now loads youtube videos with transcripts with the docdrop.org annotator preloaded
-
-
developer.mozilla.org developer.mozilla.org
-
Represents elements with an attribute name of attr whose value is exactly value.
document.querySelectorAll('meta[property="og:image"]')[0]
document.querySelectorAll('meta[property="og:image"]')[0].content 'https://i.ytimg.com/vi/sfB7zCwOpo8/hqdefault.jpg'
-
-
blog.mauve.moe blog.mauve.moe
-
Privacy
yes
-
make it as hard as possible to switch to a different provider.
hard to switch
-
leaving all control of it to them.
leave control to them
-
companies like Tumblr can purge content from their servers and leave people without a platform.
Tumbl purge content no platform
-
they get to be the ones that decide how and what you can share
they decide what u can share
-
Publishing content on the web is already easy
publishing is easy
-
The link you get back is used to find devices in the P2P network that have a copy of your data so that you can start downloading from them.
link find the 1 who has a copy
-
all I need to publish content is to run a command
publish by running a command
-
With P2P tech, you're able to scale your content up just by way of the protoco
P2P tech
scale up by protocol
-
pay for additional third parties in front of their content.
pay additional third parties
-
need to be just as easy, if not easier, to set up as an existing CDN
easier cheaper than CDN
-
sharing the load amongst everyone that's accessed it.
sharing load amongst those accessing it
-
Content Distribution Costs
- high cost infrastructure costs for companies
- downtime for personal blogs
-
n order to convince people to adopt something, you need it to be 10 times better than what they have already
convince 10x better
-
looking for existing places to shove it into rather than solving an actual problem
- existing spaces
- rather than
- solving a problem
-
A Killer App For P2P
Better be called a maker App
-
high level API for "lists of posts"
API for list of posts
-
should be some sort of service for backing people's feeds up when they're offline
backing up service?
-
"create an account" on their local device, set up tags for their profile, and find other people by their tags.
create an account on their own devices
-
Makes it easy to share data between users Emphasizes users owning their own data Works offline and shares data on the local network Makes it easy to form ad-hoc communities
- share
- owned
- offline
- for mcommunities
-
-
ipfs.indy0.net ipfs.indy0.net
-
TypePadhttps://natishalom.typepad.com › 2009/07 › no-to-sql-an...TypePadhttps://natishalom.typepad.com › 2009/07 › no-to-sql-an...Jul 9, 2009 — Eric Lai published a provoking article on Computerworld magazine titled “No to SQL? Anti-database movement gains steam” where he pointed to
-
-
www.google.com www.google.com
-
Showing results for egregore(function(){var q='egregore';var fprsl=document.getElementById('fprsl');fprsl.onclick = function(e){var orig = document.getElementsByName('q')[0].value;if(google.ac&&google.ac.ou){google.ac.ou(q);}else{document.getElementsByName('q')[0].value=q;} document.getElementById("fprs").outerHTML='';document.title = document.title.replace(orig,q);google.log('','&ved='+fprsl.dataset['ved'],'',fprsl);e.preventDefault();};})();Search instead for aggregore
The moment where my dislexia strikes gold
-
-
-
aggregor is a web browse
Web browser integrate P2P protocols
-
Interview with Mauve, the Creator of Agregore
-
-
agregore.mauve.moe agregore.mauve.moe
-
Agregore IPFS Development Environment V3
using this
-
-
blog.mauve.moe blog.mauve.moe
-
BitTorrent Web - Sketchup
BitTorrent + Markdown + Native UI + Content Authoring = Local-First Web
-
-
blog.mauve.moe blog.mauve.moe
-
Mauve's Blog
x
-
-
subconscious.substack.com subconscious.substack.com
-
My data is in a useful format:
useful formats
-
Credible exit
-
-
subconscious.substack.com subconscious.substack.com
-
Sphere servers are superpeers, personal IPFS gateways that live in the cloud and do a handful of useful things. Your sphere server…
Sphere servers are super peers
personal IPFS gateways that live in the cloud
-
Sphere Server: your personal IPFS gateway
-
-
github.com github.com
-
from < Agora - tutorial - part 2 - impb
-
-
github.com github.com
-
-
www.thebacklog.net www.thebacklog.net
-
P2PU course platform aka Lernanta
Interplanetary Micro Blog IPFS, Web Components, HTML5
A proof of concept application to create and maintain a peer 2 peer blog using the IPFS protocol handlers in the Agregore Web browser.
-
Interplanetary Micro Blog
Wow
IPFS, Web Components, HTML5
A proof of concept application to create and maintain a peer 2 peer blog using the IPFS protocol handlers in the Agregore Web browser.
-
Projects
-
Vizualizing complexity in Gentoo
-
P2PU badge platform
An open badge issuing platform built to encourage project based learning and peer feedback. None of the gamification hoohaa. I worked with the always insightful Vanessa Gennarelli to build this project from concept to pre-MVP and handed it over to the trustworthy hands of Erika Pogorelc to launch and shephard.
-
Unbreakout
Unbreakout
-
What if doing breakouts in Zoom calls could be collaborative and fun? That is what this proof of concept project explores. Users get to create breakouts and can choose what session to join while engaging in a light weight and interactive interface.
Zoom breakout
-
Learning Circles
Learning Circles
-
-
www.thebacklog.net www.thebacklog.net
-
The b(ack)log
from << Agregore - tutorial - part 3
-
-
www.thebacklog.net www.thebacklog.net
-
Octasphere
-
-
www.thebacklog.net www.thebacklog.net
-
A nice picture of (dependency) hell
dependency hell
-
-
agregore.mauve.moe agregore.mauve.moe
-
And now let's get the index.html and lib.js from the web and add them to our site using the function we just defined.
getting lib.hjs and index.html from the web https://www.thebacklog.net/projects/agregore-web-apps/amt3.js'
https://www.thebacklog.net/projects/agregore-web-apps/amt3-index.tmpl
to https://hyp.is/E4-QqA73Ee-RRKP8GhMMag/www.thebacklog.net/
-
-
agregore.mauve.moe agregore.mauve.moeAgregore2
-
If you want to create something, you serve it directly from your computer, and when somebody downloads their content they will also re-share it.
creator serve it from their computer
when somebody download they will re-share
for - Indy Learning Commons
-
The distributed web works by removing central web servers and instead using Peer to Peer connections directly between people to load data
distributed web p2p connections
-
-
en.wikipedia.org en.wikipedia.org
-
github.com github.com
-
blocking = theft is the criminalization of the inalienable right to privacy.
blocking = theft
-
-
Basic Mode
-
The advanced popup user interface includes a point-and-click firewall that is configurable on a per-site basis.
-
wide-spectrum content blocker
-
-
github.com github.com
-
from - Agregore
-
is not an "ad blocker", it is a wide-spectrum blocker, which happens to be able to function as a mere "ad blocker". But it can also be used in a manner similar to NoScript (to block scripts) and/or RequestPolicy (to block all 3rd-party servers by default), using a point-and-click user interface.
Tags
Annotators
URL
-
-
github.com github.com
-
Cloud storage Jump to bottom gwarser edited this page Mar 27, 2024 · 60 revisions
from - Agregore
Tags
Annotators
URL
-
-
agregoreweb.github.io agregoreweb.github.io
-
Pin Manager
📌 Agregore pin manager
-
-
agregore.mauve.moe agregore.mauve.moe
-
Let's create a function to fetch the contents of a directory. Normally when we fetch an IPFS directory in the Agregore Browser, it checks to see if there is an index file present and if so, it returns that file. To disable that, we add the querystring ?noResolve to the end of the directory URL
create list dir
-
We can get a list of list of all the files in a directory in IPFS by adding '?noResolve' to the path.
noResolve
-
you should now see a directory listing
x
-
Agregore Browser IPFS Development Environment
Part 2
-
-
agregore.mauve.moe agregore.mauve.moe
-
Load the script and create index.html:
`` let script = document.createElement('script') script.src = 'lib.js' document.head.appendChild(script) setTimeout( () => updateSite('index.html',
<html> <head><title>Page title</title></head> <br /> <body>Hello world
<script src="lib.js"></script> </body></html>`), 1000) ```
-
Define and save the updateSite function
javascript async function updateSite(filename, content){ let cid = window.location.hostname const resp = await fetch(`ipfs://${cid}/${filename}`, {method: 'put', body: content}) const newLocation = resp.headers.get('location') window.location = new URL(newLocation).origin } updateSite('lib.js', updateSite.toString())
-
Start with a blank site:
window.location = 'ipfs://bafybeiczsscdsbs7ffqz55asqdf3smv6klcw3gofszvwlyarci47bgf354'
-
have a minimum viable site that we can update!!
`` updateSite('index.html',
<html> <head><title>Page title</title></head> <br /> <body>Hello world
O, hey darkness, you're still there?
<script src="lib.js"></script> </body></html>`) ```
-
do a PUT request to the current IPFS content ID
-
create a basic HTML file
`` let newPageContent =
<html> <head><title>Page title</title></head> <br /> <body>Hello world
</body></html>
let cid = window.location.hostname const resp = await fetch(
ipfs://${cid}/index.html`, {method: 'put', body: newPageContent}) const newLocation = resp.headers.get('location') window.location = newLocation ``` -
open the developer tools.
-
This is a special IPFS address for an empty directory.
open empty directory
sepcial IPFS address
-
enter the following address: ipfs://bafyaabakaieac/
-
create a basic development environment for a site hosted on IPFS
development hosted IPFS
-
Agregore Browser IPFS Development Environment
-
-
sonec.org sonec.org
-
Sociocratic Neighbourhood Circles in Europe
x
-
-
-
you don't 00:03:40 have control over it since other people will upload your name and phone number without your knowledge
You do not have control over identifying information
Your Pseudonym should work under your control and anything related to that
-
I used web app creator to make a clickable link for it on Ubuntu touch
web app creatorgive it a clickable link on unubntu touch
-
get it visible on far sites
visible on "far sites"
-
only the front end is open source on telegram
frontend only
-
database because of this encryption the database is not searchable by content
database is not searcheable by content
if data is stored on the users' device
searches has to be run their under owner control
-
with forward secrecy
"forward secrecy"
=
-
pseudo anonymity you assign yourself an identity and there's no way to verify your actual identity
pseudo anonymity
=
self-assigned identity
-
quantum computers and how they can be used to break asymmetric 00:05:43 encryption which is the basis of private public keys
quantum break assymetric PPK
-
nice to see you in telegram
telegram
-
symmetric encryption
it
-
metadata is captured across platforms
matadata captured
-
match associations not only inside whatsapp but throughout all of Facebook properties
facebook properties
-
simply knowing who you're talking to in 00:03:52 a time pattern of communication is sufficient metadata to guess connection and even what you're talking about this alone is a breach of privacy
time pattern of communication
sufficient for identification
that is the source of p2p trust
-
a contact list reveals so much information about you and your circle
contact list information circle
-
Brax me is truly focused on pseudo anonymity in social media
pseudo anonymity in social media
Pseudonumity for SaaS
-
an immediate relationship map
reveals so much about you and your circle
-
the promotion of contact lists which was used initially to make apps viral
contact lists viral
-
those two items alone break my privacy in a big way
break privacy
-
doesn't allow uploading of contact lists
no upload of contact list =
-
huge differences one is starting with sign up
Brac me is - focused on psudo anonymity - in social media
-
doesn't require a phone number as your login
no phone number for login
or email or anything else
-
going open-source stops me from generating an income from licensing
stop generating income
-
safe social media and messaging
safe social media and messaging
-
he people on it are focused on privacy
people around it
focused on privacy
-
a community service 00:01:21 and not as a money
community service
not money maker
-
the app has just been promoted by word-of-mouth and my social media
- word of mouth
- social media presence
-
focus on privacy and not just encryption
privacy not just encryption
-
intended to be just a simple thing for doing encrypted 00:00:54 messaging
encrypted messaging
-
privacy focus social media app
- similar to What's App and Telegram
- 6 years programming
- called Brax Me
-
-
-
docdrop.org docdrop.org
-
international team of artists creators and engineers
who are we
-
-
mononomous Mauve cross platform lowers the barier of entry
Servers Bad - build uo networks 0 barrier of entry 0 requires expertise - have your own machine - what kind of webserver to host - everything hinges around server - have to go to the server - no internet connection - all that data is lost - holdeing bad from - personal hosting - not trully minde - google product will die 0 change 0 goes out of business - anything I did is gone - too hard to setup
web without the server
P3P Good
-
IPFS Community Meetup - November 17 2020
-
-
github.com github.com
-
Use the same `fetch()` API browsers provide for HTTP, but for IPFS
-
-
agregore.mauve.moe agregore.mauve.moe
-
intro video
intro video
-
🌠🌓 InterPlanetary File System 🌗🌠) is a
🌠🌓 InterPlanetary File System 🌗🌠) is a - distributed system
for storing and accessing - files, - sites, - apps and - data!
-
-
www.digitalhumanities.org www.digitalhumanities.org
-
The Technical Evolution of Vannevar Bush’s Memex
-
-
www.google.co.uk www.google.co.uk
-
-
The process of making trails was called “trailblazing”, and was based on a mechanical provision “whereby any item may be caused at will to select ...
-
-
indy-memplex-net.ipns.localhost:48084 indy-memplex-net.ipns.localhost:48084
-
github.com github.com
-
Brax.Me - Privacy Focused Social Media - Fully operational platform
x
-
-
twitter.com twitter.com
-
Rob Braxman Tech
-
-
unfccc.int unfccc.int
-
FAIRPHONE | THE NETHERLANDS
-
-
brax.me brax.me
-
Brax.Me App FAQ #techsupport This FAQ is for the Brax.Me App itself. If you want to know how to do something on Brax.Me, this is the place for that. Open Membership
x
-
-
-
Murena Smartphones
-
-
www.facebook.com www.facebook.com
-
What is a single egregore? How is an egregore formed? What unites people? Is there an egregore among…See more
-
-
indy.memplex.net.ipns.localhost:48084 indy.memplex.net.ipns.localhost:48084
-
indy.memplex.net.ipns.localhost:48084 indy.memplex.net.ipns.localhost:48084
-
http://indy.memplex.net.ipns.localhost:48084/annote.htm?p=ipfs://bafybeidvswhu57sqbhwn7bvmmbxre6nav2la3smxk5rddtvoubkyqf563a/
-
-
indy-memplex-net.ipns.localhost:48084 indy-memplex-net.ipns.localhost:48084
-
http://indy.memplex.net.ipns.localhost:48084/annote.htm?p=ipfs://bafybeidvswhu57sqbhwn7bvmmbxre6nav2la3smxk5rddtvoubkyqf563a/
-