File: blk03460.txt

text/plain;charset=utf-8
{"type":"btcdomain","name":"2345.btc","first_owner":"bc1ptn2c7h02v0n73mxlkrm63jegwcrl7f785tn28qvtycajs9zpk97s25wqtp","createDate":1678272041215,"registerDate":1678272041215,"expireDate":1709808041215,"img_url":"https://btcdomains.io/images/domain/2345.jpeg","sig":"3045022100d84be54f6880b460fbe34d760ec811a7078da2f73f27e47b6da6a12edf578faf0220703fe48cda0345cb7b3fc672d8513e40c962614ef56867b6ea93eb32e3d6a6e1"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"free.btc","first_owner":"bc1px3hey79zhn87vkj7y4hgmkzu3glzqnzhu6fawm6ape5p89l4n77qcy8t0m","createDate":1678280074069,"registerDate":1678280074069,"expireDate":1709816074069,"img_url":"https://btcdomains.io/images/domain/free.jpeg","sig":"3045022100dc6d739ae0667f5bc0cfe7d9a52f94ab3bddd137d84aa6e87e6f1ba6007696ea02204a7c642772206c0907a71220732a9bc03d8fda5c68b8a050d01e0f2d6261f8ff"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"888888.btc","first_owner":"bc1pc7ndry888n6dmlqt8955z6d5xya49538guev6xl8v8t9t4qs8acqcvwpgk","createDate":1678278567553,"registerDate":1678278567553,"expireDate":1709814567553,"img_url":"https://btcdomains.io/images/domain/888888.jpeg","sig":"304402202196458f549977b2910fedaa4012797a881de1031af0968f9be79ace17325cc302204820815f7230e8e49d2daf31e1cd0379cd5ca92c32955db7a439922ebddf2d6f"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"amazon.btc","first_owner":"bc1pf06a7r9w0nw0vt39t3fjlslk8dqu7uu8mryq8u3d0jvq9jfxef0qd8ekgj","createDate":1678271961291,"registerDate":1678271961291,"expireDate":1709807961291,"img_url":"https://btcdomains.io/images/domain/amazon.jpeg","sig":"3045022100d383171550d8835c8ebad9cd9a9c8d1080f98a064775c2af3659a2ea15507bb2022007e27ca635f5f0a9448529560572196cf14e88be8b89e51dcaa6c03e4b785d01"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"1221.btc","first_owner":"bc1p98q563dyz4jkvn9wxaun2z92568zpjqeu53q5desj3t3gsajrkgspf8efy","createDate":1678273989146,"registerDate":1678273989146,"expireDate":1709809989146,"img_url":"https://btcdomains.io/images/domain/1221.jpeg","sig":"3045022100d6cd218de7bcc02e8fdbe4979c1ad7076b98ec42201bda27e870f21c49532fe602205b8bd87c5612bdb72c64aaae32158d27dc27586b51946c43d3eadba7b2fcdbc2"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"999999.btc","first_owner":"bc1p9j4vv9gzlav5zzy8f92qtg79k587y9fjd7ah98ysm6976ypvwfxsnmuakg","createDate":1678280730019,"registerDate":1678280730019,"expireDate":1709816730019,"img_url":"https://btcdomains.io/images/domain/999999.jpeg","sig":"3045022100bdf14213529cc46fc859aaef56d819de412c80a55e05bf2be8d5329f0436a9c002206331df7b83d4b3e19f87afbc81e0cc774de636c14b17ef328900b475e6a49457"}h!
text/plain;charset=utf-8
{"type":"btcdomain","name":"nike.btc","first_owner":"bc1pt2quhr56hsvyla4pdutxkh4vq4r32y23tjm4yzcqexltzzgeyhxsdmws4t","createDate":1678272981991,"registerDate":1678272981991,"expireDate":1772880981991,"img_url":"https://btcdomains.io/images/domain/nike.jpeg","sig":"3045022100b453415c233052dd7b5e94a770142b1f3e4e077b000e91c172136f15683373b7022063ede94383818a44c8aba1540c8dc5b00dc05bf63b0f045d95a80b3005fcca01"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"recode.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"nyt.sats"}h!
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"techradar.sats"}h!
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"redbullracing.sats"}h!
text/plain;charset=utf-8
1{"p":"sns","op":"reg","name":"fiatstandard.sats"}h!
text/plain;charset=utf-8
4{"p":"sns","op":"reg","name":"bitcoinstandard.sats"}h!
text/plain;charset=utf-8
4{"p":"sns","op":"reg","name":"thefiatstandard.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"substack.sats"}h!
text/plain;charset=utf-8
7{"p":"sns","op":"reg","name":"thebitcoinstandard.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bunq.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"madelonvos.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"tweakers.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"madelon.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"nypost.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"npo.sats"}h!
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"nostrchat.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"poy.sats"}h!
FjDOUT:ACAB8F8A8345EB3ABAA68263AEA993BED15D87C0341F7F68D38DFA02DB3C2FA5
FjDOUT:7E76E4580D52FBDAA40C258B2F9637594A5220C488A4FC4487F0BEE5674E9A25
FjDOUT:64C50E84DF417716580469F16F5884853E9752ACBD2FE4DE52D09B0B8BB4483E
FjDOUT:63AC85DDAF2CC08EB14075AB9D35DFCD98A33483C8CE25514FF99ED11AA0D45F
FjDOUT:65617C7AC3E943748A9561D111CF54AE77BB30B945AA9425379D34F499F4CBBF
FjDOUT:17CAE2DE09D3EF06FB03C1BBF3F51728E2A869EEC9EF0932769B5547079A7EEC
FjDOUT:461C39BE92CB2BA8D06E0B110560CA3F7A6A9DC62879EEC04337AC25D60D4D5C
FjDOUT:16FD2E93F32C2446DE870D3BAC934D9C8E52F8006D2BC70CF0B3B0D41F09BDDA
FjDOUT:853BC8DF19DCE744B462F246A45FFC28305B863224F1BF1C25F995BED1D43C4D
FjDOUT:298C4790D4958A5E87F50152EAD8B30927135FDA91DC777011B409FCDD61CF41
FjDOUT:1ED6EB04FDA9190E90A032A998642136F330417B56DE3BF4F08B1681377A2D76
FjDOUT:9DDCCAD8728805DDF1E5EE6ADC1619725B04B5B4AFDA86C3A79E8EBE9BFAB61B
text/plain;charset=utf-8
text/plain;charset=utf-8
Bj@=:BNB.BNB:bnb1cgcu7u9msg73h60nqdcrlnqm6lnsqf4atctyrp:73318789::0
Bj@=:ETH.ETH:0xeaA3A4238495CF4A5bA6a523B820AcCB947b14e3:26650352::0
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"csair.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"sinopec.sats"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"ceair.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"cnpc.sats"}h!
FjDOUT:D629648C68A21C666B235C4B6F8AD84DF29A2B91DD19981B74B6F0E836A5BDFA
LjJ=:BNB.BUSD-BD1:bnb1ejavn2kuawvjfdc9ywyxfpl0jxdyyazx8dkxdw:49063471086:te:0
CjA=:BNB.BNB:bnb1q2cu5m2me35kf6pux7p7g076ke7cqm7nhhsuqm:334019533::0
4j2DC-L5:JlQbxJZTE/XMSP3DPeBTXFctRV5SihVnwFpHdwqM9bA=
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"z88.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"w68.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"w88.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"s88.sats"}h!
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"hki.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"oax.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"wop.sats"}h!
Bj@=:BNB.BNB:bnb10xlwdrypm6lhw62n6xr8mfggwe9nt9wh4t25eq:35284462::0
CjA=:BNB.BNB:bnb1pz7y0nhpgeevakjtn5fa4vj65qvtrqyml87jju:116553290::0
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
DjB=:BNB.BNB:bnb1wc9h9aylckkkl4k6gn8qjsu7jr4k95aht9ty8f:16000956:te:0
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"talha.sats"}h!
 3366c827bc6d8c8242a68cccc3e7c901G0D
 4b8741b44e25564bc361c7aa38c5aec3H0E
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"member.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"withspaces.sats"}h!
text/plain;charset=utf-8
7{"p":"sns","op":"reg","name":"
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"CaptainTrippy.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"88-99.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"33-44-99.sats"}h!
text/plain;charset=utf-8
1{"p":"sns","op":"reg","name":"huhushengwei.sats"}h!
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"crypto123.sats"}h!
text/plain;charset=utf-8
"commit": "19f007a4a249e511f10e13e28ad630cd190e97fc85d7405d6d48b371f5bac67e",
  "inscription": "8ce7daadbaf189edd12af38174abb82a77eca75e0372bce378c95fbb57966154i0",
  "reveal": "8ce7daadbaf189edd12af38174abb82a77eca75e0372bce378c95fbb57966154",
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"s3xycars.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"addidas.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"1314168.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"fel.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"vel.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ouj.sats"}h!
FjDOUT:6C5D7041689264A256D6FE52391A9A993C86680FC61BAFA680B30644BA62BB2A
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"awajishima.sats"}h!
text/plain;charset=utf-8
1{"p":"sns","op":"reg","name":"firstpenguin.sats"}h!
text/plain;charset=utf-8
0{"p":"sns","op":"reg","name":"thunderbolt.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"bosatsu.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"consoleapp.sats"}h!
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"lightningbolt.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"consolexyz.sats"}h!
Aj?=:ETH.ETH:0xFF837Ff3a553a9Ad973E0b5fA3B47040B89597EA:3825297::0
Aj?=:ETH.ETH:0x36CF85aa87478656517AF25493810bC838B56972:3995979::0
Bj@=:ETH.ETH:0xecE839ec53AF172080b1f56FBDb297ca4E10915A:39811790::0
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"291.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"294.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"bandcamp.sats"}h!
text/plain;charset=utf-8
0{"p":"sns","op":"reg","name":"underarmour.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"aa6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ss6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"mm6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"kk6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"oo6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"gg6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"xx6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ff6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"rr6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"uu6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ii6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"cc6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"yy6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"pp6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ll6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"zz6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"vv6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"qq6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"tt6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ee6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"bb6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"dd6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ww6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"nn6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"jj6.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"hh6.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"338888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"1118888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"5558888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"7778888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"2228888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"3338888.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"9998888.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"tape.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"tolkien.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"general.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"matisse.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"brought.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"aa66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"oo66.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"downtown.sats"}h!
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"spongebob.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8"/>
    <title>Ordinal dreams - plottable</title>
    <script id="snippet-random-code">
        let seed = window.location.href.split("/").find((e) => e.includes("i0"));
        if (null == seed) {
            const e = "0123456789abcdefghijklmnopqrstuvwsyz";
                new URLSearchParams(window.location.search).get("seed") ||
                Array(64)
                    .fill(0)
                    .map((t) => e[(Math.random(M
                    .join("") + "i0";
            let e = "seed=";
            for (let t = 0; t < seed.length - e.length; ++t)
                if (seed.substring(t, t + e.length) == e) {
                    seed = seed.substring(t + e.length);
                    break;
        function cyrb128(e) {
            let t = 1779033703,
                l = 3144134277,
                n = 1013904242,
                i = 2773480762;
            for (let a, M
s = 0; s < e.length; s++)
                (t = l ^ Math.imul(t ^ (a = e.charCodeAt(s)), 597399067)),
                    (l = n ^ Math.imul(l ^ a, 2869860233)),
                    (n = i ^ Math.imul(n ^ a, 951274213)),
                    (i = t ^ Math.imul(i ^ a, 2716044179));
            return (
                (t = Math.imul(n ^ (t >>> 18), 597399067)),
                    (l = Math.imul(i ^ (l >>> 22), 2869860233)),
                    (n = Math.imul(t ^ (n >>> 17), 951274213)),
                    (i = Math.M
imul(l ^ (i >>> 19), 2716044179)),
                    [(t ^ l ^ n ^ i) >>> 0, (l ^ t) >>> 0, (n ^ t) >>> 0, (i ^ t) >>> 0]
        function sfc32(e, t, l, n) {
            return function () {
                var i = ((e >>>= 0) + (t >>>= 0)) | 0;
                return (
                    (e = t ^ (t >>> 9)),
                        (t = ((l >>>= 0) + (l << 3)) | 0),
                        (l =
                            ((l = (l << 21) | (l >>> 11)) +
                               M
 (i = (i + (n = ((n >>>= 0) + 1) | 0)) | 0)) |
                            0),
                    (i >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
    const random = (a = 1) => a * mathRand(),
        randomBetween = (a, n) => a + random(n - a),
        dist = (a, n, r, t) => {
            var d = a - r,
                e = n - t;
    return Math.sqrt(d * d + e * e);
    const rand = mathRand(),
                paper: "White",
                frame: "Red",
                moons: "Blue",
                bg: "rgb(230, 230, 230);",
                fr: "rgba(255,99,71,50)",
                cr: "blue",
                op: "0.8",
                paper: "White",
                frame: "Blue",
                moons: "Red",
                bg: "rgb(230, 230, 2M
                fr: "blue",
                cr: "rgba(255,99,71,50)",
                op: "0.8",
                paper: "Light green",
                frame: "Green",
                moons: "Purple",
                bg: "lightgreen;",
                fr: "green",
                cr: "purple",
                op: "0.8",
                paper: "Charcoal",
                frame: "Gold",
                moons: "White",
                bg: "rgb(30, 30, 30)M
                fr: "gold",
                cr: "white",
                op: "1",
                paper: "Charcoal",
                frame: "White",
                moons: "Gold",
                bg: "rgb(30, 30, 30);",
                fr: "white",
                cr: "gold",
                op: "1",
                paper: "Charcoal",
                frame: "Silver",
                moons: "Gold",
                bg: "rgb(30, 30, 30);",
                cr: "gold",
                op: "1",
                paper: "Charcoal",
                frame: "Blue",
                moons: "Silver",
                bg: "rgb(30, 30, 30);",
                fr: "dodgerblue",
                cr: "silver",
                op: "1",
                paper: "Charcoal",
                frame: "Silver",
                moons: "Blue",
                bg: "rgb(30, 30, 30);",
                fr: "silver",M
                cr: "dodgerblue",
                op: "1",
                paper: "Bitcoin Orange",
                frame: "Black",
                moons: "White",
                bg: "orange",
                fr: "black",
                cr: "white",
                op: "1",
    function getTraits() {
            rotateS:
                5 * Math.floor(randomBetween(1, 9)) * (mathRand() > 0.5 ? -1 : 1),
            colId: Math.floor(random(CM
olors.length - 1e-7)),
            rx: mathRand() > 0.5 ? Math.floor(random(20)) : 0,
            bStart: Math.floor(randomBetween(3, 15)) / 100,
            moonDensity: 5 * [1, 2, 5, 10][Math.floor(random(4))],
            isDual: mathRand() > 0.8,
            frameDensity: 10 * Math.floor(randomBetween(2, 6)),
        rotateS: rotateS,
        colId: colId,
        bStart: bStart,
        moonDensity: moonDensity,
        isDual: isDual,
        frameDensity: frameDeM
    } = getTraits();
    (window.$generativeTraits = {
        Paper: Colors[colId].paper,
        Frame: Colors[colId].frame,
        "Frame size": bStart,
        "Frame rotation": rotateS,
        "Frame rounding": rx,
        "Frame density": frameDensity,
        Moons: Colors[colId].moons,
        "Moon Density": moonDensity,
        "Dual pattern": isDual,
        console.table(window.$generativeTraits);
        constructor(e, t, r, o = "white") {
            (this.x = t), M
(this.y = r), (this.r = e), (this.c = o);
        show(e, t, r, o) {
            o.setAttribute("id", `c${t}`), o.setAttribute("stroke", this.c);
            let a = this.r,
                n = random(2 * Math.PI),
                s = this.x,
                i = this.y,
                l = a * Math.cos(n) + s,
                d = a * Math.sin(n) + i,
                c = `M ${l} ${d} `;
            for (let e = 0; e < 3 * a; e++)
                (n = random(2 * Math.PI)),
                    (l = a * MathM
                    (d = a * Math.sin(n) + i),
                    (c += `L ${l} ${d} `);
            let m = document.createElementNS(e, "path");
            m.setAttribute("style", "fill:none;stroke-width:1;"),
                m.setAttribute("d", c),
                o.appendChild(m);
    let createCircles = function (e, t, r = 0.05, o = "white") {
            let a = new Array(),
                n = Math.min(e, t),
                s = 0;
            for (; a.length < moonDensity && M
                let i = randomBetween(n / (2 * moonDensity), n / 4),
                    l = randomBetween(i + e * r, e * (1 - 2 * r) - i),
                    d = randomBetween(i + e * r, t - e * r * 2 - i);
                l - i <= 0 ||
                d - i <= 0 ||
                l + i > e ||
                d + i > t ||
                a.some((e) => 0.8 * dist(l, d, e.x, e.y) < i + e.r)
                    ? s++
                    : (a.push(new Circle(i, l, d, o)), (s = 0));
        yin = 11.67,
        w = xin * dpi,
        h = yin * dpi,
        ns = "http://www.w3.org/2000/svg",
        svg = document.createElementNS(ns, "svg");
    svg.setAttribute("id", "svg"),
        svg.setAttribute("width", "100vw"),
        svg.setAttribute("height", "100vh"),
        svg.setAttribute("viewBox", "0 0 " + w + " " + h),
        svg.setAttribute("style", "background-color:" + Colors[colId].bg + ";");
    let bounds = document.creatM
eElementNS(ns, "path");
    bounds.setAttribute("d", `M 0 0 M ${w} ${h}`), svg.appendChild(bounds);
    let bg = document.createElementNS(ns, "g");
    bg.setAttribute("id", "frame"),
        bg.setAttribute("stroke", Colors[colId].fr),
        bg.setAttribute("stroke-opacity", Colors[colId].op),
        bg.setAttribute("fill", "transparent");
        let e = bStart;
        e < 0.49 && w * (1 - 2 * e) >= 0 && h - 2 * w * e >= 0;
        e += e / frameDensity
        let t = document.createElementM
        t.setAttribute("rx", rx),
            t.setAttribute("x", w * e),
            t.setAttribute("y", w * e),
            t.setAttribute("width", w * (1 - 2 * e)),
            t.setAttribute("height", h - 2 * w * e),
            t.setAttribute("transform", "rotate(" + (bStart - e) * rotateS + ")"),
            bg.appendChild(t);
    if ((svg.appendChild(bg), isDual)) {
        let e = document.createElementNS(ns, "use");
        e.setAttribute("href", "#frame"),
            e.setAttribute(M
"transform", "translate(" + w + ",0) scale(-1,1)"),
            svg.appendChild(e);
    let circles = createCircles(w, h, 0.05, Colors[colId].cr),
        circ = document.createElementNS(ns, "g");
    function downloadSVGAsText() {
        const e = document.querySelector("svg"),
            t = btoa(unescape(encodeURIComponent(e.outerHTML))),
            r = document.createElement("a"),
            o = new MouseEvent("click");
        (r.download = "download.svg"),
            (r.href = "data:image/svg+xml;M
            r.dispatchEvent(o);
    circ.setAttribute("stroke-opacity", Colors[colId].op),
        circles.forEach((e, t) => {
            e.show(ns, t, svg, circ);
        svg.appendChild(circ),
        document.body.appendChild(svg);
    const downloadSVG = document.querySelector("#svg");
    downloadSVG.addEventListener("click", downloadSVGAsText);
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"jj66.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Pop On Chain by SMLDMS</title>
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(maM
thRand() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
          color: rgb(255, 255, 255);
            background-color: rgb(0, 0, 0);
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0;
            padding: 0;
            font-size: 0.8em;
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
        #fullScreen {
            display: flex;
            position: fixed;
            bottom: 0;
            left: 0;
            justify-content: center;
            align-items: center;
        #fullScreen canvas {
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
            /* mix-blend-mode: soft-light; */
            color: rgb(255);
            opacity: 0.75;
            width: auto;
            height: auto;
            position: fixed;
            text-align: center;
          justify-content: center;
            align-items: center;
            padding: 10%;
        #progress h1 {
            font-size: 10.75em;
            /* display: block; */
            margin: 0%;
            padding: 0%
    <canvas id="cnv"></canvas>
    <div id="fullScreen">
        <div id="progress"></div>
<!-- /////////////////////////////////LET'S GO//////////////////////////////// -->
<script type="text/jaM
    const myTitle = "Pop On Chain";
    const canvas = document.getElementById("cnv");
    const ctx = cnv.getContext('2d');
    let ratio = 1.414142
        n: mathRand(),
    if (format.n < 0.33) {
        format.ww = ratio
        format.hh = 1
        format.name = "Landscape"
    } else if (format.n < 0.66) {
        format.ww = 1
        format.hh = ratio
        format.name = "Portrait"
        format.ww = 1
        format.hh = 1
        format.name = "Square"
    const mySize = 1000;
    cnv.width = mySize * format.ww;
    cnv.height = mySize * format.hh;
    const scales = [25, 50, 100];
    const randomIndex = Math.floor(mathRand() * scales.length);
    const scl = scales[randomIndex];
    const marges = [200, 100, 50];
    const randomMarge = Math.floor(mathRand() * marges.length);
    const marge = marges[randomMarge];
    const maxT = Math.round(mathRand() * 50 + 10M
        n: mathRand(),
        n: mathRand(),
        n: mathRand(),
    if (layer.n < 0.5) {
        layer.name = "On"
        layer.name = "Off"
    if (clr.n < 0.25) {
        clr.name = "White"
    else if (clr.n < 0.5) {
        clr.name = "Red"
      clr.name = "Black"
    if (mode.n < 0.25) {
        mode.name = "C"
        mode.val = 100
    else if (mode.n < 0.5) {
        mode.name = "B"
        mode.val = 25
        mode.name = "A"
        mode.val = 0
    window.$generativeTraits = {
        "Format": format.name,
        "Color Base": clr.name,
        "Back layer": layer.name,
        "Mode": mode.name,
        "Scale": scl,
        "Model": maxT,
        "Marge": marge,
    console.log(myTitle + " | smldms 2023.03")
    console.log(window.$generativeTraits)
    const r = cnv.height / scl;
    const c = cnv.width / scl
    ctx.fillStyle = clr.name;
    ctx.rect(0, 0, cnv.width, cnv.height)
    if (layer.name == "On") {
    addGrain(cnv, 25)
    function frame() {
        // ctx.filter = "blur(5px)";
        ctx.restore()
        ctx.fillStyle = clr.name;
tx.strokeStyle = 'hsl(' + 360 * mathRand() + ',100%,50%)';
        ctx.lineWidth = 100;
        ctx.rect(0, 0, cnv.width, cnv.height)
        ctx.stroke();
    function halo() {
        ctx.restore()
        ctx.translate(c / 2, r / 2)
        ctx.filter = 'blur(' + mode.val + 'px)';
        for (let x = marge; x < cnv.width - marge / 2; x += 50) {
            for (let y = marge; y < cnv.height - marge / 2; y += 50) {
                let clrF = 'hsl(' + 360 * mathRand() + ',100%,50%)';
         ctx.fillStyle = clrF;
                ctx.strokeStyle = clr.name;
                ctx.lineWidth = mathRand() * 5 + 1;
                ctx.beginPath()
                if (mathRand() < 0.25) {
                    ctx.arc(x, y, r * 2, 0, Math.PI)
                else if (mathRand() < 0.5) {
                    ctx.arc(x, y, r * 2, Math.PI, 0)
                else if (mathRand() < 0.75) {
                    for (let i = 2; i < 100; i += 1) {
      if (mathRand() < 0.25) {
                            ctx.arc(x + i, y, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.5) {
                            ctx.arc(x, y + i, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.75) {
                            ctx.arc(x, y - i, r / i, 0, Math.PI * 2)
                        }
                        else {
                            ctx.arc(x - i, y, r / i, 0, M
                        }
                    }
                else {
                ctx.closePath();
                ctx.stroke()
                ctx.fill();
    function show() {
        ctx.restore()
        for (let x = marge; x < cnv.width - marge; x += r) {
            for (let y = marge; y < cnv.height - marge; y += c) {
                ctx.filter = "blur(0px) contrast(1.4) drop-shadow(0px 9px 5px #000) ";
             ctx.fillStyle = clr.name;
                ctx.strokeStyle = 'hsl(' + 360 * mathRand() + ',100%,50%)';
                ctx.lineWidth = mathRand() * 2 + 1;
                ctx.beginPath()
                if (mathRand() < 0.25) {
                    ctx.arc(x, y, r / 2, 0, Math.PI)
                else if (mathRand() < 0.5) {
                    ctx.arc(x, y, r / 2, Math.PI, 0)
                else if (mathRand() < 0.75) {
                    for (let i = 2M
; i < maxT; i += 1) {
                        if (mathRand() < 0.25) {
                            ctx.arc(x + i, y, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.5) {
                            ctx.arc(x, y + i, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.75) {
                            ctx.arc(x, y - i, r / i, 0, Math.PI * 2)
                        }
                        else {
             ctx.arc(x - i, y, r / i, 0, Math.PI * 2)
                        }
                    }
                else {
                ctx.closePath();
                ctx.stroke()
                ctx.fill();
    function addGrain(canvas, graininess) {
        const ctx = canvas.getContext('2d');
        const width = canvas.width;
        const height = canvas.height;
        const pixels = ctx.getImageData(0, 0, width, heighM
        for (let i = 0; i < pixels.data.length; i += 4) {
            const r = pixels.data[i];
            const g = pixels.data[i + 1];
            const b = pixels.data[i + 2];
            const alpha = pixels.data[i + 3];
            const random = mathRand();
            const offset = (random - 0.5) * graininess;
            pixels.data[i] = Math.max(0, Math.min(255, r + offset));
            pixels.data[i + 1] = Math.max(0, Math.min(255, g + offset));
            pixels.data[i + 2] = Math.mM
ax(0, Math.min(255, b + offset));
            pixels.data[i + 3] = alpha;
        ctx.putImageData(pixels, 0, 0);
    function saveCanvasAsPNG(canvas) {
        document.addEventListener('keydown', function (event) {
            if (event.key === 's' || event.key === 'S' || event.key === 'd' || event.key === 'D') {
                const ctx = canvas.getContext('2d');
                const width = canvas.width;
                const height = canvas.height;
                const pixelRaM
tio = (event.key === 'd' || event.key === 'D') ? window.devicePixelRatio * 8 : window.devicePixelRatio;
                const canvasCopy = document.createElement('canvas');
                canvasCopy.width = width * pixelRatio;
                canvasCopy.height = height * pixelRatio;
                const ctxCopy = canvasCopy.getContext('2d');
                ctxCopy.imageSmoothingEnabled = false;
                ctxCopy.drawImage(canvas, 0, 0, width, height, 0, 0, width * pixelRatio, height * pixelRatio);
               const url = canvasCopy.toDataURL('image/png');
                const link = document.createElement('a');
                link.download = 'canvas.png';
                link.href = url;
                link.click();
    saveCanvasAsPNG(cnv);
    /////////////PROGRESS
    async function progress(message) {
        document.body.style.cursor = 'crosshair';
        document.getElementById("progress").innerHTML = message;
        await new Promise((fn => setM
    async function progressClear() {
        document.body.style.cursor = 'default';
        document.getElementById("progress").style.display = 'none';
        await new Promise((fn => setTimeout(fn, 1)));
    async function progressShow() {
        document.body.style.cursor = 'default';
        document.getElementById("progress").style.display = 'block';
        await new Promise((fn => setTimeout(fn, 1)));
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Balanced", "Base shade": "Dark", "Colour": "Red", "Colour chance": "5%", "Base colour": "Red", "Base Colour chance": "50%", "S forms": "20-120", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 2, "Sensitivity": "HiM
let t=[2e3,1e4],o=[0,50];let h=[80,170],W=[.1,.4];var e=[[2,8],[2,8]];let u=[20,120],_=[50,80];let b=[180,250],X=[.8,4];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=2,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e60000"],te=.05,se=["#e60000"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.proM
/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #8";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v M
0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.3M
57l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.8M
8l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.M
8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29M
,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -M
0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40-M
69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_clusteM
r=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","M
m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h1M
45l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","mM
473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:FM
([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a)M
;break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await M
e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=tM
.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animaM
te")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backgrM
ound.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#bM
ackground_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],M
scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=VM
(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_M
shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",coM
lor2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElemeM
nt(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5M
,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_nuM
mber_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibiliM
ties[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shM
ape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shaM
pe.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desiredM
_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"M
s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",nM
_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs"M
);for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+M
"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}fuM
nction D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.5<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS(M
"http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}functioM
n K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,tM
+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=pM
,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%1M
00,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100M
,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+stM
ep*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ii66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bb88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ff88.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"spell.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Light", "Base shade": "Balanced", "Colour": "Blue", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 8, "Sensitivity": "HighM
let t=[2e3,1e4],o=[0,250];let h=[100,250],W=[.1,.4];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,100],X=[.4,2];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=8,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#000080"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7aM
dbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #22";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 M
l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74M
.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.M
915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.M
051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16M
 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_subM
_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9M
.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95M
v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119M
-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async fM
unction e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:M
"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=awaM
it s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=awaM
it s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attribM
uteName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCM
ount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(lM
arge_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySeM
lector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.M
length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shM
apes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,cM
olor1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).sM
etAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomnesM
s=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_mulM
tiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[M
i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_smalM
l_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttribM
uteNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shM
ift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),M
Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,M
[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.iM
d,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origiM
n","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${M
e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"idM
",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(letM
 e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,1M
0,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100M
,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0M
;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i]M
.visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2M
*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"vv66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"cc88.sats"}h!
text/html;charset=utf-8
	<meta charset="UTF-8">
	<title>outscripted by mataleone</title>
	<script sandbox="allow-scripts" type="text/javascript"
		src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
	<script id="snippet-contract-code" type="text/javascript">
		const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1);
			"tokenId": tokenIdRand,
			"seed": tokenIdRand.toString(),
pt id="snippet-random-code" type="text/javascript">
		let seed = window.location.href.split('/').find(t => t.includes('i0'));
		if (seed == null) {
			const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
			seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
			let pattern = "seed=";
			for (let i = 0; i < seed.length - pattern.length; ++i) {
				if (seed.substring(i, i + pattern.length) == pattM
					seed = seed.substring(i + pattern.length);
		function cyrb128($) {
			let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
			for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
			return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), lM
 = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
		function sfc32($, _, u, i) {
			return function () {
				u >>>= 0, i >>>= 0;
				var l = ($ >>>= 0) + (_ >>>= 0) | 0;
				return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
		let mathRand = sfc32(...cyrb128(seed));
			background-color: #000;
			width: 100% !important;
			height: 100% !important;
			object-fit: contain;
	<script type="text/javascript">
		const _lerp = (f, min, max) => (min + (max - min) * f)
			const _map = (v, inMin, inMax, outMin, outMax) => (outMin + (outMax - outMin) * ((v - inMin) / (inMax - inMin)))
				['#332440', 'berry'],
				['#1E2F36', 'sea'],
				['#36261E', 'earth'],
				['#1E2036', 'deep'],
				['#1E3623', 'forest'],
				['#FFE0C2', 'sand'],
				['#FFE0C2', 'sand'],
				['#FFCA9C', 'koi'],
				['#C2FcFF', 'sky'],
				['#FFFDBC', 'mustard'],
			let _bg = Math.floor(mathRand() * bgs.length)
			let _clr = Math.floor(mathRand() * clrs.length)
			let _q = Math.floor(_lerp(mathRand(), _q_min, _q_max + 1))
Math.floor(_lerp(mathRand(), _r_min, _r_max + 1))
			let _a = Math.floor(mathRand() * 5) // <+
			let _ins = Math.floor(_lerp(mathRand(), _ins_min, _ins_max + 1))
			let _worm_max = _r * 2
			let _worm = _lerp(mathRand(), 0, _worm_max)
			window.$generativeTraits = {
				"background color": bgs[_bg][1],
				"incsriptions color": clrs[_clr][1],
				"inscriptions size": _r,
				"inscriptions complexity": _ins,
				"disconformity": Math.floor(M
_map(_worm, 0, _worm_max, 0, 11)),
			console.log(seed, window.$generativeTraits)
			let _paused = false
			function setup() {
				createCanvas(2160, 2160)
				background(bgs[_bg][0])
			function draw() {
				if (_paused) return
				background(bgs[_bg][0])
				let _c = color(clrs[_clr][0])
				for (let i = 0; i < _q * 10000; ++i) {
					const x = _randPos()
					const y = _randPos()
					let al = map(_q, _q_min, _q_max, 128, 64)
					star(x, y, _r, _ins)
			function _randPos() {
				const a = mathRand() * Math.PI + Math.PI
				let p = Math.cos(a)
				// p = (1-Math.abs(p))*Math.sign(p)
				let w = width / 2
				return w + _map(p, -1, 1, -w - _worm, w + _worm)
			function star(cx, cy, r, c) {
				let n = noise(cx / sc, cy / sc)
				let _cx = cx + sin(n * Math.PI * 2) * _worm
				let _cy = cy + cos(n * Math.PI * 2) * _worm
				let ixs = [...Array(c).keys()]
				while (ixs.length > 0) {
					const i = Math.floor(mathRand() * ixs.length)
					const a = ixs[i] * ((Math.PI * 2) / c) + (Math.PI / 4) * _a
					vertex(_cx + sin(a) * r, _cy + cos(a) * r)
					ixs.splice(i, 1)
			function keyPressed() {
				if (keyCode == 32) _paused = false
				if (keyCode == 83) save('outscripted.png')
text/html;charset=utf-8
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/addons/p5.sound.min.js"></script>
    <meta charset="utf-8" />
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "01234567M
89abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [M
(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generationM
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            @font-face {
                font-family: 'iconfont';
                src: url('iconfont.ttf') format('truetype');
                user-select: none;
            html, body {
                overflow: hidden;
                background-color: #00M
                margin: 0;
                position: fixed;
                width: 100%;
                height: 100%;
            canvas {
                width: 100%;
                height: 100%;
                opacity: 0.9;
            .dg .property-name {
                overflow: visible;
            .bigFont {
                font-size: 150%;
                color: #8C8C8C;
       .cr.function.appBigFont {
                font-size: 150%;
                line-height: 27px;
                color: #A5F8D3;
                background-color: #023C40;
            .cr.function.appBigFont .property-name {
                float: none;
            .cr.function.appBigFont .icon {
                position: sticky;
                bottom: 27px;
                font-family: 'iconfont';
                font-size: 130%;
            .twitter:before {
                content: 'a';
            .github:before {
                content: 'b';
            .app:before {
                content: 'c';
            .discord:before {
                content: 'd';
            .promo {
                display: none;
                /* display: table; */
                position: absolute;
                top: 0;
                left: 0;
                widtM
                height: 100%;
                z-index: 1;
                overflow: auto;
                color: lightblue;
                background-color: rgba(0,0,0,0.4);
                animation: promo-appear-animation 0.35s ease-out;
            .promo-middle {
                display: table-cell;
                vertical-align: middle;
            .promo-content {
                width: 80vw;
                height: 80vh;
                max-width: 80vh;
                margin: auto;
                padding: 0;
                font-size: 2.8vmax;
                font-family: Futura, "Trebuchet MS", Arial, sans-serif;
                text-align: center;
                background-image: url("promo_back.png");
                background-position: center;
                background-repeat: no-repeat;
                background-size: cover;
                border-radius: 15px;
                box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgbM
            .promo-header {
                height: 10%;
                padding: 2px 16px;
            .promo-close {
                width: 10%;
                height: 100%;
                text-align: left;
                float: left;
                font-size: 1.3em;
                /* transition: 0.2s; */
            .promo-close:hover {
                /* transform: scale(1.25); */
                cursor: pointer;
            .promo-M
                padding: 8px 16px 16px 16px;
                margin: auto;
            .promo-body p {
                margin-top: 0;
                mix-blend-mode: color-dodge;
                width: 100%;
                display: inline-block;
            .link img {
                width: 100%;
            @keyframes promo-appear-animation {
                0% {
                    transform: scale(2.0);
                    oM
                100% {
                    transform: scale(1.0);
                    opacity: 1;
function genart(min, max) {
  return mathRand() * (max - min) + min;
function genart3() {
) * (0.007 - 0.003) + 0.003;
seed = genart(1,100000)
function Neons(value) {
  if (value <= 0.15)
function Planets(value) {
  if (value >= 0.95) {
window.$fxhashFeatures = {
  "Neon": Neons(mathRand()),
  "Planet": Planets(mathRand())
if (genart2() <= 0.15) {
if (genart2() >= 0.95){
  let cnv = createCanvas(1000, 1000);
= (windowWidth - width) / 2;
  let can_y = (windowHeight - height) / 2;
  cnv.position(can_x, can_y);
  background("#000000")
  angleMode(DEGREES)
  var space = width / density
    for(let i = 0; i < keys; i ++) {
    points.push(createVector(random(width), random(height)));
  for (var x = 0; x < width; x += space)
      for (var y=0; y < height; y += space){
        var p= createVector(x + 10, y + 10)
        pointz.push(p)
  shuffle (points, true)
1 = genart(220, 255)
  r2 = genart(220, 255)
  g1 = genart(20, 255)
  g2 = genart(20, 255)
  b1 = genart(20, 255)
  b2 = genart(20, 255)
  //mult = genart3()
  if(frameCount > 300) noLoop()
  for (var i = 0; i <  points.length; i++){
    let ps = points[i]
    var r = map(points[i].x, 0, width, r1, r2)
    var g = map(points[i].y, 0, height, g1, g2)
 map(points[i].x, 0, width, b1, b2)
    var alpha = map(dist(width / 2, height / 2, points [i].x, points[i].y), 0, 1250, 1250, 210)
    fill(r,g,b,alpha)
    var angle = map(noise(points[i].x * mult/2, points[i].y * mult/22), Planet2, Planet, 0, 270)
    points[i].add(createVector(sin(angle)*7, cos(angle)))
    if (dist(width / 2, height / 2, points[i].x, points[i].y) < t ) {
  ellipse(points[i].x, points[i].y, Size)
      if(!onScreen(ps)) {
      points[i].x = rM
      points[i].y = random(height);
            if(Neon>1){
            Size=Size+0.01
function maindraw2()
  for (var i = 0; i <  pointz.length; i++){
    let pz = pointz[i]
    var rz = map(pointz[i].x, 0, width,M
    var gz = map(pointz[i].y, 0, height, g1-30, g2-30)
    var bz = map(pointz[i].x, 0, width, b1-30, b2)-30
    var alpha2 = map(dist(width / 2, height / 2, pointz [i].x, pointz[i].y), 0, 1450, 200, 0)
    fill(255,gz,bz,alpha2)
    var angle2 = map(noise(pointz[i].x * mult2/2, pointz[i].y * mult2/2), 0, 1, 0, 1720)
    pointz[i].add(createVector(sin(angle2), cos(angle2)))
    if (dist(width / 2, height / 2, pointz[i].x, pointz[i].y) > 10 ) {
  rect(pointz[i].x, pointz[i].y, 1.4M
        rect(pointz[i].x+13, pointz[i].y+3, 0.1)
          if(!onScreen(pz)) {
      pointz[i].x = random(width);
      pointz[i].y = random(height);
            angle2=angle2-0.1
            density=density-1
function onScreen(v) {
  return v.x >= 0 && v.x <= width && v.y >= 0 && v.y <= height;
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"gg88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Light", "Base shade": "Balanced", "Colour": "Blue", "Colour chance": "20%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 8, "Sensitivity": M
let t=[2e3,1e4],o=[50,200];let h=[180,250],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[50,200],X=[.6,3];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=8,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#000080"],te=.2,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.prM
o/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #62";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 M
v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2M
.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425M
.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -M
1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -M
29,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 mM
 -0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 4M
0-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_clusM
ter=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z"M
,"m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28M
h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z",M
"m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={sM
:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(M
a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=awaiM
t e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,LM
=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"aniM
mate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backM
ground.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(M
#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1M
],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(mM
=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),smalM
l_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",M
color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginEleM
ment(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[M
-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_M
number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibiM
lities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",M
shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+sM
hape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desirM
ed_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapesM
+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1"M
,n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defM
s");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.M
x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}M
function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNSM
("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}functiM
on K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,M
t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=M
p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%M
100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,10M
0,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+sM
tep*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"55558888.sats"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ee66.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Dark", "Base shade": "Balanced", "Colour": "Orange", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "2-24", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 7, "Sensitivity": "HiM
let t=[2e3,1e4],o=[0,250];let h=[0,100],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[180,250],X=[.4,2];let c=[2,24],f=[8,16],S=[0,1,2,3,4,5,6,7,8,9,10],N=7,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#e65c00"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4caM
7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #14";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.2M
5 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357lM
74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l9M
0.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-M
0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-M
16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sM
ub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,M
-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 M
95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-1M
19-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!asyncM
 function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",methoM
d:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=aM
wait s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=aM
wait s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attrM
ibuteName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeaM
tCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ueM
(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.queryM
Selector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapeM
s.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_M
shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1M
,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background"))M
.setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomnM
ess=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_mM
ultiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilitieM
s[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_smM
all_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttrM
ibuteNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_M
shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapesM
),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(sM
1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+rM
.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-oriM
gin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},M
${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"M
id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(lM
et e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50M
,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%1M
00,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],iM
=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[M
i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+stepM
/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ll66.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"shrek.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"33338888.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdn.jsdelivr.nM
et/npm/tonal/browser/tonal.min.js"></script>
    <script type="text/javascript">
        var cnv;let points=[],start=0,speed=2,wdt,margin=60,w=500,h=300,tileWidth=100,tileHeight=100,sclX=5,sclY=10,paletteIndex2=0,paletteType,paletteIndex3=0,globalNote,mainIndex=0,bnd,phi=3.14*(137.51/180),cbn=0,cbn2=0,duration=0,savedTime,startx1=0,starty1=0,start1=0,rootInc=0,format,currentKey,voiceChord=!1,randForm=0,notePlay,pastNote,keyFifths=[],sequence=[],chordArray=[],bassChord=[],reading,state,lastState,oscill,oscill2,trM
ig=!1,bckg=["#F3F3F3","#000000"],palette1=[["#ce2d42","#082880","#7462f9","#f4b53f","#123676","#9c223d","#e6c7b4"],["#f43b79","#1136ed","#6b43dd","#ef9029","#4aa4ae","#69239b","#f7f1b4"],["#7fefe4","#be3edd","#70cfe5","#f2c666","#e6c7b4","#583fc4","#fff57d"],["#80aded","#7b66f7","#658fdb","#f2e18b","#f7f1b4","#773caa","#f4b537"],["#a5e2f2","#a783ed","#61c1db","#f7c872","#6eabf4","#6d52dd","#ff7db2"],["#d8d8d8","#898de0","#89afe5","#f9e78f","#85b2e8","#8110e5","#bf2b6e"],["#7094fc","#643ac9","#306bef","#9100dd","#e6M
c7b4","#e2396d","#ef3a65"],["#80aded","#a28fef","#4688e8","#db003a","#f7f1b4","#d632a4","#bc174e"],["#594499","#db3e3e","#25ceb2","#02827b","#a0a09f","#56661d","#34067c"],["#425999","#bc3f3f","#9fe2cc","#108fc1","#d37676","#132691","#5b3c96"],["#ffeda1","#91205c","#2929e2","#9509b7","#70b9c0","#5474e8","#d30b8c"],["#f9cfc7","#721b74","#1c70ea","#7c1d93","#919bdb","#5574ce","#f25c87"],["#f25a7b","#e960af","#992843","#8b52f7","#6eabf4","#3714a1","#445b96"],["#ff399c","#e73250","#d32f53","#33bbff","#7de7ff","#69239b",M
"#8041f9"],["#6f6674","#34a0a5","#992843","#f98450","#6eabf4","#3714a1","#445b96"],["#4d82aa","#24c6c6","#d32f53","#f973a0","#7de7ff","#69239b","#8041f9"],["#ff6d40","#361ee0","#992843","#e6c7b4","#9370f2","#3714a1","#445b96"],["#e6372f","#3a338e","#d32f53","#f7f1b4","#8092ff","#69239b","#8041f9"],["#ffa943","#2177f4","#35fc93","#f9cfd2","#6eabf4","#3714a1","#445b96"],["#ffce45","#2f7083","#5affdf","#fcf4b7","#7de7ff","#69239b","#8041f9"],["#41d9f2","#528cd1","#3a6eba","#5f64c1","#4a97f4","#7426bf","#f7d52f"],["#71M
f2ff","#249cff","#63a1ea","#7f88db","#56a6f4","#7f0caf","#f7b643"],["#41d9f2","#51fcbb","#d3057b","#295cff","#7d22ff","#51d7e5","#e6c7b4"],["#71f2ff","#81fcca","#f91cb0","#0239c1","#8450d6","#05bdc6","#f7f1b4"],["#43bbef","#53f9e4","#bf2640","#5082ff","#8648ff","#36ffcf","#881ed3"],["#6bcced","#fce586","#f93ebb","#52a1ff","#8e51a8","#05bdc6","#ff0895"],["#a745ed","#fcbbbb","#f20a41","#ffd252","#0606bf","#ff459e","#881ed3"],["#7b19d1","#a7d0f9","#ba0f40","#fcd5bb","#4545ce","#9666ff","#ff0895"],["#31a4dd","#6f3bff",M
"#f20a41","#4470a5","#7171f4","#e710f9","#2e92ff"],["#ffffab","#8e7de2","#ba0f40","#9312b2","#85b5f9","#830591","#034a7f"],["#06a0ba","#6f3bff","#f20a41","#8777f7","#4848c1","#6b11f7","#e6c7b4"],["#2bc5cc","#8e7de2","#ba0f40","#6155bf","#4b4bf7","#a318b7","#f7f1b4"],["#06a0ba","#6f3bff","#8473ff","#fce875","#4848c1","#ffb3c9","#2e92ff"],["#2bc5cc","#8e7de2","#9e61ba","#ffd2c7","#0f0fce","#f7e579","#034a7f"],["#c10839","#6f3bff","#ff06a6","#f2a5bb","#4848c1","#117ff7","#579ef2"],["#a20dd3","#8e7de2","#aa08ff","#f2ecM
79","#0f0fce","#a60abc","#1b64ce"],["#06a0ba","#6f3bff","#fca660","#f7f377","#9149bf","#f71165","#31f0ff"],["#2bc5cc","#8e7de2","#dd582a","#ffe09c","#630ca8","#a8275c","#04717c"],["#e041b3","#3e71ff","#ffec64","#77c1f7","#9149bf","#f71165","#e6c7b4"],["#f95089","#8e7de2","#f99175","#1d6bdd","#630ca8","#a8275c","#f7f1b4"],["#f4d334","#0636cc","#8989ef","#e6c7b4","#8005e0","#fc68a4","#3386ff"],["#fc889e","#3b72a3","#2d5cc4","#f7f1b4","#f938cb","#d61a1a","#04717c"],["#f4d334","#3ef6ff","#5347f4","#b877f7","#9149bf","#M
f71165","#e6c7b4"],["#fc889e","#1fb2b2","#2d5cc4","#6e1ed6","#630ca8","#a8275c","#f7f1b4"],["#f4d334","#3ef6ff","#5347f4","#f7f777","#9149bf","#ef5090","#e6c7b4"],["#fc889e","#1fb2b2","#2d5cc4","#ffce88","#630ca8","#ba0457","#f7f1b4"],["#f4d334","#3ef6ff","#5347f4","#77c4f7","#9149bf","#f71165","#854fba"],["#fc889e","#1fb2b2","#2d5cc4","#2187bf","#630ca8","#a8275c","#e783ea"],["#f4d334","#3ef6ff","#f97575","#f4dc78","#9149bf","#f71165","#e6c7b4"],["#fc889e","#1fb2b2","#cc2929","#f28b79","#630ca8","#a8275c","#f7f1b4M
"],["#f4d334","#3ef6ff","#f97575","#f279ab","#9149bf","#645eea","#e6c7b4"],["#fc889e","#52adff","#cc2929","#e81073","#630ca8","#3a3acc","#f7f1b4"],["#3ac9d8","#6f3bff","#44acf2","#fce875","#bf23f9","#ffb3c9","#2e92ff"],["#44acf2","#8e7de2","#6cffff","#ffd2c7","#9449ce","#f7e579","#034a7f"],["#06a0ba","#6f3bff","#fc4c7e","#f9b175","#6c6ce5","#8f58f9","#e6c7b4"],["#2bc5cc","#8e7de2","#cf4ef9","#f7df77","#4949c1","#a915ff","#f7f1b4"],["#ef01c4","#065ca8","#1c00ba","#ffee94","#c053ba","#8f58f9","#4ea8f9"],["#a60160","#M
30bec3","#5e52db","#ffebae","#da55f2","#a915ff","#4febf7"],["#f44260","#3c5ba0","#845ecc","#f4b53f","#3d9fc1","#9c223d","#e6c7b4"],["#f43b79","#4058ad","#6c3ca5","#ef9029","#317ec4","#69239b","#f7f1b4"],["#f44260","#3c5ba0","#7070e8","#f27740","#3d9fc1","#d34040","#e6c7b4"],["#f43b79","#4058ad","#4d4dc1","#ef9029","#317ec4","#ed5487","#f7f1b4"],["#f244ee","#5c75c6","#7070e8","#3cd3b6","#3d9fc1","#d34040","#e6c7b4"],["#f43b79","#637cc1","#4d4dc1","#1cb7b7","#317ec4","#ed5487","#f7f1b4"],["#e5491f","#2058d3","#7462f9M
","#40f2d0","#123676","#9c223d","#e6c7b4"],["#ef973f","#177199","#6b43dd","#15abba","#4aa4ae","#69239b","#f7f1b4"],["#e22079","#2058d3","#7462f9","#40f2d0","#5a92e5","#9c223d","#e6c7b4"],["#f21c59","#177199","#6b43dd","#15abba","#4658f9","#69239b","#f7f1b4"],["#e22079","#2058d3","#e6c7b4","#40f2d0","#5a92e5","#ba4564","#edf28b"],["#f21c59","#177199","#f7f1b4","#15abba","#4658f9","#e5336a","#43f7c8"],["#e22079","#4b80e0","#e6c7b4","#41a9ef","#5a92e5","#bc0d8b","#f7adf7"],["#f21c59","#197abc","#f7f1b4","#36a9cc","#46M
58f9","#d3057f","#43f7c8"],["#e22079","#4b80e0","#e6c7b4","#435ced","#e2b55a","#ea397d","#f4e2ae"],["#f21c59","#197abc","#f7f1b4","#7f63f7","#f98562","#e84b3a","#e9f49f"],["#0850b7","#6771f9","#8213bc","#75f9e0","#4848c1","#ffb3c9","#2e92ff"],["#3081e2","#5285dd","#9604af","#15abba","#0f0fce","#f7e579","#034a7f"],["#d80e3e","#6771f9","#8213bc","#f7ad77","#4848c1","#ffb3c9","#31b5ff"],["#ef4878","#5285dd","#9604af","#f4cb78","#0f0fce","#f7e579","#2a76d1"],["#f98246","#69acf7","#8213bc","#f7ad77","#4848c1","#ffb3c9",M
"#31b5ff"],["#ed7d4a","#5285dd","#b529d3","#f4cb78","#0f0fce","#f7e579","#2a76d1"],["#f7cd48","#69d6f4","#8213bc","#f7ad77","#7649bf","#ffb3c9","#e6c7b4"],["#f49090","#21b5d8","#b529d3","#f4cb78","#5829b2","#f7e579","#f7f1b4"],["#4a82f4","#f22a51","#8213bc","#f7ad77","#905df4","#ffb3c9","#0c85ba"],["#4cb2f2","#b72c4e","#b529d3","#f4cb78","#542ad3","#f7e579","#096889"],["#4a82f4","#f22a51","#1522ba","#f7ad77","#d32fc0","#b6fffa","#0c85ba"],["#4cb2f2","#b72c4e","#483d9b","#f4cb78","#e50a6e","#f1ffb8","#096889"],["#4aM
82f4","#f22a51","#4b23db","#f7ad77","#d1304b","#5b99f4","#1dbcb4"],["#4cb2f2","#b72c4e","#694eea","#f4cb78","#d61660","#5cd3f2","#096889"],["#ad4cf2","#f22a51","#8213bc","#f478b0","#5ff2f2","#ffb3c9","#0c85ba"],["#8b05e2","#b72c4e","#b529d3","#f4cb78","#3ea6b7","#f7e579","#096889"],["#584def","#f22a51","#a52cdd","#f2c679","#60caef","#d2b6ff","#0d53b7"],["#4f24c6","#b72c4e","#b529d3","#efaa7b","#3ea6b7","#f7e579","#458bdd"],["#584def","#ef592b","#2cdbc1","#f2c679","#6290ed","#b8fff1","#0d53b7"],["#4f24c6","#f27949",M
"#2ec0d8","#efaa7b","#4067b5","#f7e579","#458bdd"],["#584def","#ed2e8a","#2eacd8","#f2c679","#6290ed","#6929ce","#0d53b7"],["#4f24c6","#c11670","#3070d6","#efaa7b","#4067b5","#4a4add","#458bdd"],["#584def","#ed2e8a","#2eacd8","#ef9c7b","#6290ed","#6929ce","#0d53b7"],["#4f24c6","#c11670","#3070d6","#fc583d","#4067b5","#4a4add","#458bdd"],["#b7b7b7","#0a0a0a","#ffffff","#dbdcdd","#b2b2b2","#a7a7a8","#4e4f4f"],["#d8d8d8","#636363","#dbdcdd","#b2b2b2","#4e4f4f","#e0e1e2","#3f3f3f"],],paletteIndex,colorIndex,colorIndex2M
,grayscale,paletteMode,element,flavour,key,trigger=!1,anim=!1,gridIndex=0,count=0,direction,currentChord=0,nextChord=0,keyArray=["C","D","E","F","G","A","B"],flavours=["major","minor"],fifths=[["C","G","D","A","E","B","F#","Db","Ab","Eb","Bb","F"],["A","E","B","F#","C#","G#","D#","Bb","F","C","G","D"]],midSeq4,mapScale,mixer,stereo,synth2,synth4,synth6,synth3,feedback,reverb5,delay5,delay4,delay2,reverb3,lfo,pingPong,pingPong1,panner,autoPan,FFT,wave,meter,pendulum;function centerCanvas(){var e=(windowWidth-width)/M
2,t=(windowHeight-height)/2;cnv.position(e,t)}function setup(){wdt=windowWidth<windowHeight?windowWidth:windowHeight,wdt-=margin,cnv=createCanvas(wdt,wdt),centerCanvas(),bIndex=1,background(0),center=createVector(width/2,height/2),noFill(),noStroke(),smooth(),strokeWeight(1);let e=int(1990*mathRand());noiseSeed(e),randomSeed(e),noiseDetail(2,1),pixelDensity(displayDensity()),initializeAudio();let t=int(map(mathRand(),0,1,0,flavours.length));flavour=flavours[t];let f=int(map(mathRand(),0,1,0,fifths[t].length));key=fM
ifths[t][f],mapScale=(scale=(scale=(scale=(scale=(scale=(scale=(scale=Tonal.Scale.get(key+"1 "+flavour).notes).concat(Tonal.Scale.get(key+"2 "+flavour).notes)).concat(Tonal.Scale.get(key+"3 "+flavour).notes)).concat(Tonal.Scale.get(key+"4 "+flavour).notes)).concat(Tonal.Scale.get(key+"5 "+flavour).notes)).concat(Tonal.Scale.get(key+"6 "+flavour).notes)).concat(Tonal.Scale.get(key+"7 "+flavour).notes)).slice(14,28);for(let i=0;i<mapScale.length;i++){mapScale.length,mapScale[i].length>2?keyFifths.push(mapScale[i].sliM
ce(0,2)):keyFifths.push(mapScale[i].slice(0,1));.5>random(1)?currentKey-=1:currentKey+=1}let a=[];for(let $=0;$<keyFifths.length;$++)a.push(fifths[t].indexOf(keyFifths[$]));for(let s=0;s<a.length;s++)-1===a[s]&&(keyFifths.splice(s,1),a.splice(s,1));for(let c=0;c<a.length;c++)a[c]===a[0]-1&&(sequence.push(keyFifths[0]),sequence.push(keyFifths[c])),a[c]===a[0]+1&&sequence.push(keyFifths[c]),a[c]===a[0]+3&&(sequence.push(keyFifths[0]),sequence.push(keyFifths[c])),a[c]===a[0]+2&&sequence.push(keyFifths[c]),a[c]===a[0]+M
4&&sequence.push(keyFifths[c]);for(let n=0;n<15;n++)for(let d=0;d<sequence.length;d++)chordArray.push(generateChord(`${sequence[d]}2`,!0));for(let _=0;_<15;_++)for(let r=0;r<sequence.length;r++)bassChord.push(generateChord(`${sequence[r]}3`,!0));paletteMode=mathRand(),paletteIndexSub=(paletteIndex=2*int(map(mathRand(),0,1,0,50)))+1,paletteIndex3=2*int(map(mathRand(),0,1,0,50)),colorIndex=int(map(mathRand(),0,1,0,palette1[0].length)),colorIndex2=int(map(mathRand(),0,1,0,palette1[0].length)),paletteType=mathRand(),grM
ayscale=98===paletteIndex,oscill=mathRand(),oscill2=mathRand(),format=mathRand(),direction=int(map(mathRand(),0,1,0,2)),format<.5?(w=width,h=.4*height):(w=.4*width,h=height),tileWidth=floor(w/sclX)+1,tileHeight=floor(h/sclY)+1,chordNotes=chordArray;for(let b=0;b<=w;b+=tileWidth)for(let o=0;o<=h;o+=tileHeight){let l=gridIndex;points.push(new GridPoint(b-w/2,o-h/2,tileWidth,tileHeight,0,l,0)),gridIndex=(gridIndex+1)%14}let p=map(mathRand(),0,1,.1,.5),u=points;for(let y in points)mathRand()>p?(points[y].subdivide(u,y,M
2),points.splice(y,1),count++):(u.push(points[y]),points.splice(y,1));element=(points=u).length;let g;g=paletteMode<.5?7:3,window.$generativeTraits={Type:"Audio",BPM:"60",Aspect:"Grid",Key:key,Flavour:flavour,Elements:element,Subdivision:count,Palette:g,Grayscale:grayscale,Property:"Object"}}function initializeAudio(){Tone.Transport.bpm.value=60,(mixer=new Tone.Gain).toDestination(),FFT=new Tone.FFT(64),Tone.Master.connect(FFT),wave=new Tone.Waveform,(pendulum=new Tone.LFO(.05)).start(),(meter=new Tone.Meter).normaM
lRange=!0,pendulum.connect(meter),panner=new Tone.Panner(0).chain(mixer);let e=new Tone.Chorus({frequency:.83,depth:.7,wet:.85}),t=new Tone.Reverb({decay:3/4,wet:.5});t.generate();let f=new Tone.FeedbackDelay({delayTime:3/8,feedback:.32,wet:.36});(pingPong=new Tone.PingPongDelay(3/4,.5).toDestination()).set({wet:.3});let i=new Tone.Filter(2250,"lowpass",-24),a=new Tone.Filter(320,"highpass",-48);new Tone.LFO(1,250,2250).connect(i.frequency).start();let $=new Tone.FeedbackDelay({delayTime:.005,feedback:.1,wet:.33});M
new Tone.LFO(1,-1,1).connect(panner.pan).start(),(synth4=new Tone.PolySynth(Tone.FMSynth).chain(e,f,t,pingPong,i,a,$,mixer)).set({harmonicity:3,modulationIndex:3,oscillator:{type:"sine"},envelope:{attack:2e-4,decay:.1,sustain:.08,release:.03},modulation:{type:"sine"},modulationEnvelope:{attack:4e-4,decay:.1,sustain:.09,release:.01},filterEnvelope:{attack:2e-4,decay:.2,sustain:.5,release:.4,baseFrequency:200,octaves:2.6},volume:-16}),delay5=new Tone.FeedbackDelay({delayTime:3/8,feedback:.3,wet:.2});let s=new Tone.ReM
verb({decay:3/16,wet:.25});s.generate();let c=new Tone.Filter(2250,"lowpass",-24);(synth6=new Tone.PolySynth(Tone.Synth).chain(delay5,s,pingPong,c,mixer)).set({harmonicity:3,modulationIndex:3,detune:0,oscillator:{pitch:7,type:"sine"},envelope:{attack:1,decay:.1,sustain:.02,release:.03},modulation:{type:"sine"},modulationEnvelope:{attack:1.5,decay:.1,sustain:.02,release:.06},filterEnvelope:{attack:2,decay:.2,sustain:.5,release:.4,baseFrequency:200,octaves:2.6},volume:-24}),synth6.connect(wave),Tone.Transport.schedulM
eRepeat(()=>{pingPong.set({delayTime:random([3/4,3/16,3/8,.25])}),pingPong.set({wet:random([0,.1,.5])}),f.set({delayTime:random([3/8,.25])}),delay5.set({delayTime:random([3/8,.25])})},"2m")}function draw(){background(0,20),translate(center.x,center.y);let e=.5-meter.getValue(0),t=wave.getValue(0),f=FFT.getValue(0),i=map(e,-.5,.5,-PI,PI);for(let a=0;a<points.length;a++)points[a].r=points[a].r3,points[a].move(),points[a].animate(a,i,f),points[a].render(),points[a].display(a,t,f),points[a].start+=.1,points[a].offset+=M
.006;anim&&(start+=.02),trigger&&(playChord(),Tone.Transport.start(),trigger=!1)}function playChord(){Tone.Transport.schedule(bounceChord,"1"),Tone.Transport.start()}function bounceChord(){currentChord=nextChord,Promise.all([playSynthChord(chordNotes[currentChord],12,12),playStringChord(bassChord[currentChord],6,6),]).then(e=>{int(random(2));let t=int(random(6,18))+"m";!function f(i){let a=e[0],$=e[1];new Tone.BufferSource({url:a,playbackRate:.125}).toDestination().start(i),new Tone.BufferSource({url:$,playbackRateM
:.125}).toDestination().start(i),Tone.Transport.scheduleOnce(f,"+"+t)}(Tone.now())}),Tone.Transport.start(),nextChord<chordNotes.length-1?nextChord+=1:nextChord=0,Tone.Transport.schedule(bounceChord,"+2m")}function playSynthChord(e,t,f){let i=Tone.Time(t).toSeconds(),a=Tone.Time(f).toSeconds();return Tone.Offline(()=>{synth6.triggerAttackRelease(e,i)},i+a)}function playStringChord(e,t,f){let i=Tone.Time(t).toSeconds(),a=Tone.Time(f).toSeconds();return Tone.Offline(()=>{synth4.triggerAttackRelease(e,i)},i+a)}functioM
n voicing(e,t){let f=scale.indexOf(e)+t-1,i;if(void 0!==scale[f])i=scale[f];else if(3===(i=scale[f-7]).length)parseInt(i.slice(2));else{let a=parseInt(i.slice(1))+1;i=`${i.slice(0,1)}${a}`}return i}const getNextChordNote=(e,t)=>{let f=scale.indexOf(e)+t-1,i;if(void 0!==scale[f])i=scale[f];else if(3===(i=scale[f-7]).length)parseInt(i.slice(2));else{let a=parseInt(i.slice(1))+1;i=`${i.slice(0,1)}${a}`}return i};function generateChord(e,t){let f=1,i=1,a=1,$=1,s=1,c=1,n=1;t?(f=generateIndice1(),i=generateIndice1(),a=geM
nerateIndice1(),$=generateIndice1(),s=generateIndice(),c=generateIndice2(),n=generateIndice2()):(f=1,i=1,a=1,$=1,s=1,c=1,n=1);let d=voicing(e,f),_=voicing(getNextChordNote(e,3),i),r=voicing(getNextChordNote(e,5),a),b=voicing(getNextChordNote(e,7),$),o=voicing(getNextChordNote(e,9),s);return voicing(getNextChordNote(e,11),c),voicing(getNextChordNote(e,13),n),[d,_,r,b,o]}function generateIndice(){let e=int(map(mathRand(),0,1,0,3));return 0===e?-8:1===e?1:2===e?8:void 0}function generateIndice1(){return mathRand()>.5?M
1:8}function generateIndice2(){return mathRand()>.5?-8:1}class GridPoint{constructor(e,t,f,i,a,$,s){int(map(e+t,-width/2+-height/2,width/2+height/2,0,sclX+sclY)),int(map(t,-height/2,height/2,0,4)),this.x=e,this.y=t,this.w=f,this.c2=f,this.wx=e,this.hy=t,this.ws=f,this.hs=i,this.h=i,this.r=f,this.r2=f,this.r3=f,this.mv=0,this.theta=0,this.centerX=this.x+this.w/2,this.centerY=this.y+this.h/2,this.c=int(map(mathRand(),0,1,0,3)),this.paletteIndex2=int(map(dist(this.centerX,this.centerY,0,0),0,500,0,palette1[0].length))M
,this.randForm=int(map(mathRand(),0,1,0,5)),this.randIndex=paletteMode<.5?int(map(mathRand(),0,1,0,palette1[0].length)):paletteIndex2,this.randIndex2=int(map(mathRand(),0,1,0,palette1[0].length)),this.randIndex3=int(map(mathRand(),0,1,0,palette1[0].length)),this.randIndex4=int(map(mathRand(),0,1,0,palette1[0].length)),this.start=0,this.alpha=255,this.pIndex=paletteIndex,this.pi=paletteIndex3,this.rt=map(mathRand(),0,1,PI/6,PI/3),this.incr,this.rst=random(0,TAU),this.rst2=random(0,TAU),this.rad=0,this.sub=s,this.offM
set=20*mathRand(),this.offset2=0,this.div=int(map(mathRand(),0,1,10,30)),this.strk=1,this.isOn=a,this.note=$,this.init(),paletteIndex2=(paletteIndex2+1)%3}subdivide(e,t,f){let i=this.w/f,a=this.h/f,$=this.sub+1,s=this.note+7;e.push(new GridPoint(this.x,this.y,i,a,this.isOn,s,$),new GridPoint(this.x+i,this.y,i,a,this.isOn,s,$),new GridPoint(this.x,this.y+a,i,a,this.isOn,s,$),new GridPoint(this.x+i,this.y+a,i,a,this.isOn,s,$))}move(){if(0<=this.t&&this.t<this.t1){let e=norm(this.t,0,this.t1-1);this.mv=lerp(0,TAU,easeM
OutQuint(e)),this.rad=lerp(0,this.w/4,easeOutQuint(e))}this.t1<this.t&&this.init(),this.t++}init(){this.t=-int(random(map(speed,1,5,500,100))),this.t1=map(speed,1,5,220,60)}animate(e,t,f){this.theta=t+e*PI/4;let i=int(map(this.x,-width/2,width/2,0,f.length)),a=f[i];a=a===-1/0?0:f[i],this.incr=map(a,0,-100,0,.2),this.i=map(e,0,points.length,0,TWO_PI),this.xoff=map(cos(this.i),-1,1,0,3),this.yoff=map(sin(this.i),-1,1,0,3),this.n=noise(this.xoff+this.offset+this.incr,this.yoff+this.offset+this.incr),this.n4=noise(thisM
.xoff+50,this.yoff+50),this.n5=noise(this.xoff+50+start,this.yoff+50+start),this.n6=noise(this.offset,this.offset),this.angle=noise(this.xoff+this.offset,this.yoff+this.offset)*TAU*4,this.xa=this.x,this.ya=this.y*sin(map(this.n,0,1,0,TAU)),this.xb=this.x*sin(this.mv),this.r=map(this.n,0,1,this.w/2,this.w),this.r3=map(this.n,0,1,this.w/2,this.w),this.r2=map(this.n,0,1,0,5),this.alpha=map(this.n5,0,1,120,180),this.delay=int(map(this.n4,0,1,2,1))}render(){strokeWeight(.1);fill(color(palette1[this.pIndex][this.randIndeM
x])),circle(this.x,this.ya,this.r2),circle(this.x+this.w,this.ya,this.r2),circle(this.x,this.ya+this.h,this.r2),circle(this.x+this.w,this.ya+this.h,this.r2)}display(e,t,f){if(0===direction)for(let i=this.ya;i<=this.ya+this.h;i+=2){beginShape();for(let a=this.xa;a<=this.xa+this.w;a+=5){let $=int(map(this.ya*this.xa,(this.ya+this.h)*(this.xa+this.w),0,f.length)),s=f[$];s=s===-1/0?0:f[$],this.incr2=map(s,0,-100,0,6),this.n3=noise(this.incr2,this.incr2),this.n2=noise(this.xoff+this.offset2+this.incr2,this.yoff+this.offM
set2+this.incr2),this.n4=map(this.n3,0,1,.9,1.1),this.z=oscill<.5?map(this.n2,0,1,.9,1.1):1;let c=int(map(this.n2,0,1,0,255));int(map(this.n2,0,1,0,palette1[0].length));let n=map(i,this.y,this.y+this.h,0,1),d,_=color(palette1[this.pIndex][this.randIndex]),r=color(palette1[this.pIndex+1][this.randIndex]);(d=lerpColor(_,r,n)).setAlpha(c),noFill(),stroke(d),strokeWeight(.5),vertex(a,i*this.z),this.offset2+=.1}endShape()}else if(1===direction)for(let b=this.xa;b<=this.xa+this.w;b+=2){beginShape();for(let o=this.ya;o<=tM
his.ya+this.h;o+=5){let l=int(map(e,points.length,0,f.length)),p=f[l];p=p===-1/0?0:f[l],this.incr2=map(p,0,-100,0,3),this.n3=noise(this.incr2,this.incr2),this.n2=noise(this.xoff+this.offset2+this.incr2,this.yoff+this.offset2+this.incr2),this.n4=map(this.n3,0,1,.9,1.1),this.z=oscill<.5?map(this.n2,0,1,.9,1.1):1,this.z2=oscill2<.5?map(this.n2,0,1,.999,1.009):1;let u=int(map(this.n2,0,1,0,255));int(map(this.n2,0,1,0,palette1[0].length));let y=map(o,this.y,this.y+this.h,0,1),g,x=color(palette1[this.pIndex][this.randIndM
ex]),m=color(palette1[this.pIndex+1][this.randIndex]);(g=lerpColor(x,m,y)).setAlpha(u),noFill(),stroke(g),strokeWeight(.5),vertex(b*this.z2,o*this.z),this.offset2+=.1}endShape()}if(0===this.c);else if(1===this.c){strokeWeight(.5);let v=0;for(let I=1;I<t.length;I++)if(t[I-1]<0&&t[I]>=0){v=I;break}let k=v+t.length/2,F=100*this.h;for(let C=v;C<=k;C++){let S=map(C-1,v,k,this.xb,this.xb+this.w),T=map(t[C-1],-12,12,this.y-F,this.y+F+this.h),P=map(C,v,k,this.xb,this.xb+this.w),q=map(t[C],-12,12,this.y-F,this.y+F+this.h);lM
ine(S,T,P,q)}}}}function mapNote(e,t){let f=t.length,i=t[modulo(e,f)],a=Tonal.Note.octave(t[0])+floor(e/f);return Tonal.Note.pitchClass(i)+a}function modulo(e,t){return(e%t+t)%t}function easeOutQuint(e){return 1+--e*e*e*e*e}function windowResized(){centerCanvas()}function keyTyped(){return"p"===key&&saveCanvas("liquidentropy","jpg"),!1}function touchStarted(){return Tone.start(),anim||(trigger=!0,Tone.Transport.start()),anim=!0,3===touches.length&&saveCanvas("liquidentropy","jpg"),!1}function mousePressed(){return M
Tone.start(),anim||(trigger=!0,Tone.Transport.start()),anim=!0,!1}
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('M
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (M
r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
          var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
 background-color: #000000;
            margin: 0px;
            overflow: hidden;
            width: 100%;
            height: 100%;
    <script type="text/javascript">
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"jj88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Light", "Base shade": "Dark", "Colour": "Red", "Colour chance": "10%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 4, "Sensitivity": "Medium"M
let t=[2e3,1e4],o=[0,50];let h=[100,250],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[100,250],X=[.6,3];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=4,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e60000"],te=.1,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7aM
dbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #29";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 M
l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74M
.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.M
915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.M
051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-41 M
m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.78,M
-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40-69zm-M
220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_cluster=!0)M
,large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424M
,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17M
-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 2M
47h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_M
shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);breaM
k}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.jsoM
n(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.byteM
s,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate"))M
.setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.M
s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#backgrM
ound_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scaleM
=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0]M
,h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapeM
s[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2)M
,stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement(),M
(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]M
)):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_number_M
of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[M
i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.oM
pacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.idM
)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_numbM
er_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),aM
nimation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visiM
ble_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");forM
(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),M
o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}functioM
n D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http:M
//www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,M
s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2M
=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=p,M
p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+=M
J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fpM
[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1M
*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"xx66.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Dark", "Base shade": "Balanced", "Colour": "Red", "Colour chance": "20%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 7, "Sensitivity": "MeM
let t=[2e3,1e4],o=[0,250];let h=[0,50],W=[.1,.4];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[50,200],X=[.1,5];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=7,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e60000"],te=.2,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7M
adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #61";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25M
 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l7M
4.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90M
.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0M
.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-41M
 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.78M
,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 M
27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 8M
7 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m33 15-26 97 26 122 47-50h96l-M
143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1M
.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=awaitM
 fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let M
e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mM
empool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,M
"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeM
ze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(functM
ion e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeM
NS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[M
i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<larM
ge_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&M
&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";M
"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_raM
nge=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);M
fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shapeM
=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desirM
ed_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapesM
+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_M
large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,M
u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]M
?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[M
1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.iM
d),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(M
e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAtM
tributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=M
t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(M
50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sM
in(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(clusterM
=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[]M
,i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydowM
n=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"loosey.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Light", "Base shade": "Light", "Colour": "Blue", "Colour chance": "7%", "Base colour": "Blue", "Base Colour chance": "40%", "S forms": "20-120", "L forms": "2-24", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 3, "Sensitivity": "HiM
let t=[2e3,1e4],o=[100,250];let h=[180,250],W=[.1,.4];var e=[[2,8],[2,8]];let u=[20,120],_=[50,80];let b=[180,250],X=[.8,4];let c=[2,24],f=[8,16],S=[0,1,2,3,4,5,6,7,8,9,10],N=3,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#000080"],te=.07,se=["#000080"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.M
pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #11";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,22M
7 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59M
,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,4M
25.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42M
 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131M
-52 56-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,eM
nable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3M
,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 M
58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-1M
80-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,PM
;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"jsonM
",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bM
h}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"M
})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(nulM
l,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(nullM
,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChilM
d(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=documenM
t.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<smalM
l_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=deM
(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[M
offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-backgrM
ound")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],M
randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fadeM
_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visiM
bilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duraM
tion_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.M
setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|M
random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(smallM
_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),M
s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id=M
"gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transfM
orm-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${M
e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.6<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNM
S(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=M
[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1M
=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%1M
00)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,M
p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.lengtM
h;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(M
n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Dark", "Base shade": "Dark", "Colour": "Blue", "Colour chance": "4%", "Base colour": "Blue", "Base Colour chance": "50%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 4, "Sensitivity": "HighM
let t=[2e3,1e4],o=[0,100];let h=[0,50],W=[.1,.4];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,100],X=[.6,3];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=4,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#000080"],te=.04,se=["#000080"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4cM
a7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #17";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.M
25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357M
l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88lM
90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,M
-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-M
41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.M
78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-10M
0 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 HM
 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m33 15-26 97 26 122 47-50h96M
l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:M
"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=awaM
it fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{leM
t e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}tryM
{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(nulM
l,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","frM
eeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(funM
ction e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttribuM
teNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(sM
1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<lM
arge_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==M
0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+M
";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_M
range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]M
);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shaM
pe=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desM
ired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapM
es+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visiblM
e_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,M
o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[M
0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.M
s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+rM
.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abM
s(e),!0&.5<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.seM
tAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*lM
,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3M
=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=MatM
h.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(clusM
ter=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(vM
=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeyM
down=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"trim.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Balanced", "Base shade": "Light", "Colour": "", "Colour chance": "0%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-30", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 8, "Sensitivity": "High"}
t t=[2e3,1e4],o=[180,250];let h=[80,170],W=[.07,.2];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[0,100],X=[.8,4];let c=[5,30],f=[12,18],S=[0,1,2,3,4,5,6,7,8,9,10],N=8,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["-"],te=0,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7adbc8336d369M
69373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #16";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 l -79,45 -1M
8,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74.16,115.7L9M
9.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.915-40.961LM
147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.051 1.8,20 M
z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 M
27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 8M
7 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.M
7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcM
ount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);bM
reak}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=M
await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_randoM
m,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(nuM
ll,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x"M
,"0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$M
;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));forM
(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1M
:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offsM
et2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),neM
w_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duratioM
n",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_nM
umber_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_M
small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.queryM
Selector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&M
!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<totalM
_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_M
shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinateM
s=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.puM
sh({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2)M
,l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.seM
tAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sinM
(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"yM
2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],oM
=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=M
K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[]M
,s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].M
x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var M
a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).inseM9
rtAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"yy66.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Orange", "Colour chance": "30%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-30", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 5, "Sensitivity": M
let t=[2e3,1e4],o=[80,170];let h=[50,200],W=[.1,.4];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[0,100],X=[.1,5];let c=[5,30],f=[12,18],S=[0,1,2,3,4,5,6,7,8,9,10],N=5,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e65c00"],te=.3,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4M
ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #25";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0M
.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.35M
7l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88M
l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8M
,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,M
-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0M
.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40-6M
9zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_clusterM
=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","mM
 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h14M
5l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m4M
73 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F(M
[bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);M
break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await eM
.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.M
bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animatM
e")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backgroM
und.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#baM
ckground_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],sM
cale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(M
h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_sM
hapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",colM
or2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElemenM
t(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,M
100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_numM
ber_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilitM
ies[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shaM
pe.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shapM
e.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_M
number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"sM
"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_M
visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs")M
;for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"M
%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}funM
ction D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("hM
ttp://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function M
K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1M
),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,pM
2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100M
,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3M
),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+stepM
*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"hh88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Light", "Base shade": "Light", "Colour": "Green", "Colour chance": "5%", "Base colour": "Green", "Base Colour chance": "50%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 4, "Sensitivity": "M
let t=[2e3,1e4],o=[100,250];let h=[100,250],W=[.1,.3];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[180,250],X=[.1,5];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=4,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#00b300"],te=.05,se=["#00b300"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quM
iknode.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #12";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z MM
 333,227 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109M
,128.59,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414LM
147.4,425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -M
104,-42 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 lM
 18,7.3 -29,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -M
40,-4.5 m -0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 5M
6-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enableM
_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 3M
0,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-25M
0 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-M
37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),backM
ground={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json(M
);i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mpM
}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-LM
)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementM
NS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"valuesM
",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fiM
ll","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=JM
(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23=M
=0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offsM
et2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stoM
p-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animationM
.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomneM
ss=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=ZM
;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapM
es_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,M
"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelectoM
r("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement(M
)):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_larM
ge_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_valM
ues="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementM
NS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(nuM
ll,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendCM
hild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.5<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.creatM
eElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];returM
n e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,1M
60,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-M
5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=M
J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[iM
].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[M
1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"77778888.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Dark", "Base shade": "Dark", "Colour": "Blue", "Colour chance": "10%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-30", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 2, "Sensitivity": "Medium"}
let t=[2e3,1e4],o=[0,100];let h=[0,100],W=[.1,.4];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[0,50],X=[.1,5];let c=[5,30],f=[12,18],S=[0,1,2,3,4,5,6,7,8,9,10],N=2,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#000080"],te=.1,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7adbc8336M
d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #3";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 l -79,45M
 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74.16,115.M
7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.915-40.9M
61L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.051 1.8,M
20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-41 m -1,-3.M
2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.78,-1.1 41,M
4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1M
-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,1M
02 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m33 15-26 97 26 122 47-50h96l-143-169m-M
1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",methoM
d:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(urM
l,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fM
etch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_byM
tes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",M
""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.aM
ppendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){sM
mall_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"M
transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,10M
0],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapesM
.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shadM
e_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_bacM
kground_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,9M
0],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duraM
tion=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapM
es[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_numberM
_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),aniM
mation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shaM
pes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var M
_=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:DM
(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-M
"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=docM
ument.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<IM
()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNSM
(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.pM
ush({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,M
10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.M
push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,clustM
er_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.M
length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=functioM
n(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"lent.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Yellow", "Colour chance": "10%", "Base colour": "", "Base Colour chance": "0%", "S forms": "5-200", "L forms": "2-24", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 7, "SensitivityM
let t=[2e3,1e4],o=[80,170];let h=[50,200],W=[.1,.3];var e=[[2,8],[2,8]];let u=[5,200],_=[50,120];let b=[0,250],X=[.8,4];let c=[2,24],f=[8,16],S=[0,1,2,3,4,5,6,7,8,9,10],N=7,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#cccc00"],te=.1,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.proM
/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #76";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 vM
 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.M
357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.M
88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1M
.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -2M
9,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m M
-0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40M
-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_clustM
er=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z",M
"m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28hM
145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","M
m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:M
F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(aM
);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=awaitM
 e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=M
t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animM
ate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backgM
round.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#M
background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1]M
,scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=M
V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),smallM
_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",cM
olor2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElemM
ent(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-M
5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_nM
umber_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilM
ities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",sM
hape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shM
ape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desireM
d_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+M
"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",M
n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defsM
");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.xM
+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}fM
unction D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS(M
"http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}functioM
n K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,tM
+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=pM
,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%1M
00,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100M
,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+stM
ep*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"22228888.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"seaham.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ww66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"rr66.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"loose.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"oo88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"pawn.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"cc66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"wick.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"dd88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"nn88.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"998888.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"11118888.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ww88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Light", "Base shade": "Light", "Colour": "Yellow", "Colour chance": "6%", "Base colour": "Yellow", "Base Colour chance": "60%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 2, "Sensitivity":M
let t=[2e3,1e4],o=[180,250];let h=[100,250],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[180,250],X=[.1,5];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=2,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#cccc00"],te=.06,se=["#cccc00"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discoverM
.quiknode.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #9";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 zM
 M 333,227 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.1M
09,128.59,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.41M
4L147.4,425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40M
 -104,-42 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22M
 l 18,7.3 -29,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14M
 -40,-4.5 m -0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52M
 56-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enabM
le_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20M
 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-M
250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 3M
3-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),baM
ckground={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.jsoM
n();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_M
mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytesM
-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElemeM
ntNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"valuM
es",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"M
fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(szM
=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%2M
3==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",ofM
fset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"sM
top-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animatiM
on.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomM
ness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapesM
=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shM
apes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(nulM
l,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelecM
tor("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElemenM
t()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_lM
arge_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_vM
alues="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElemeM
ntNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(M
null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appenM
dChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.4<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.creM
ateElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];retM
urn e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0M
,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+JM
(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),xM
+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fpM
[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<M
s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"hh66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"qq88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"kk88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ee88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ff66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"zz88.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"558888.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"gg66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"tt66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"tt88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ss88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"qq66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"mm88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Green", "Colour chance": "5%", "Base colour": "Green", "Base Colour chance": "50%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 0, "SensitM
let t=[2e3,1e4],o=[0,250];let h=[80,170],W=[.1,.4];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,250],X=[.1,5];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=0,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#00b300"],te=.05,se=["#00b300"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.M
quiknode.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #77";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 zM
 M 333,227 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.1M
09,128.59,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.41M
4L147.4,425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40M
 -104,-42 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22M
 l 18,7.3 -29,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14M
 -40,-4.5 m -0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52M
 56-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enabM
le_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20M
 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-M
250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 3M
3-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),baM
ckground={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.jsoM
n();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_M
mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytesM
-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElemeM
ntNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"valuM
es",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"M
fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(szM
=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%2M
3==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",ofM
fset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"sM
top-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animatiM
on.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomM
ness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapesM
=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shM
apes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(nulM
l,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelecM
tor("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElemenM
t()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_lM
arge_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_vM
alues="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElemeM
ntNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(M
null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appenM
dChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.5<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.creM
ateElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];retM
urn e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0M
,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+JM
(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),xM
+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fpM
[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<M
s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Light", "Base shade": "Balanced", "Colour": "Cyan", "Colour chance": "20%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 5, "Sensitivity": "MedM
let t=[2e3,1e4],o=[50,200];let h=[180,250],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,100],X=[.6,3];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=5,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#00cccc"],te=.2,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4M
ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #23";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0M
.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.35M
7l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88M
l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8M
,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 5M
6-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enableM
_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 3M
0,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-25M
0 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62M
-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!asyM
nc function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",metM
hod:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),aM
=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),aM
=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"atM
tributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repM
eatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),M
ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.queM
rySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shaM
pes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(largM
e_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offseM
t1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background"M
)).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randoM
mness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_timeM
_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilitM
ies[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_M
small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAtM
tributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|randoM
m_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapM
es),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=heM
(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"M
+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-oM
rigin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256M
},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(nullM
,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];forM
(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,M
50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)M
%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3]M
,i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)M
e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+stM
ep/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"plow.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8"/>
    <title>Ordinal dreams - plottable</title>
    <script id="snippet-random-code">
        let seed = window.location.href.split("/").find((e) => e.includes("i0"));
        if (null == seed) {
            const e = "0123456789abcdefghijklmnopqrstuvwsyz";
                new URLSearchParams(window.location.search).get("seed") ||
                Array(64)
                    .fill(0)
                    .map((t) => e[(Math.random(M
                    .join("") + "i0";
            let e = "seed=";
            for (let t = 0; t < seed.length - e.length; ++t)
                if (seed.substring(t, t + e.length) == e) {
                    seed = seed.substring(t + e.length);
                    break;
        function cyrb128(e) {
            let t = 1779033703,
                l = 3144134277,
                n = 1013904242,
                i = 2773480762;
            for (let a, M
s = 0; s < e.length; s++)
                (t = l ^ Math.imul(t ^ (a = e.charCodeAt(s)), 597399067)),
                    (l = n ^ Math.imul(l ^ a, 2869860233)),
                    (n = i ^ Math.imul(n ^ a, 951274213)),
                    (i = t ^ Math.imul(i ^ a, 2716044179));
            return (
                (t = Math.imul(n ^ (t >>> 18), 597399067)),
                    (l = Math.imul(i ^ (l >>> 22), 2869860233)),
                    (n = Math.imul(t ^ (n >>> 17), 951274213)),
                    (i = Math.M
imul(l ^ (i >>> 19), 2716044179)),
                    [(t ^ l ^ n ^ i) >>> 0, (l ^ t) >>> 0, (n ^ t) >>> 0, (i ^ t) >>> 0]
        function sfc32(e, t, l, n) {
            return function () {
                var i = ((e >>>= 0) + (t >>>= 0)) | 0;
                return (
                    (e = t ^ (t >>> 9)),
                        (t = ((l >>>= 0) + (l << 3)) | 0),
                        (l =
                            ((l = (l << 21) | (l >>> 11)) +
                               M
 (i = (i + (n = ((n >>>= 0) + 1) | 0)) | 0)) |
                            0),
                    (i >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
    const random = (a = 1) => a * mathRand(),
        randomBetween = (a, n) => a + random(n - a),
        dist = (a, n, r, t) => {
            var d = a - r,
                e = n - t;
    return Math.sqrt(d * d + e * e);
    const rand = mathRand(),
                paper: "White",
                frame: "Red",
                moons: "Blue",
                bg: "rgb(230, 230, 230);",
                fr: "rgba(255,99,71,50)",
                cr: "blue",
                op: "0.8",
                paper: "White",
                frame: "Blue",
                moons: "Red",
                bg: "rgb(230, 230, 2M
                fr: "blue",
                cr: "rgba(255,99,71,50)",
                op: "0.8",
                paper: "Light green",
                frame: "Green",
                moons: "Purple",
                bg: "lightgreen;",
                fr: "green",
                cr: "purple",
                op: "0.8",
                paper: "Charcoal",
                frame: "Gold",
                moons: "White",
                bg: "rgb(30, 30, 30)M
                fr: "gold",
                cr: "white",
                op: "1",
                paper: "Charcoal",
                frame: "White",
                moons: "Gold",
                bg: "rgb(30, 30, 30);",
                fr: "white",
                cr: "gold",
                op: "1",
                paper: "Charcoal",
                frame: "Silver",
                moons: "Gold",
                bg: "rgb(30, 30, 30);",
                cr: "gold",
                op: "1",
                paper: "Charcoal",
                frame: "Blue",
                moons: "Silver",
                bg: "rgb(30, 30, 30);",
                fr: "dodgerblue",
                cr: "silver",
                op: "1",
                paper: "Charcoal",
                frame: "Silver",
                moons: "Blue",
                bg: "rgb(30, 30, 30);",
                fr: "silver",M
                cr: "dodgerblue",
                op: "1",
                paper: "Bitcoin Orange",
                frame: "Black",
                moons: "White",
                bg: "orange",
                fr: "black",
                cr: "white",
                op: "1",
    function getTraits() {
            rotateS:
                5 * Math.floor(randomBetween(1, 9)) * (mathRand() > 0.5 ? -1 : 1),
            colId: Math.floor(random(CM
olors.length - 1e-7)),
            rx: mathRand() > 0.5 ? Math.floor(random(20)) : 0,
            bStart: Math.floor(randomBetween(3, 15)) / 100,
            moonDensity: 5 * [1, 2, 5, 10][Math.floor(random(4))],
            isDual: mathRand() > 0.8,
            frameDensity: 10 * Math.floor(randomBetween(2, 6)),
        rotateS: rotateS,
        colId: colId,
        bStart: bStart,
        moonDensity: moonDensity,
        isDual: isDual,
        frameDensity: frameDeM
    } = getTraits();
    (window.$generativeTraits = {
        Paper: Colors[colId].paper,
        Frame: Colors[colId].frame,
        "Frame size": bStart,
        "Frame rotation": rotateS,
        "Frame rounding": rx,
        "Frame density": frameDensity,
        Moons: Colors[colId].moons,
        "Moon Density": moonDensity,
        "Dual pattern": isDual,
        console.table(window.$generativeTraits);
        constructor(e, t, r, o = "white") {
            (this.x = t), M
(this.y = r), (this.r = e), (this.c = o);
        show(e, t, r, o) {
            o.setAttribute("id", `c${t}`), o.setAttribute("stroke", this.c);
            let a = this.r,
                n = random(2 * Math.PI),
                s = this.x,
                i = this.y,
                l = a * Math.cos(n) + s,
                d = a * Math.sin(n) + i,
                c = `M ${l} ${d} `;
            for (let e = 0; e < 3 * a; e++)
                (n = random(2 * Math.PI)),
                    (l = a * MathM
                    (d = a * Math.sin(n) + i),
                    (c += `L ${l} ${d} `);
            let m = document.createElementNS(e, "path");
            m.setAttribute("style", "fill:none;stroke-width:1;"),
                m.setAttribute("d", c),
                o.appendChild(m);
    let createCircles = function (e, t, r = 0.05, o = "white") {
            let a = new Array(),
                n = Math.min(e, t),
                s = 0;
            for (; a.length < moonDensity && M
                let i = randomBetween(n / (2 * moonDensity), n / 4),
                    l = randomBetween(i + e * r, e * (1 - 2 * r) - i),
                    d = randomBetween(i + e * r, t - e * r * 2 - i);
                l - i <= 0 ||
                d - i <= 0 ||
                l + i > e ||
                d + i > t ||
                a.some((e) => 0.8 * dist(l, d, e.x, e.y) < i + e.r)
                    ? s++
                    : (a.push(new Circle(i, l, d, o)), (s = 0));
        yin = 11.67,
        w = xin * dpi,
        h = yin * dpi,
        ns = "http://www.w3.org/2000/svg",
        svg = document.createElementNS(ns, "svg");
    svg.setAttribute("id", "svg"),
        svg.setAttribute("width", "100vw"),
        svg.setAttribute("height", "100vh"),
        svg.setAttribute("viewBox", "0 0 " + w + " " + h),
        svg.setAttribute("style", "background-color:" + Colors[colId].bg + ";");
    let bounds = document.creatM
eElementNS(ns, "path");
    bounds.setAttribute("d", `M 0 0 M ${w} ${h}`), svg.appendChild(bounds);
    let bg = document.createElementNS(ns, "g");
    bg.setAttribute("id", "frame"),
        bg.setAttribute("stroke", Colors[colId].fr),
        bg.setAttribute("stroke-opacity", Colors[colId].op),
        bg.setAttribute("fill", "transparent");
        let e = bStart;
        e < 0.49 && w * (1 - 2 * e) >= 0 && h - 2 * w * e >= 0;
        e += e / frameDensity
        let t = document.createElementM
        t.setAttribute("rx", rx),
            t.setAttribute("x", w * e),
            t.setAttribute("y", w * e),
            t.setAttribute("width", w * (1 - 2 * e)),
            t.setAttribute("height", h - 2 * w * e),
            t.setAttribute("transform", "rotate(" + (bStart - e) * rotateS + ")"),
            bg.appendChild(t);
    if ((svg.appendChild(bg), isDual)) {
        let e = document.createElementNS(ns, "use");
        e.setAttribute("href", "#frame"),
            e.setAttribute(M
"transform", "translate(" + w + ",0) scale(-1,1)"),
            svg.appendChild(e);
    let circles = createCircles(w, h, 0.05, Colors[colId].cr),
        circ = document.createElementNS(ns, "g");
    function downloadSVGAsText() {
        const e = document.querySelector("svg"),
            t = btoa(unescape(encodeURIComponent(e.outerHTML))),
            r = document.createElement("a"),
            o = new MouseEvent("click");
        (r.download = "download.svg"),
            (r.href = "data:image/svg+xml;M
            r.dispatchEvent(o);
    circ.setAttribute("stroke-opacity", Colors[colId].op),
        circles.forEach((e, t) => {
            e.show(ns, t, svg, circ);
        svg.appendChild(circ),
        document.body.appendChild(svg);
    const downloadSVG = document.querySelector("#svg");
    downloadSVG.addEventListener("click", downloadSVGAsText);
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Blue", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXS", "L forms size": "XXXXL", "Clustering": 1, "Sensitivity":M
let t=[2e3,1e4],o=[80,170];let h=[80,170],W=[.2,.5];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[50,200],X=[.4,2];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=1,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#000080"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.prM
o/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #73";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 M
v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2M
.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425M
.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -M
1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6M
.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 M
204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-1M
42 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0"M
,method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.M
json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{daM
taType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mM
empool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1M
.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAtM
tributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);bM
lock_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapesM
[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"M
==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100]M
,b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!M
=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttribuM
teNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,larM
ge_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;M
fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),M
svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shaM
pes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_M
large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_M
coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1]M
)/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][M
0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1)M
,g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"iM
d","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){M
var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAM
ttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0M
,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,1M
0,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=pM
}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<clM
uster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}funM
ction de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("coMK
ntainer")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"pp66.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"668888.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Blue", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "20-120", "L forms": "7-40", "S forms size": "XXS", "L forms size": "XXXL", "Clustering": 9, "Sensitivity": "MedM
let t=[2e3,1e4],o=[50,200];let h=[0,250],W=[.2,.5];var e=[[2,8],[2,8]];let u=[20,120],_=[50,80];let b=[0,100],X=[.8,4];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=9,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#000080"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7aM
dbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #26";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 M
l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74M
.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.M
915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.M
051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16M
 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_subM
_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9M
.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95M
v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119M
-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async fM
unction e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:M
"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=awaM
it s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=awaM
it s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attribM
uteName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCM
ount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(lM
arge_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySeM
lector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.M
length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shM
apes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,cM
olor1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).sM
etAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomnesM
s=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_mulM
tiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[M
i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_smalM
l_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttribM
uteNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shM
ift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),M
Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,M
[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.iM
d,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origiM
n","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${M
e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"idM
",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(letM
 e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,1M
0,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100M
,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0M
;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i]M
.visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2M
*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"mm66.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"losing.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ll88.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Pop On Chain by SMLDMS</title>
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(maM
thRand() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
          color: rgb(255, 255, 255);
            background-color: rgb(0, 0, 0);
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0;
            padding: 0;
            font-size: 0.8em;
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
        #fullScreen {
            display: flex;
            position: fixed;
            bottom: 0;
            left: 0;
            justify-content: center;
            align-items: center;
        #fullScreen canvas {
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
            /* mix-blend-mode: soft-light; */
            color: rgb(255);
            opacity: 0.75;
            width: auto;
            height: auto;
            position: fixed;
            text-align: center;
          justify-content: center;
            align-items: center;
            padding: 10%;
        #progress h1 {
            font-size: 10.75em;
            /* display: block; */
            margin: 0%;
            padding: 0%
    <canvas id="cnv"></canvas>
    <div id="fullScreen">
        <div id="progress"></div>
<!-- /////////////////////////////////LET'S GO//////////////////////////////// -->
<script type="text/jaM
    const myTitle = "Pop On Chain";
    const canvas = document.getElementById("cnv");
    const ctx = cnv.getContext('2d');
    let ratio = 1.414142
        n: mathRand(),
    if (format.n < 0.33) {
        format.ww = ratio
        format.hh = 1
        format.name = "Landscape"
    } else if (format.n < 0.66) {
        format.ww = 1
        format.hh = ratio
        format.name = "Portrait"
        format.ww = 1
        format.hh = 1
        format.name = "Square"
    const mySize = 1000;
    cnv.width = mySize * format.ww;
    cnv.height = mySize * format.hh;
    const scales = [25, 50, 100];
    const randomIndex = Math.floor(mathRand() * scales.length);
    const scl = scales[randomIndex];
    const marges = [200, 100, 50];
    const randomMarge = Math.floor(mathRand() * marges.length);
    const marge = marges[randomMarge];
    const maxT = Math.round(mathRand() * 50 + 10M
        n: mathRand(),
        n: mathRand(),
        n: mathRand(),
    if (layer.n < 0.5) {
        layer.name = "On"
        layer.name = "Off"
    if (clr.n < 0.25) {
        clr.name = "White"
    else if (clr.n < 0.5) {
        clr.name = "Red"
      clr.name = "Black"
    if (mode.n < 0.25) {
        mode.name = "C"
        mode.val = 100
    else if (mode.n < 0.5) {
        mode.name = "B"
        mode.val = 25
        mode.name = "A"
        mode.val = 0
    window.$generativeTraits = {
        "Format": format.name,
        "Color Base": clr.name,
        "Back layer": layer.name,
        "Mode": mode.name,
        "Scale": scl,
        "Model": maxT,
        "Marge": marge,
    console.log(myTitle + " | smldms 2023.03")
    console.log(window.$generativeTraits)
    const r = cnv.height / scl;
    const c = cnv.width / scl
    ctx.fillStyle = clr.name;
    ctx.rect(0, 0, cnv.width, cnv.height)
    if (layer.name == "On") {
    addGrain(cnv, 25)
    function frame() {
        // ctx.filter = "blur(5px)";
        ctx.restore()
        ctx.fillStyle = clr.name;
tx.strokeStyle = 'hsl(' + 360 * mathRand() + ',100%,50%)';
        ctx.lineWidth = 100;
        ctx.rect(0, 0, cnv.width, cnv.height)
        ctx.stroke();
    function halo() {
        ctx.restore()
        ctx.translate(c / 2, r / 2)
        ctx.filter = 'blur(' + mode.val + 'px)';
        for (let x = marge; x < cnv.width - marge / 2; x += 50) {
            for (let y = marge; y < cnv.height - marge / 2; y += 50) {
                let clrF = 'hsl(' + 360 * mathRand() + ',100%,50%)';
         ctx.fillStyle = clrF;
                ctx.strokeStyle = clr.name;
                ctx.lineWidth = mathRand() * 5 + 1;
                ctx.beginPath()
                if (mathRand() < 0.25) {
                    ctx.arc(x, y, r * 2, 0, Math.PI)
                else if (mathRand() < 0.5) {
                    ctx.arc(x, y, r * 2, Math.PI, 0)
                else if (mathRand() < 0.75) {
                    for (let i = 2; i < 100; i += 1) {
      if (mathRand() < 0.25) {
                            ctx.arc(x + i, y, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.5) {
                            ctx.arc(x, y + i, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.75) {
                            ctx.arc(x, y - i, r / i, 0, Math.PI * 2)
                        }
                        else {
                            ctx.arc(x - i, y, r / i, 0, M
                        }
                    }
                else {
                ctx.closePath();
                ctx.stroke()
                ctx.fill();
    function show() {
        ctx.restore()
        for (let x = marge; x < cnv.width - marge; x += r) {
            for (let y = marge; y < cnv.height - marge; y += c) {
                ctx.filter = "blur(0px) contrast(1.4) drop-shadow(0px 9px 5px #000) ";
             ctx.fillStyle = clr.name;
                ctx.strokeStyle = 'hsl(' + 360 * mathRand() + ',100%,50%)';
                ctx.lineWidth = mathRand() * 2 + 1;
                ctx.beginPath()
                if (mathRand() < 0.25) {
                    ctx.arc(x, y, r / 2, 0, Math.PI)
                else if (mathRand() < 0.5) {
                    ctx.arc(x, y, r / 2, Math.PI, 0)
                else if (mathRand() < 0.75) {
                    for (let i = 2M
; i < maxT; i += 1) {
                        if (mathRand() < 0.25) {
                            ctx.arc(x + i, y, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.5) {
                            ctx.arc(x, y + i, r / i, 0, Math.PI * 2)
                        }
                        else if (mathRand() < 0.75) {
                            ctx.arc(x, y - i, r / i, 0, Math.PI * 2)
                        }
                        else {
             ctx.arc(x - i, y, r / i, 0, Math.PI * 2)
                        }
                    }
                else {
                ctx.closePath();
                ctx.stroke()
                ctx.fill();
    function addGrain(canvas, graininess) {
        const ctx = canvas.getContext('2d');
        const width = canvas.width;
        const height = canvas.height;
        const pixels = ctx.getImageData(0, 0, width, heighM
        for (let i = 0; i < pixels.data.length; i += 4) {
            const r = pixels.data[i];
            const g = pixels.data[i + 1];
            const b = pixels.data[i + 2];
            const alpha = pixels.data[i + 3];
            const random = mathRand();
            const offset = (random - 0.5) * graininess;
            pixels.data[i] = Math.max(0, Math.min(255, r + offset));
            pixels.data[i + 1] = Math.max(0, Math.min(255, g + offset));
            pixels.data[i + 2] = Math.mM
ax(0, Math.min(255, b + offset));
            pixels.data[i + 3] = alpha;
        ctx.putImageData(pixels, 0, 0);
    function saveCanvasAsPNG(canvas) {
        document.addEventListener('keydown', function (event) {
            if (event.key === 's' || event.key === 'S' || event.key === 'd' || event.key === 'D') {
                const ctx = canvas.getContext('2d');
                const width = canvas.width;
                const height = canvas.height;
                const pixelRaM
tio = (event.key === 'd' || event.key === 'D') ? window.devicePixelRatio * 8 : window.devicePixelRatio;
                const canvasCopy = document.createElement('canvas');
                canvasCopy.width = width * pixelRatio;
                canvasCopy.height = height * pixelRatio;
                const ctxCopy = canvasCopy.getContext('2d');
                ctxCopy.imageSmoothingEnabled = false;
                ctxCopy.drawImage(canvas, 0, 0, width, height, 0, 0, width * pixelRatio, height * pixelRatio);
               const url = canvasCopy.toDataURL('image/png');
                const link = document.createElement('a');
                link.download = 'canvas.png';
                link.href = url;
                link.click();
    saveCanvasAsPNG(cnv);
    /////////////PROGRESS
    async function progress(message) {
        document.body.style.cursor = 'crosshair';
        document.getElementById("progress").innerHTML = message;
        await new Promise((fn => setM
    async function progressClear() {
        document.body.style.cursor = 'default';
        document.getElementById("progress").style.display = 'none';
        await new Promise((fn => setTimeout(fn, 1)));
    async function progressShow() {
        document.body.style.cursor = 'default';
        document.getElementById("progress").style.display = 'block';
        await new Promise((fn => setTimeout(fn, 1)));
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Orange", "Colour chance": "20%", "Base colour": "", "Base Colour chance": "0%", "S forms": "20-120", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 0, "SensitivitM
let t=[2e3,1e4],o=[80,170];let h=[80,170],W=[.1,.3];var e=[[2,8],[2,8]];let u=[20,120],_=[50,80];let b=[0,250],X=[.8,4];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=0,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e65c00"],te=.2,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.proM
/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #74";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 vM
 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.M
357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.M
88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1M
.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -2M
9,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m M
-0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40M
-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_clustM
er=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z",M
"m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28hM
145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","M
m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:M
F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(aM
);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=awaitM
 e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=M
t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animM
ate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backgM
round.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#M
background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1]M
,scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=M
V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),smallM
_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",cM
olor2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElemM
ent(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-M
5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_nM
umber_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilM
ities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",sM
hape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shM
ape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desireM
d_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+M
"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",M
n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defsM
");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.xM
+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}fM
unction D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS(M
"http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}functioM
n K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,tM
+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=pM
,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%1M
00,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100M
,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+stM
ep*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"part.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Dark", "Base shade": "Balanced", "Colour": "", "Colour chance": "0%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "5-30", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 6, "Sensitivity": "High"}
t t=[2e3,1e4],o=[50,200];let h=[0,100],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[180,250],X=[.1,5];let c=[5,30],f=[12,18],S=[0,1,2,3,4,5,6,7,8,9,10],N=6,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["-"],te=0,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7adbc8336d369M
69373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #13";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 l -79,45 -1M
8,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74.16,115.7L9M
9.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.915-40.961LM
147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.051 1.8,20 M
z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-41 m -1,-3.2 3M
3,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.78,-1.1 41,4.7M
 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26M
z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 M
v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9M
 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"M
getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{M
dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetcM
h("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytesM
_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+M
background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appeM
ndChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){smalM
l_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"traM
nsform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],M
h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.leM
ngth;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0M
=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_backgrM
ound_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],M
randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duratioM
n=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[M
j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_ofM
_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animatM
ion.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapesM
++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[M
];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2M
),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+rM
.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=documeM
nt.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&M
t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(nuM
ll,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.pushM
({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,M
a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.pusM
h({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_M
start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.lenM
gth;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(eM
){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"rr88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"xx88.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"rothko.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Generative.xyz project</title>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script type="text/javascript">
    let seed=floor(999999*mathRand());
  createCanvas(1000, 1000);
  angleMode(DEGREES)
Vector(width/2,height/2))
  blob(220,createVector(width/2,height/2))
  blob(260,createVector(width/2,height/2))
  blob(240,createVector(width/2,height/2))
  blob(260,createVector(width/2,height/2))
  for (let i=0;i<300;i++){
    circle(random(width),random(height),random(0,3))
  translate(width*.5,height*.5)
  ps = generateShape(sumPoints,600)
  ps2 = ps.slice(sumPoints/2)
ps.slice(0,sumPoints/2).reverse()
  const craters = Array(200).fill(0).map(a=>createVector(random(),random()))
  for (let i=0;i<sumPoints/2;i++){
    const coorX = i/(sumPoints/2)
    const l = p5.Vector.dist(p1,p2)
    for (let x=0;x<l;x++){
      let fillVal =  x/(l/2)
      fillVal = round(fillVal*15)/5
      fillVal *= (1-coorX)
      const coorY = x/l
      const coor = createVector(coorX,coorY)
      for (let crater of craters){
const distToCrater = p5.Vector.dist(coor,crater)
        if (distToCrater<.1)
          fillVal -= map(distToCrater,0,0.1,10,0)
      fillVal += 50*noise(coorX*50,coorY*50)
      const v = p5.Vector.lerp(p1,p2,coorY)
      fill(255,fillVal)
      circle(v.x,v.y,random(1,3))
function myLine(x,y,x2,y2){
  myLineV(createVector(x,y),createVector(x2,y2))
function myLineV(v1,v2){
  const l = p5.Vector.dist(v1,v2)
  for (let i=0;i<l;i++){
  const v = p5.Vector.lerp(v1,v2,i/l)
    circle(v.x,v.y,random(0,3))
function fillShape(ps){
  ps.forEach(p=>vertex(p.x,p.y))
function generateShape(sumPoints, radius){
  noiseZ = random(20,80)
  for (let i=0;i<sumPoints;i++){
    angle = (i/sumPoints) * 360
    rr = noise(x+1+noiseZ,y+1+noiseZ)*radius
    v = createVector(x,y)
const blob = (size, center)=>{
ase = createPoly(2,size,center)
  for (i=0;i<1;i++) base = noisePoly(base,center)
  for (layers=0;layers<totalLayers;layers++){
    newPoly = [...base]
    for (i=0;i<5;i++) newPoly = noisePoly(newPoly,center)
    drawPoly(newPoly)
    if (layers%15==0) base = noisePoly(base,center)
const drawPoly = (poly)=>{
    curveVertex(poly[0].x,poly[0].y)
    poly.forEach(v=>curveVertex(v.x,v.y))
    curveVertex(poly[poly.length-1].x,poly[poly.length-1].y)
(poly[0].x,poly[0].y,20)
  // poly.forEach(v=>circle(v.x,v.y,5))
const createPoly = (sides, r, center)=>{
  for (let i=0;i<sides;i++){
    deg = (i/sides)*360
    pos =  p5.Vector.fromAngle(radians(deg),r)
const noisePoly = (poly,center)=>{
  newPoly.push(poly[0])
  for (let i=0;i<poly.length;i++){
    p2 = poly[(i+1)%poly.length]
    midP = noiseLine(p1,p2,center)
    newPoly.push(midP)
    newPoly.push(p2)
const noiseLine = (p1,p2, center)=>{
  d = dist(p1.x,p1.y,p2.x,p2.y)
  midP = p2.copy().sub(p1)
  newMag = midP.mag()*randomGaussian(.5,.3)
  midP.setMag(newMag)
  dir = midP.copy().sub(center)
  dir.setMag(randomGaussian(d/4,d/8))
  dir.rotate(randomGaussian(PI/3,PI/10))
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(M
t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.suM
bstring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869M
860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
ORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0px;
            width: 100% !important;
            height: 100% !important;
            object-fit: contain;
            position: fixed;
            left: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    document.body.prepend(container)
 Add your code here
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"bittensor.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bait.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"melt.sats"}h!
text/html;charset=utf-8
	<meta charset="UTF-8">
	<title>outscripted by mataleone</title>
	<script sandbox="allow-scripts" type="text/javascript"
		src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
	<script id="snippet-contract-code" type="text/javascript">
		const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1);
			"tokenId": tokenIdRand,
			"seed": tokenIdRand.toString(),
pt id="snippet-random-code" type="text/javascript">
		let seed = window.location.href.split('/').find(t => t.includes('i0'));
		if (seed == null) {
			const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
			seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
			let pattern = "seed=";
			for (let i = 0; i < seed.length - pattern.length; ++i) {
				if (seed.substring(i, i + pattern.length) == pattM
					seed = seed.substring(i + pattern.length);
		function cyrb128($) {
			let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
			for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
			return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), lM
 = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
		function sfc32($, _, u, i) {
			return function () {
				u >>>= 0, i >>>= 0;
				var l = ($ >>>= 0) + (_ >>>= 0) | 0;
				return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
		let mathRand = sfc32(...cyrb128(seed));
			background-color: #000;
			width: 100% !important;
			height: 100% !important;
			object-fit: contain;
	<script type="text/javascript">
		const _lerp = (f, min, max) => (min + (max - min) * f)
			const _map = (v, inMin, inMax, outMin, outMax) => (outMin + (outMax - outMin) * ((v - inMin) / (inMax - inMin)))
				['#332440', 'berry'],
				['#1E2F36', 'sea'],
				['#36261E', 'earth'],
				['#1E2036', 'deep'],
				['#1E3623', 'forest'],
				['#FFE0C2', 'sand'],
				['#FFE0C2', 'sand'],
				['#FFCA9C', 'koi'],
				['#C2FcFF', 'sky'],
				['#FFFDBC', 'mustard'],
			let _bg = Math.floor(mathRand() * bgs.length)
			let _clr = Math.floor(mathRand() * clrs.length)
			let _q = Math.floor(_lerp(mathRand(), _q_min, _q_max + 1))
Math.floor(_lerp(mathRand(), _r_min, _r_max + 1))
			let _a = Math.floor(mathRand() * 5) // <+
			let _ins = Math.floor(_lerp(mathRand(), _ins_min, _ins_max + 1))
			let _worm_max = _r * 2
			let _worm = _lerp(mathRand(), 0, _worm_max)
			window.$generativeTraits = {
				"background color": bgs[_bg][1],
				"incsriptions color": clrs[_clr][1],
				"inscriptions size": _r,
				"inscriptions complexity": _ins,
				"disconformity": Math.floor(M
_map(_worm, 0, _worm_max, 0, 11)),
			console.log(seed, window.$generativeTraits)
			let _paused = false
			function setup() {
				createCanvas(2160, 2160)
				background(bgs[_bg][0])
			function draw() {
				if (_paused) return
				background(bgs[_bg][0])
				let _c = color(clrs[_clr][0])
				for (let i = 0; i < _q * 10000; ++i) {
					const x = _randPos()
					const y = _randPos()
					let al = map(_q, _q_min, _q_max, 128, 64)
					star(x, y, _r, _ins)
			function _randPos() {
				const a = mathRand() * Math.PI + Math.PI
				let p = Math.cos(a)
				// p = (1-Math.abs(p))*Math.sign(p)
				let w = width / 2
				return w + _map(p, -1, 1, -w - _worm, w + _worm)
			function star(cx, cy, r, c) {
				let n = noise(cx / sc, cy / sc)
				let _cx = cx + sin(n * Math.PI * 2) * _worm
				let _cy = cy + cos(n * Math.PI * 2) * _worm
				let ixs = [...Array(c).keys()]
				while (ixs.length > 0) {
					const i = Math.floor(mathRand() * ixs.length)
					const a = ixs[i] * ((Math.PI * 2) / c) + (Math.PI / 4) * _a
					vertex(_cx + sin(a) * r, _cy + cos(a) * r)
					ixs.splice(i, 1)
			function keyPressed() {
				if (keyCode == 32) _paused = false
				if (keyCode == 83) save('outscripted.png')
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"uu66.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Yellow", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "5-200", "L forms": "2-24", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 10, "Sensitivity": "M
let t=[2e3,1e4],o=[50,200];let h=[80,170],W=[.1,.3];var e=[[2,8],[2,8]];let u=[5,200],_=[50,120];let b=[0,100],X=[.1,5];let c=[2,24],f=[8,16],S=[0,1,2,3,4,5,6,7,8,9,10],N=10,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#cccc00"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4caM
7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #27";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.2M
5 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357lM
74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l9M
0.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-M
0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 12M
2-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,3M
0 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94M
-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",methM
od:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json(M
);i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataTypM
e:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempooM
l_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAM
ttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttribuM
teNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_M
changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sM
z[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==colM
or1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),oM
ffset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_sM
hade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(M
null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shM
apes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_M
out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=dM
ocument.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|rM
andom_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_largeM
_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordM
inates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),M
xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[M
1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.apM
pendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","aM
-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var eM
=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttribM
uteNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3M
,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,M
a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9M
==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<clusterM
_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}functionM
 de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("containMF
er")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Orange", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-30", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 4, "SensitivityM
let t=[2e3,1e4],o=[50,200];let h=[0,250],W=[.1,.3];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[50,200],X=[.1,5];let c=[5,30],f=[12,18],S=[0,1,2,3,4,5,6,7,8,9,10],N=4,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#e65c00"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknodeM
.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #72";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,2M
27 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.5M
9,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,M
425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-4M
2 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-2M
4-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,M
11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 3M
7-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1M
.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=awaitM
 s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",M
{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,M
E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s")M
,a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.seM
tAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapesM
);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shaM
pes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2=M
"#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,1M
00],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="M
#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttrM
ibuteNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,M
large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duratiM
on;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.iM
d),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_M
shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visibM
le_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=M
xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+tM
[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[M
1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(M
s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(nullM
,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function IM
(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.sM
etAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,M
l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,4M
0,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,pM
3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(iM
<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}M
function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName(MN
"container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bleu.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"uu88.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"bought.sats"}h!
*(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)&1)&1)&1)&1)&1)&1)&1)&1G%3e$6n$7t$7t$7t$8v$:|(@
 $#-(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)&1)&1)&17&2B%3K%4a$6p$7r$7s$7t$7t$7t$7t$7t$7t$7t$7t$7u$8v$9
(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0(&0)'1)'1)'1;&2I%4X%M
5i$6p$7s$7t$7t$7t$7t$8v&8}0<
"(&0(&0(&0(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)&1)&1)&1)&1)&1)&1?&3a$6l$7s$7t$7t$7t$7t$7t$7u$8u$8u$8w'9|.<
(&0(&0(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1(&0(&0)'1)'1)'1)'12&1F%3Y%5g$6o$7r$7t$7t$7t$7t$7t$7t$8t$8t$8tM
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"wipe.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1M
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-raM
ndom-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - M
pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), M
l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, M
u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0px;
<canvas id="canvas"></canvas>
<script type="text/javascriM
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
        const fxSeed = rand || Math.random();
        function randomValueIndexArrayInt(hash, lenArray) {
    return hash % lenArray;
  function cyrb128(str) {
    let h1 = 1779033703,
      h2 = 3144134277,
      h3 = 1013904242,
      h4 = 2773480762;
    for (let i = 0, k; i < str.length; i++) {
      k = str.charCodeAt(i);
      h1 = h2 ^ Math.imulM
(h1 ^ k, 597399067);
      h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
      h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
      h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
    h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
    h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
    h3 = Math.imul(h1 ^ (h3 >>> 17), 951274213);
    h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
      (h1 ^ h2 ^ h3 ^ h4) >>> 0,
      (h2 ^ h1) >>> 0,
      (h3 ^ h1) >>> 0,
      (h4 ^ h1) >>> 0
  function sfc32_c(a, b, c, dM
    var t = (a + b) | 0;
    a = b ^ (b >>> 9);
    b = (c + (c << 3)) | 0;
    c = (c << 21) | (c >>> 11);
    d = (d + 1) | 0;
    t = (t + d) | 0;
    c = (c + t) | 0;
    return (t >>> 0) / 4294967296;
  // return random value from [l -> r]
  function consistentRand(seed, l, r) {
    const rand = sfc32_c(...cyrb128(seed.toString()));
    return l + rand * (r - l);
  function getRandomItem(listP, seed) {
    const pref = [];
of listP) pref.push(x);
    for (let i = 1; i < listP.length; i++) {
      pref[i] += pref[i - 1];
    for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
    // get random value from 0->1
    const rand = consistentRand(seed, 0, 1);
    for (let i = 0; i < pref.length; i++) {
      if (rand < pref[i]) return i;
  function getRandomBool(seed, l, r) {
    const rand = sfc32_c(...cyrb128(seed.toString()));
    return rand < 0.5 ? l : r;
  const color_palette = M
    ["#20191b", "#67875c", "#f3cb4d", "#f2f5e3"],
    ["#bab9a4", "#311f27", "#ff3931", "#007861"],
    ["#f4c172", "#7b8a56", "#363d4a", "#ff9369"],
    ["#20342a", "#f74713", "#e9b4a6", "#686d2c"]
  // Get the canvas element from the HTML document
  const canvas = document.getElementById("canvas");
  const context = canvas.getContext("2d");
  // Define the dimensions of the canvas and the size of each square
  const canvasWidth = 1000;
  canvas.width = canvasWidth;
  canvas.height = canvasHeight;
  const squareSize = consistentRand(fxSeed * 10, 5, 100);
  // Select a random color palette from the array
  const randomPaletteIndex = Math.floor(
    consistentRand(fxSeed, 0, color_palette.length - 1)
  const randomPalette = color_palette[randomPaletteIndex];
  // Loop through each row and column to draw squares with random colors from the palette
  context.clearRect(0, 0, canvasWidth, canvasHeight);
  for (let i = 0; i < canvM
asHeight / squareSize; i++) {
    for (let j = 0; j < canvasWidth / squareSize; j++) {
      const randomColorIndex = Math.floor(
        consistentRand(
          fxSeed * (i + fxSeed * 10) * (j + fxSeed * 10),
          randomPalette.length - 1
      const randomColor = randomPalette[randomColorIndex];
      context.fillStyle = randomColor;
      context.fillRect(j * squareSize, i * squareSize, squareSize, squareSize);
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"yy88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Green", "Colour chance": "1%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 8, "Sensitivity": "M
let t=[2e3,1e4],o=[80,170];let h=[50,200],W=[.1,.4];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,100],X=[.4,2];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=8,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#00b300"],te=.01,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4M
ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #28";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0M
.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.35M
7l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88M
l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8M
,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 5M
6-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enableM
_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 3M
0,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-25M
0 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62M
-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!asyM
nc function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",metM
hod:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),aM
=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),aM
=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"atM
tributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repM
eatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),M
ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.queM
rySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shaM
pes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(largM
e_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offseM
t1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background"M
)).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randoM
mness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_timeM
_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilitM
ies[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_M
small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAtM
tributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|randoM
m_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapM
es),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=heM
(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"M
+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-oM
rigin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256M
},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(nullM
,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];forM
(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,M
50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)M
%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3]M
,i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)M
e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+stM
ep/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Balanced", "Colour": "Blue", "Colour chance": "10%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 10, "SensitivitM
let t=[2e3,1e4],o=[50,200];let h=[50,200],W=[.07,.2];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,250],X=[.6,3];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=10,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#000080"],te=.1,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknoM
de.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #75";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333M
,227 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128M
.59,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.M
4,425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,M
-42 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-M
131-52 56-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=M
e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 M
6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-M
18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-1M
8-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var M
O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"jM
son",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:bodM
y_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"jsM
on"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(M
null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(nM
ull,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendCM
hild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=docuM
ment.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<sM
mall_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1M
=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].M
s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-bacM
kground")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,9M
5],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fM
ade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_vM
isibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_dM
uration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animatiM
on.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapM
es|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(smM
all_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1M
]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_M
id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"traM
nsform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256}M
,${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributM
eNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,M
u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(M
p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+iM
%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[pM
1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.lenM
gth;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])|M
|(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"zz66.sats"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"kk66.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"Trades.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Light", "S Form shade": "Balanced", "Base shade": "Light", "Colour": "", "Colour chance": "0%", "Base colour": "", "Base Colour chance": "0%", "S forms": "85-165", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 10, "Sensitivity": "High"}M
let t=[2e3,1e4],o=[180,250];let h=[80,170],W=[.1,.3];var e=[[2,8],[2,8]];let u=[85,165],_=[105,145];let b=[100,250],X=[.6,3];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=10,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["-"],te=0,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7adbc833M
6d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #30";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 l -79,M
45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74.16,11M
5.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.915-40M
.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.051 1.M
8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36M
-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,11M
3 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-M
31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getbM
lockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),lM
(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"M
}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_M
random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeM
NS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(nulM
l,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=M
ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`)M
);for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?cM
olor1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0M
,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0M
]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duM
ration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];toM
tal_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duraM
tion_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).7<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.M
querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shM
ift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<M
total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_lM
arge_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordM
inates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2M
,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChilM
d(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id)M
,a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*MatM
h.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(nuM
ll,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1M
,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1M
),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){forM
(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fM
p[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s)M
{var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0])M>
.insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"pp88.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ss66.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"mixcloud.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"dd66.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"place.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bb66.sats"}h!
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"vv88.sats"}h!
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Dark", "S Form shade": "Light", "Base shade": "Dark", "Colour": "Green", "Colour chance": "7%", "Base colour": "Green", "Base Colour chance": "40%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 5, "Sensitivity": "MeM
let t=[2e3,1e4],o=[0,100];let h=[100,250],W=[.1,.3];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[0,100],X=[.1,5];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=5,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#00b300"],te=.07,se=["#00b300"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknodeM
.pro/4ca7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #18";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,2M
27 v 0.25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.5M
9,2.357l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,M
425.88l90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-4M
2 -1.8,-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.M
3 -29,-41 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.M
5 m -0.78,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 1M
9 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_cM
luster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3M
 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0M
.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192M
z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),backgroundM
={s:F([bg_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t)M
,l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=aM
wait e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*10M
0,L=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"M
animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+bM
ackground.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","uM
rl(#background_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],M
W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){foM
r(m=V(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),sM
mall_shapes[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-coloM
r",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginM
Element(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,M
l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desirM
ed_number_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visM
ibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"valueM
s",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-M
"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(deM
sired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shaM
pes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0M
;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"M
defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x"M
,r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(oM
)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!0&.6<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElemeM
ntNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}fuM
nction K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,aM
+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)})M
;p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,M
15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(M
0,100,3),fp[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(nM
=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/plain;charset=utf-8
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"nn66.sats"}h!
"!+'%/(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1('1('1('1('1('1%)3 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 .7 .7 .7 .7 .7#089AFPRTYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZkkk
-6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6%)3('1('1('1('1('1('1('1('1('1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1329YYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
&$.(&0(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1('1('1('1('1('1('1('1('1('1('1'(2%*3",5!-6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -M
6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 .7 .7 .7 .7 .7 .7"/8/9@YYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
(&0(&0(&0(&0(&0)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1('1('1('1('1('1'(2"+5 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 .7 .7 .7 M
.7 .7 .7 .7 .7 .7 .7$19:BFTUVYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
#",(&0(&0(&0('1('1('1('1('1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1)'1('1('1('1('1('1('1)'1)'1)'1)'1)'1)'1)'1)'1)'1('1('1('1('1$*3 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 .7 .7 .7 .7!.7#095>DYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"ii88.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"99998888.sats"}h!
Bj@=:ETH.ETH:0xd51e762A20735E235E6a106B51e6ad39b535BC2a:12738518::0
LjJ=:BNB.BUSD-BD1:bnb18xynhkqttf5m9r45aqg596rhnmv20f9s0cysxt:37096987199:te:0
Sandra Marco 28.03.2008
Bj@=:ETH.ETH:0x1c31D70F55c29f267806D47Df175EA839Eacb3C2:15123617::0
text/plain;charset=utf-8
){"p":"sns","op":"reg","name":"bbss.sats"}h!
IjGREFUND:3CC4444CD0EA4E10DF325BF5FFA10E8296788636E0A223A183C6D82FC51CB702
IjGREFUND:3D4496A6E48D78EFAA6CB4594553D7C9C015FCA7EE2E391A19D9635DB1651702
IjGREFUND:AF663EA21E1A80A411181145FE493B4EF19EF8831BBE56EC084A28C65F2A1A76
Aj?=:ETH.ETH:0xD87BC481daeb69375faf9A7A08907Ca8ec8d184b:5738776::0
FjDOUT:C2D2EB9CCF6D5084903D9EC0227F79BA1047BD3BF6C6A76746D0A76B3C5A340A
FjDOUT:A87EEF96939695F5AD26D68412F118BAB739239D9B38A243BEA5A3635E3F513F
CjA=:ETH.ETH:0x3693994f12eF7571A26859AdbBfe34aBf7D95C8e:121657423::0
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"chris.sats"}h!
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"trustmachines.sats"}h!
text/plain;charset=utf-8
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Balanced", "Base shade": "Light", "Colour": "", "Colour chance": "0%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "7-40", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 2, "Sensitivity": "HighM
let t=[2e3,1e4],o=[180,250];let h=[0,250],W=[.1,.3];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[80,170],X=[.6,3];let c=[7,40],f=[17,27],S=[0,1,2,3,4,5,6,7,8,9,10],N=2,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["-"],te=0,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7adbc8336M
d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #48";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25 l -79,4M
5 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l74.16,115M
.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90.915-40.M
961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0.051 1.8M
,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z"],fs=e,enable_sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-M
100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113M
 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-3M
1m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblM
ockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(M
a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}M
),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_rM
andom,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNM
S(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(nullM
,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=nM
e!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`))M
;for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?coM
lor1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,M
offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]M
),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"durM
ation",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];totM
al_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duratM
ion_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).8<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.qM
uerySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shiM
ft)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<tM
otal_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_laM
rge_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapes),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordiM
nates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,M
_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChildM
(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),M
a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*MathM
.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(nulM
l,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,M
3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1)M
,p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(M
p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fpM
[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){M
var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).M=
insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Dark", "Base shade": "Dark", "Colour": "Orange", "Colour chance": "10%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "5-50", "S forms size": "XXXS", "L forms size": "XXXXL", "Clustering": 0, "Sensitivity": "MeM
let t=[2e3,1e4],o=[0,50];let h=[0,50],W=[.1,.3];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[80,170],X=[.2,.8];let c=[5,50],f=[20,30],S=[0,1,2,3,4,5,6,7,8,9,10],N=0,A=1,M=[10,60],w=.1,Y=[3,10],k=[.5,.5],ee=["#e65c00"],te=.1,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4ca7M
adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #43";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.25M
 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357l7M
4.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88l90M
.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,-0M
.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m 12,1.7 -11,15 v 18 l 11,-15 28,22 -28,-40 m 0.0069,-1.7 33,47 -33,-25 -12,17 V 18 Z M 42,44 11,21 0,37 V 18 L 11,2 Z m -39,89.2 -7.9,17 8,21 14,-8.6 h 30 l -44,-29 m -0.41,-1.5 48,31 h -33 l -15,9.1 -8.6,-22 z M 3,171 -5.3,149 3,132 49,162 H 18 l -0.12,0.071 z M 72,-7.8 v 19 l -11,15 h 22 l 18,7.3 -29,-41M
 m -1,-3.2 33,47 -21,-8.6 H 59 l 12,-16 z M 102,34 83,26 H 60 L 72,10 v -20 z m -34,153 59,25 -52,11 8.7,-11 z M 202,79 183,124 v 30 L 167,79 Z m -288,0 h -14 l 44,-27 -4.7,34 z","m 32,2.5 -29,42 30,-7.9 h 10 l -7.2,-17 -3.6,-18 m 0.52,-2.5 4.1,20 7.8,18 h -12 l -32,8.6 z M 1.2,46 32.2,1 36,20 43.5,37 h -11 l -0.063,0.017 z m 39.8,87.2 -39,26 28,-10 11,21 7.6,-20 -7.8,-17 m 0.41,-1.5 8.5,18 -8.5,22 -12,-22 -35,13 z M 42,171 30,149 l -32,12 43,-29 8.2,17 z m -105.5,-68 -6.2,27 29,-8.2 h 33 l -15,-14 -40,-4.5 m -0.78M
,-1.1 41,4.7 17,16 h -35 l -30,8.6 z m -6.85,28.8 6.5,-28 40,4.6 16,15 h -34 l -0.067,0.019 z m 48.33,56 33,43 -27,-12 -36,5.5 z m -132,-108 18,29 v 46 l 20,-46 z M 118,87.3 145,79 101,52 91.8,74 Z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56-16 19 40-69zmM
-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_sub_cluster=!0M
),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30,-9.3 z","m 42M
4,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250 95v0.28h145l1M
7-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m187 195-84-35h-102l51-69v-89z","M 63,242 -5,34 62,-133 347,157 H 153 l -0.7,0.7 z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 M
247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bgM
_shade_0,bg_shade_1])};let re=0,L=0,E=0,q=777226,$=0,ne=0;var H,O;!async function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>q&&$++,q=e.result};let i=e=>{E=0==L?0:(e.result.bytes-L)/L*100,L=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);breM
ak}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.jsM
on(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(E=0==L?0:(t.bytes-L)/L*100,L=t.bytM
es,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=await s.json();a>q&&$++,q=a;break}catch(e){}try{mempool_bytes_random=V(3e7,6e7),E=(mempool_bytes_random-L)/L*100,L=mempool_bytes_random,$++,q++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),H="http://www.w3.org/2000/svg",O=document.createElementNS(H,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=R(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(H,"animate")M
).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=R(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(H,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+backgroundM
.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeatCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),O.setAttributeNS(null,"x","0%"),O.setAttributeNS(null,"y","0%"),O.setAttributeNS(null,"width","100%"),O.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(H,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#backgM
round_gradient)"),O.appendChild(g),O.appendChild(bg),e.appendChild(O),ue(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(L=V(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=J(W[0],W[1],scalM
e=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=J(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=V(h[0M
],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapes.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapM
es[i].s=[offset1,color1,offset2,color2]);for(m=V(b[0],b[1]),s1=de(large_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=J(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2M
),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offset1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(V(o[0],o[0]+50)),bg_shade_1=B(V(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_1_animation.beginElement()M
,(bg_gradient_stop_2_animation=document.querySelector("#a2-background")).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",V(M[0],M[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(G(S),300,30,w=0,xy_range=[-5,95],randomness=.1),Q(G(S),300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100M
])):(xy_coordinates_large_shapes=Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);P*=1+E/100;Z*=1+E/100;Z=Math.max(Z,u[0]);Z=Math.min(Z,u[1]);P=Math.max(P,c[0]);P=Math.min(P,c[1]);desired_number_of_visible_small_shapes=Z;desired_numberM
_of_visible_large_shapes=P;fade_time_multiplier=1-E/100;C=le*fade_time_multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilitiesM
[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilities[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.M
opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_small_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.iM
d)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_numM
ber_of_visible_large_shapes>total_number_of_visible_large_shapes|random_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),M
animation.beginElement()))}re++;setTimeout(e,C)},C);let Z=U(small_shapes),P=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,w=w,sub_cluster_n=Y,k=k,xy_range=[10,10],randomness=.3):Q(N,300,30,w=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=J(n[0],n[1],scale=0),size_y=size_x,sx=V(s[0],s[1]),sy=V(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visM
ible_shapes--):(visible=!1,opacity_values="0;0"),s1=V(r[0],r[1]),s2=he(s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:G(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");foM
r(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+r.id,g=pe(0,0,100,0,gradient_id),s1=R(r.s[0],r.s[1],"stp1-"+r.id),s2=R(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%")M
,o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-origin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}functiM
on D(e){return e=Math.abs(e),0<te&I()>1-te?G(ee):`rgb(${e%256},${e%256},${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?G(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function V(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function J(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function G(e){return e[V(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("httpM
://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function R(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(tM
,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),pM
2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,50,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=J(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+J(-5,15),y:y+J(-5,5)});p1=p,p2=pM
,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+J(-10,10)%100,y:y+J(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=V(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=V(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=J(-15,15)%100,y+=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=J(70,80)),.6<I()&&(x=J(30,40)),x+=J(-15,15)%100,y+M
=J(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],i=0;i<t-1;i++)fp.push(G(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+J(-s,s),fp[i].y=fp[cluster_start].y+J(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+V(r),s=J(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=J(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=J(0,100,3)),0<o&&I()>1-o&&(fp[i].x=J(0,100,3),fM
p[i].y=J(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)e[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=V(t[0],t[1]),direction=G([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-M
1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+step/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <title>RECALL</title>
    <meta charset="UTF-8">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | M
0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.M
imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>=M
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        background: black;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 90%;
        aspect-ratio: 6/8;
        border-style: solid;
        border-width: 3px;
        border-color: black;
        width: 75ch;
        font-family: Helvetica;
    .prompt-container{
        position: absolute;
        background: white;
        padding: 10px;
    .prompt-container>p{
        padding: 0%;
        margin: 0px;
        font-family: Helvetica;
<div class="container">
<svg class="svgroot" width="100%" height="100%" version="1.1" viewBox="0 0 600 800" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"></svg>
<script type="text/javascript">
//RECALL is a dynamic cryptoart series by crashblossom, inscribed as 77 ordinals on Bitcoin. The artworks react to live mempool data, altering compositM
ion in response. They change constantly and evolve over long periods of block time. To see the full evolution, RECALL must be kept running. You can change node by pressing 'R'.
const rand = mathRand();
window.$generativeTraits ={"L Form shade": "Balanced", "S Form shade": "Light", "Base shade": "Dark", "Colour": "Orange", "Colour chance": "30%", "Base colour": "", "Base Colour chance": "0%", "S forms": "50-250", "L forms": "2-24", "S forms size": "XXXS", "L forms size": "XXXL", "Clustering": 8, "Sensitivity": "MeM
let t=[2e3,1e4],o=[0,100];let h=[100,250],W=[.1,.3];var e=[[2,8],[2,8]];let u=[50,250],_=[100,150];let b=[80,170],X=[.8,4];let c=[2,24],f=[8,16],S=[0,1,2,3,4,5,6,7,8,9,10],N=8,A=1,w=[10,60],k=.1,Y=[3,10],M=[.5,.5],ee=["#e65c00"],te=.3,se=["-"],T="",ae=["https://black-red-brook.btc.discover.quiknode.pro/724e72af82242e980321bdd5deaa97756b6210c3/","https://autumn-prettiest-butterfly.btc.discover.quiknode.pro/1b0e20b57055e3d8cfb0ff322f9d82fd58573dcb/","https://evocative-lively-breeze.btc.discover.quiknode.pro/4cM
a7adbc8336d36969373a1d79cb0e8b715e5bb0/","https://virulent-light-knowledge.btc.discover.quiknode.pro/6fbc97d8bbda8c23c8bdef9463f7e4f1af3b8ccd/"],le=(t[0]+t[1])/1.8,C=le;var ie=(new Date).getTime();document.title="RECALL #52";small_shapes=oe(n=260,n_visible=_,x=[0,90],y=[0,90],z=100,s=h,sz=W,p=["m 131,178 v 0.18 l -55,75 v 19 l 55,56 v 0.18 l -30,-19 -16,-13 -31,13 9.1,-73 -21,-21 55,-39 2.7,-0.089 -15,39 z m 58,160 -49,39 -6.6,36 h -9.8 l 65,75 v 0.18 l -49,-44 15,44 -55,-75 55,-77 2.7,-0.089 h 7.3 z M 333,227 v 0.M
25 l -79,45 -18,88 97,80 v 0.25 h -43 l -5.2,-0.05 -79,-106 79,-108 3.9,-0.13 -9.3,22 z M 471,27 v 0.31 l -100,129 h -38 l 138,129 v 0.31 l -95,-77 34,77 -100,-129 100,-132 4.9,-0.15 -51,100 z M 231,16 v 0.23 l -65,72 -25,23 90,96 v 0.23 h -36 l -5.4,-31 -88,-69 89,-93 3.3,-0.11 -34,59 z","m362 12v0.4l-207 217-29 0.68 235 217v0.4l-68-45-58 45-61-122-190-142s71-3.6 134-49 117-132 117-132l10-0.28-48 111z","M29,10.67v.338L173.273,130.085l19.233,65.449h68.829L29,380.4v.338l99.59-60.266v60.164L292.1,196.109,128.59,2.357M
l74.16,115.7L99.977,2.12l21.047,52.59Z","M174.1,7.429v.213l131.69,116.982,29.874,61L174.1,241.818v.213h71.68l8.335-18.41,150.5-79.413L254.115,3.748V44.6l-23.337-41ZM282.68,243.183v.1l57.592,53.42h36.705l-94.3,53.517v.1L348.6,334.173l-30.93,16.111,96.906-27.557L317.673,241.5l-2.916-.068,20.908,17.6ZM.219,170.1v.1l57.592,53.42,45.312-21.468L.219,277.138v.1H31.567l8.657-21.075,76.137-54.007L35.212,168.424l-2.916-.068,25.515,28.817Zm93.466,88.783v.151l88.409,83.292,34.594.256-123,83.188v.152l75.073-30.414L147.4,425.88lM
90.915-40.961L147.4,256.266v20.969L131.735,256.16ZM80.256,28.5.219,13.767l102.9,54.626,13.237.182L44.851,127.342v.107H76.568l3.688-28.014,58.272-30.86L80.256,7.592l-2.95-.075H69.93Z","m 57,6.2 v 0.14 l 107,80 29,-6.2 -136,86 v 0.14 l 46,-10 19,10 107,-80 -41,-38 -71,-45 v 19 z M 98,220 v 0.051 l 37,28 v 0.051 l -33,4.4 -4.1,24 v 0.051 l 53,-4.5 -30,4.5 65,-28 c 0,0 -48,-36 -42,-19 6,17 -23,-10 -23,-10 l -1.9,-0.036 1.9,8.6 z m -246.78,71 v 0.072 l 67,7.3 16,33 -83,40 v 0.073 h 20 l 2.3,-0.022 104,-40 -104,-42 -1.8,M
-0.051 1.8,20 z M -53,183 v 0.1 l 38,39 49,-7.9 -87,75 v 0.1 h 29 l 27,-42 37,11 -60,-78 -2.7,-0.068 2.7,13 z M -107,36.3 v 0.086 l 52,47 -24,30 -50,17 h 22 v 0.086 h 28 l -35,55 90,-103 -42,-28 23,-14 -58,-21 z","m121 156 52-64-83 138-53 13 51 51-51-74h23l-35 23 71-23 45-53-135 24 51-36 2.5-0.082-42 36zm20 148-45 36 30 68-5.7-46 20 79v-85l22 91-75-91 22-54v74l-7.4-45zm132-102-118 92 46-51 64 40 8.2 114v0.23l30-138-74 138 30-93-30-104 3.6-0.12-8.6 20zm126-184v0.28l-33 63-14 48 46 125-55-118-31 47 31-17 36-131-52 56M
-16 19 40-69zm-220-9.8-98 95 22-47-29 36 105 92-69-81-36 27 22-27-36-11 82-85 3-0.1-64 75z","m316 200-85-108v119l135 32-51 51 51-74h-23l35 23-137-5.7-28-126 183 80-51-36-2.5-0.082 42 36zm-53 104 123 83-168-55 65 30-20 79v-85l-22 91 137-85-84-59 50 123-42-93zm-131-102 118 92-46-51-128 55 56 98v0.23l109-35-66 35-114-65 114-132-3.6-0.12 8.5 20zm-126-184v0.28l32 63 14 48-46 125 55-118 31 47-31-17-8.9-181 128 96-88 30 66-58-83 12zm219-9.8 97 95 85-68-78 56 78 45-63-107-15 100-22-27v44l-45-141-3-0.1 63 75z"],fs=e,enable_M
sub_cluster=!0),large_shapes=oe(n=60,n_visible=f,x=[0,90],y=[0,90],z=100,s=b,sz=X,p=["m471 80v0.3l-282 168h-66l349 168v0.3l-110-27 27 70-69-60-20 32-69-87-213-97 122-36 99-57 34-52 28-27 121-19-72 46z","m243 13v0.43l-128 144v90l-18-6 103 145 13-62 29 157v0.43l-57-42-18 42-52-192-76-43-24-6.7 122-140 36-100 27 20-8.1-26z","m 222,40 v 0.13 l -83,56 h -20 l 103,56 v 0.13 h -45 l -30,-32 -79,-24 51,-37 20,13 33,-18 15,-14 z M 62,-249.7 v 0.23 l -146,98 -43,0.42 188,98 v 0.24 l -68,-15 -21,15 -146,-98 146,-100 6.3,20 30M
,-9.3 z","m 424,404 v 0.1 l -46,43 -52,-6.6 98,50 v 0.1 h -25 l -44,-24 -78,-19 119,-44 2.3,-0.051 -31,19 z m 32,-241 v 0.16 l -76,65 h 34 l 43,65 v -45 H 327 l 84,-87 3.8,-0.078 -26,53 z m -225,152 -27,7 -53,55 h 111 l -31,62 -43,-51 v 51 l -24,-51 -61,-12 80,-64 -53,63 67,-64 z M 276,11 204,30 143,113 H 87 l 190,102 v 0.24 h -72 l -22,-33 -120,-69 133,-104 -85,89 109,-89 z","m45 30v0.49l250 208 80 0.49-330 208v0.49l182-81-30 81 155-148 132-60-108-33-80-136-111-44 27 59z","m11 123v0.27l204 77 64 76v0.28l-18 58-250M
 95v0.28h145l17-35 106-39 54-5-32-24 84-33 101-18-83-0.28-230-156 83 74-131-75z","m176 27h-94l135 70 56 155 40 26-147 181-68 19 132-14 4.9 14 192-200-102-33-45-79 62-33-107-116-4.9 45-12-45z","m445 36-334 243 74-121-97 92 358 236-235-207-123 68 75-68-123-29 279-218 10-0.27-218 193z","m394 406-307-311-85 21 85-115 11 50 297 355z","m-27-63 37 188 61-33 154 234-141-275 3e-3 -0.2 0.5-45-111-69m-1-2 113 70-0.5 45 149 291-163-248-61 33-37-192z","m473 247h-152v-147l20 116-305 253 195-216-77 114 187-47-87-86 128-18-180-62-M
119-128 238 162z","m33 15-26 97 26 122 47-50h96l-143-169m-1-9 155 183h-106l-49 53-28-131z","m33 15-26 97 26 122 37-142 94-47-131-31m0.7-3 126 33-88 51-40 147-28-131z","m100-54-137 183 127-66 11 162 63-179-64-100m0.7-3 64 134-63 152-14-156-129 57z","m100-54-137 183 127-66 35-3 69 102-94-216m0.7-3 101 210-76-90-166 66z"],fs=e,enable_sub_cluster=!1),bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),background={s:F([bg_shade_0,bg_shade_1])};let re=0,E=0,q=0,L=777226,$=0,ne=0;var O,P;!asynM
c function e(){body_mp=JSON.stringify({jsonrpc:"1.0",method:"getmempoolinfo"});body_bh=JSON.stringify({jsonrpc:"1.0",method:"getblockcount"});let l=e=>{e.result>L&&$++,L=e.result};let i=e=>{q=0==E?0:(e.result.bytes-E)/E*100,E=e.result.bytes};for(;;){try{if(""!=T){url=T;let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}}catch(e){}try{url=ae[0];let e=await fetch(url,{dataType:"json",methM
od:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[1];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=await s.json();i(t),l(a);break}catch(e){}try{url=ae[2];let e=await fetch(url,{dataType:"json",method:"POST",body:body_mp}),t=await e.json(),s=await fetch(url,{dataType:"json",method:"POST",body:body_bh}),a=M
await s.json();i(t),l(a);break}catch(e){}try{let e=await fetch("https://bitcoinexplorer.org/api/mempool/summary",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://bitcoinexplorer.org/api/blocks/tip/height",{dataType:"json"})),a=await s.json();a>L&&$++,L=a;break}catch(e){}try{let e=await fetch("https://burner.is/recall/mempool",{dataType:"json"}),t=await e.json(),s=(q=0==E?0:(t.bytes-E)/E*100,E=t.bytes,await fetch("https://burner.is/recall/blocks",{dataType:"json"})),a=M
await s.json();a>L&&$++,L=a;break}catch(e){}try{mempool_bytes_random=J(3e7,6e7),q=(mempool_bytes_random-E)/E*100,E=mempool_bytes_random,$++,L++;break}catch(e){}}setTimeout(e,C)}(),background,e=document.querySelector(".svgroot"),O="http://www.w3.org/2000/svg",P=document.createElementNS(O,"svg"),gradient_id="background_gradient",g=pe(0,0,100,0,gradient_id),s1=V(0,background.s[0],"stp1-background_gradient"),(a1=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a1-background"),a1.setAttributeNS(null,"attM
ributeName","stop-color"),a1.setAttributeNS(null,"values",""+background.s[0]),a1.setAttributeNS(null,"dur","10s"),a1.setAttributeNS(null,"repeatCount","0"),a1.setAttributeNS(null,"fill","freeze"),s1.appendChild(a1),s2=V(1,background.s[1],"stp2-background_gradient"),(a2=document.createElementNS(O,"animate")).setAttributeNS(null,"id","a2-background"),a2.setAttributeNS(null,"attributeName","stop-color"),a2.setAttributeNS(null,"values",""+background.s[1]),a2.setAttributeNS(null,"dur","10s"),a2.setAttributeNS(null,"repeM
atCount","0"),a2.setAttributeNS(null,"fill","freeze"),s2.appendChild(a2),g.appendChild(s1),g.appendChild(s2),P.setAttributeNS(null,"x","0%"),P.setAttributeNS(null,"y","0%"),P.setAttributeNS(null,"width","100%"),P.setAttributeNS(null,"height","100%"),(bg=document.createElementNS(O,"rect")).setAttributeNS(null,"id","background"),bg.setAttributeNS(null,"width","100%"),bg.setAttributeNS(null,"height","100%"),bg.setAttributeNS(null,"fill","url(#background_gradient)"),P.appendChild(g),P.appendChild(bg),e.appendChild(P),uM
e(large_shapes),ue(small_shapes),setTimeout(function e(){small_shapes=F(small_shapes);large_shapes=F(large_shapes);block_changed=ne!=$;block_changed&&(_[0]<u[0]&&_[0]++,_[0]>u[0]&&_[0]--,f[0]<c[0]&&f[0]++,f[0]>c[0])&&f[0]--;block_changed&($%A==0|1==A)&&((N+=1)>S.length-1&&(N=0),1e4<=(A*=2))&&(S=F(S),A=1);block_changed&$%123==0&&(E=J(3e7,6e7));if(block_changed&$%3==0){for(i=0;i<small_shapes.length;i++)small_shapes[i].visible||(sz=G(W[0],W[1],scale=0),small_shapes[i].sz[0]=sz,small_shapes[i].sz[1]=sz,(p=document.querM
ySelector("#p-"+small_shapes[i].id)).setAttributeNS(null,"transform",`scale(${small_shapes[i].sz[0]}, ${small_shapes[i].sz[1]})`));for(i=0;i<large_shapes.length;i++)large_shapes[i].visible||(sz=G(X[0],X[1],scale=0),large_shapes[i].sz[0]=sz,large_shapes[i].sz[1]=sz,(p=document.querySelector("#p-"+large_shapes[i].id)).setAttributeNS(null,"transform",`scale(${large_shapes[i].sz[0]}, ${large_shapes[i].sz[1]})`))}if(block_changed&$%23==0){for(m=J(h[0],h[1]),s1=de(small_shapes.length,{mean:m,stdDev:m/2}),i=0;i<small_shapM
es.length;i++)small_shapes[i].visible||(s2=he(s1[i],[30,100],h),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+small_shapes[i].id),stop2=document.querySelector("#stp2-"+small_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),small_shapes[i].s=[offset1,color1,offset2,color2]);for(m=J(b[0],b[1]),s1=de(largeM
_shapes.length,{mean:m-20,stdDev:m-20}),i=0;i<large_shapes.length;i++)large_shapes[i].visible||(s2=he(s1[i],[30,100],b),offset1=0,offset2=G(.8,1),color1=D(s1[i]),color2="#"==color1[0]?color1:D(s2),stop1=document.querySelector("#stp1-"+large_shapes[i].id),stop2=document.querySelector("#stp2-"+large_shapes[i].id),stop1.setAttributeNS(null,"stop-color",color1),stop1.setAttributeNS(null,"offset",offset1),stop2.setAttributeNS(null,"stop-color",color2),stop2.setAttributeNS(null,"offset",offset2),large_shapes[i].s=[offsetM
1,color1,offset2,color2])}block_changed&$%111==0&&(bg_shade_0=B(J(o[0],o[0]+50)),bg_shade_1=B(J(o[1]-50,o[1]),r="#"!=bg_shade_0[0]),new_background_shades=F([bg_shade_0,bg_shade_1]),(bg_gradient_stop_1_animation=document.querySelector("#a1-background")).setAttributeNS(null,"values",background.s[0]+";"+new_background_shades[0]),bg_gradient_stop_1_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_1_animation.beginElement(),(bg_gradient_stop_2_animation=document.querySelector("#a2-background")M
).setAttributeNS(null,"values",background.s[1]+";"+new_background_shades[1]),bg_gradient_stop_2_animation.setAttributeNS(null,"duration",J(w[0],w[1])+"s"),bg_gradient_stop_2_animation.beginElement(),background.s=new_background_shades);block_changed&&(ne=$);xy_coordinates_small_shapes=.8<I()?(xy_coordinates_large_shapes=Q(R(S),300,30,k=0,xy_range=[-5,95],randomness=.1),Q(R(S),300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100])):(xy_coordinates_large_shapes=Q(N,300,30,k=0,xy_range=[-5,95],randomM
ness=.1),Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[-2,90],randomness=.5,l=[-5,100]));all_shapes=[small_shapes,large_shapes];total_number_of_shapes=small_shapes.length+large_shapes.length;total_number_of_visible_small_shapes=U(small_shapes);total_number_of_visible_large_shapes=U(large_shapes);Z*=1+q/100;H*=1+q/100;H=Math.max(H,u[0]);H=Math.min(H,u[1]);Z=Math.max(Z,c[0]);Z=Math.min(Z,c[1]);desired_number_of_visible_small_shapes=H;desired_number_of_visible_large_shapes=Z;fade_time_multiplier=1-q/100;C=le*fade_time_M
multiplier;C=Math.max(C,t[0]);C=Math.min(C,t[1]);fade_duration=C/1e3-.2;fade_in_duration_small_shapes=fade_duration;fade_out_duration_small_shapes=fade_duration;fade_in_duration_large_shapes=fade_duration;fade_out_duration_large_shapes=fade_duration;for(j=0;j<all_shapes.length;j++){for(next_shift_direction="visible",shapes_visibilities=_e(all_shapes[j]),i=0;i<.5*shapes_visibilities.length;i++).9<I()&&(v=shapes_visibilities[i],shapes_visibilities[i]=shapes_visibilities[shapes_visibilities.length-i],shapes_visibilitiM
es[i]=v);for(i=0;i<all_shapes[j].length;i++)shape=all_shapes[j][i],animation=document.querySelector("#a-"+shape.id),svg=document.querySelector("#"+shape.id),random_shift=shapes_visibilities[i]!=shape.visible,0==j&&((desired_number_of_visible_small_shapes<total_number_of_visible_small_shapes|random_shift)&shape.visible?(total_number_of_visible_small_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_sM
mall_shapes+"s"),animation.beginElement()):(desired_number_of_visible_small_shapes>total_number_of_visible_small_shapes|random_shift)&!shape.visible&&(total_number_of_visible_small_shapes++,shape.x=xy_coordinates_small_shapes[i].x,shape.y=xy_coordinates_small_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttM
ributeNS(null,"dur",fade_in_duration_small_shapes+"s"),animation.beginElement())),1==j&&((desired_number_of_visible_large_shapes<total_number_of_visible_large_shapes|random_shift)&shape.visible?(total_number_of_visible_large_shapes--,shape.visible=!1,shape.opacity_values="1;0",animation.setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_out_duration_large_shapes+"s"),animation.beginElement()):(desired_number_of_visible_large_shapes>total_number_of_visible_large_shapes|randomM
_shift)&!shape.visible&&(total_number_of_visible_large_shapes++,shape.x=xy_coordinates_large_shapes[i].x,shape.y=xy_coordinates_large_shapes[i].y,svg.setAttributeNS(null,"x",shape.x+"%"),svg.setAttributeNS(null,"y",shape.y+"%"),shape.visible=!0,shape.opacity_values="0;0.3;1",(animation=document.querySelector("#a-"+shape.id)).setAttributeNS(null,"values",shape.opacity_values),animation.setAttributeNS(null,"dur",fade_in_duration_large_shapes+"s"),animation.beginElement()))}re++;setTimeout(e,C)},C);let H=U(small_shapeM
s),Z=U(large_shapes);function oe(e,t,s,a,l,r,n,o,u,p){var _=[];for(n_shapes=e,n_visible_shapes=Math.floor((t[0]+t[1])/2),xy_coordinates=p?Q(N,300,30,k=k,sub_cluster_n=Y,M=M,xy_range=[10,10],randomness=.3):Q(N,300,30,k=0,xy_range=[-5,95],randomness=.1),i=0;i<=n_shapes;i++)size_x=G(n[0],n[1],scale=0),size_y=size_x,sx=J(s[0],s[1]),sy=J(a[0],a[1]),sx=xy_coordinates[i].x,sy=xy_coordinates[i].y,0<n_visible_shapes?(visible=!0,opacity_values="0;1",n_visible_shapes--):(visible=!1,opacity_values="0;0"),s1=J(r[0],r[1]),s2=he(M
s1,[50,100],h),color1=D(s1),color2="#"==color1[0]?color1:D(s2),fade_in_time=(u[0][0]+u[0][1])/2,fade_out_time=(u[1][0]+u[1][1])/2,_.push({id:"id"+I().toString(16).slice(2),x:sx,y:sy,z:l,s:[0,color1,1,color2],sz:[size_x,size_y],p:R(o),fs:[fade_in_time,fade_out_time],visible:visible,opacity_values:opacity_values});return _}function ue(e){var t=document.querySelector(".svgroot"),s="http://www.w3.org/2000/svg",l=document.createElementNS(s,"defs");for(t.appendChild(l),i=0;i<e.length;i++){var r=e[i],n=(gradient_id="gr-"+M
r.id,g=pe(0,0,100,0,gradient_id),s1=V(r.s[0],r.s[1],"stp1-"+r.id),s2=V(r.s[2],r.s[3],"stp2-"+r.id),g.appendChild(s1),g.appendChild(s2),l.appendChild(g),document.createElementNS(s,"path")),o=(n.setAttributeNS(null,"transform",`scale(${r.sz[0]}, ${r.sz[1]})`),n.setAttributeNS(null,"d",r.p),n.setAttributeNS(null,"fill",`url(#${gradient_id})`),n.setAttributeNS(null,"id","p-"+r.id),document.createElementNS(s,"svg"));o.setAttributeNS(null,"x",r.x+"%"),o.setAttributeNS(null,"y",r.y+"%"),o.setAttributeNS(null,"transform-orM
igin","center"),o.setAttributeNS(null,"id",""+r.id),(a=document.createElementNS(s,"animate")).setAttributeNS(null,"id","a-"+r.id),a.setAttributeNS(null,"attributeName","opacity"),a.setAttributeNS(null,"values",r.opacity_values),a.setAttributeNS(null,"dur",r.fs[0]+"s"),a.setAttributeNS(null,"repeatCount","0"),a.setAttributeNS(null,"fill","freeze"),a.setAttributeNS(null,"calcMode","paced"),o.appendChild(n),o.appendChild(a),t.appendChild(o)}}function D(e){return e=Math.abs(e),0<te&I()>1-te?R(ee):`rgb(${e%256},${e%256}M
,${e%256})`}function B(e,t=!0){return e=Math.abs(e),!1&1<I()&t?R(se):`rgb(${e%256},${e%256},${e%256})`}function I(){var e=1e4*Math.sin(ie++);return e-Math.floor(e)}function J(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(I()*(t+1-e)+e)}function G(e,t,s=1,a=3){return r=I()*(t+s-e)+e,t=r,s=(s=a)||0,Math.floor(t*Math.pow(10,s))/Math.pow(10,s)}function R(e){return e[J(0,e.length-1)]}function pe(e,t,s,a,l){var i=document.createElementNS("http://www.w3.org/2000/svg","linearGradient");return i.setAttributeNS(null,M
"id",l),i.setAttributeNS(null,"x1",e+"%"),i.setAttributeNS(null,"x2",s+"%"),i.setAttributeNS(null,"y1",t+"%"),i.setAttributeNS(null,"y2",a+"%"),i}function V(e,t,a){return(s=document.createElementNS("http://www.w3.org/2000/svg","stop")).setAttributeNS(null,"id",a),s.setAttributeNS(null,"offset",e),s.setAttributeNS(null,"stop-color",t),s}function F(e){let t=e.length,s;for(;0!=t;)s=Math.floor(I()*t),t--,[e[t],e[s]]=[e[s],e[t]];return e}function K(t,s,e,a,l,i){var r=Math.tan(e),n=Math.cos(e)*a,o=Math.sin(e)*a,u=[];for(M
let e=0;e<i;e++){var p=(I()-.5)*l,_=(I()-.5)*l,p=t+n+p;u.push({x:p,y:s+r*(p-t)+o+_})}return u}function Q(e,t,a=0,l=0,r=[3,8],n=[1,3],o=0,u=[-200,300]){if(0==e&&(p1=K(45,95,40,10,a+10,t+1),p2=K(30,55,40,0,a+20,t+1),p3=K(40,20,40,0,a+30,t+1)),1==e&&(p1=K(60,0,90,10,a+40,t+1),p2=K(20,40,20,20,a+20,t+1),p3=K(40,70,100,10,a+30,t+1)),5==e&&(p3=K(10,5,0,10,a+40,t+1),p1=K(20,10,1,50,a+50,t+1),p2=K(30,30,0,20,a+60,t+1)),3==e&&(p3=K(70,0,160,0,a+30,t+1),p2=K(50,40,160,10,a+30,t+1),p1=K(10,60,45,20,a+20,t+1)),6==e&&(p1=K(50,5M
0,10,10,a+30,t+1),p2=K(50,20,20,10,a+5,t+1),p3=K(50,50,30,10,a+10,t+1)),2==e&&(p1=K(0,10,20,10,a+5,t+1),p2=K(80,40,10,20,a+10,t+1),p3=K(90,30,40,30,a+30,t+1)),4==e){for(p=[],s=t/100,i=0;i<t;i++)m_s=s,.5<I()&&(m_s*=G(-.1,.1)),x=(100-i)*m_s,y=i*s*(1+Math.sin(s)),p.push({x:x%110,y:y%110});p1=p,p2=p,p3=p}if(7==e){for(p=[],s=t/100,i=0;i<t;i++)x=100-i%100,y=100-i%100,x=(x>>y^i)%100,y=(y|i*Math.sin(x)^x)%100,p.push({x:x+G(-5,15),y:y+G(-5,5)});p1=p,p2=p,p3=p}if(8==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,y=((y=50+i%100)&x)%M
100,.4<I()&&(y=80-Math.sin(i)),.3<I()&&(x*=Math.sin(y)),p.push({x:x+G(-10,10)%100,y:y+G(-10,10)%100});p1=p,p2=p,p3=p}if(9==e){for(p=[],s=t/100,i=0;i<t;i++)x=i%100,x=J(10,70)+i%100,y=(y&x|i)%100,.4<I()&&(y=J(20,50)-Math.sin(i)),.6<I()&&(x*=Math.sin(y)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}if(10==e){for(p=[],s=t/100,i=0;i<t;i++)x=70-i,y=60-i^(x<<10)%10,x^=y,.7<I()&&(y=G(70,80)),.6<I()&&(x=G(30,40)),x+=G(-15,15)%100,y+=G(-15,15)%100,p.push({x:x,y:y});p1=p,p2=p,p3=p}for(fp=[],p=[p1,p2,p3],M
i=0;i<t-1;i++)fp.push(R(p)[i]);if(0<l)for(cluster=!1,cluster_start=0,cluster_end=0,i=0;i<fp.length;i++)cluster?(i<cluster_end&&(fp[i].x=fp[cluster_start].x+G(-s,s),fp[i].y=fp[cluster_start].y+G(-s,s)),i>cluster_end&&(cluster=!1)):I()>l&&(cluster=!0,cluster_start=i,cluster_end=i+J(r),s=G(n));for(i=0;i<fp.length-1;i++)fp[i].x<u[0]|fp[i].x>u[1]&&(fp[i].x=G(0,100,3)),fp[i].y<u[0]|fp[i].y>u[1]&&(fp[i].y=G(0,100,3)),0<o&&I()>1-o&&(fp[i].x=G(0,100,3),fp[i].y=G(0,100,3));return fp}function U(e){for(n=0,i=0;i<e.length;i++)eM
[i].visible&&n++;return n}function _e(e){for(v=[],i=0;i<e.length;i++)e[i].visible?v.push(!0):v.push(!1);return v}function de(t,s){var a=[];for(let e=0;e<t;e++){let e=0,t=0;for(;0===e;)e=Math.random();for(;0===t;)t=Math.random();var l=Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*t),i=s.mean||0,r=s.stdDev||1;a.push(l*r+i)}return a}function he(e,t,s){return step=J(t[0],t[1]),direction=R([-1,1]),n=Math.abs(e+step*direction),s[0]<n<s[1]||(n=e+step*(-1*direction),s[0]<n<s[1])||(n=e+step/2*direction,s[0]<n<s[1])||(n=e+steM
p/2*(-1*direction),s[0],n,s[1]),n}window.onkeydown=function(e){82===e.keyCode?(d=document.getElementsByClassName("container")[0]).insertAdjacentHTML("afterend",`<div id="prompt-container" class="prompt-container"><p>Change bitcoin node:</p><input id="prompt" class="prompt" value="${T}"/></div>`):13===e.keyCode&&(p=document.getElementById("prompt"),T=p.value,(pc=document.getElementById("prompt-container")).remove())};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdn.jsdelivr.nM
et/npm/tonal/browser/tonal.min.js"></script>
    <script type="text/javascript">
        var cnv;let points=[],start=0,speed=2,wdt,margin=60,w=500,h=300,tileWidth=100,tileHeight=100,sclX=5,sclY=10,paletteIndex2=0,paletteType,paletteIndex3=0,globalNote,mainIndex=0,bnd,phi=3.14*(137.51/180),cbn=0,cbn2=0,duration=0,savedTime,startx1=0,starty1=0,start1=0,rootInc=0,format,currentKey,voiceChord=!1,randForm=0,notePlay,pastNote,keyFifths=[],sequence=[],chordArray=[],bassChord=[],reading,state,lastState,oscill,oscill2,trM
ig=!1,bckg=["#F3F3F3","#000000"],palette1=[["#ce2d42","#082880","#7462f9","#f4b53f","#123676","#9c223d","#e6c7b4"],["#f43b79","#1136ed","#6b43dd","#ef9029","#4aa4ae","#69239b","#f7f1b4"],["#7fefe4","#be3edd","#70cfe5","#f2c666","#e6c7b4","#583fc4","#fff57d"],["#80aded","#7b66f7","#658fdb","#f2e18b","#f7f1b4","#773caa","#f4b537"],["#a5e2f2","#a783ed","#61c1db","#f7c872","#6eabf4","#6d52dd","#ff7db2"],["#d8d8d8","#898de0","#89afe5","#f9e78f","#85b2e8","#8110e5","#bf2b6e"],["#7094fc","#643ac9","#306bef","#9100dd","#e6M
c7b4","#e2396d","#ef3a65"],["#80aded","#a28fef","#4688e8","#db003a","#f7f1b4","#d632a4","#bc174e"],["#594499","#db3e3e","#25ceb2","#02827b","#a0a09f","#56661d","#34067c"],["#425999","#bc3f3f","#9fe2cc","#108fc1","#d37676","#132691","#5b3c96"],["#ffeda1","#91205c","#2929e2","#9509b7","#70b9c0","#5474e8","#d30b8c"],["#f9cfc7","#721b74","#1c70ea","#7c1d93","#919bdb","#5574ce","#f25c87"],["#f25a7b","#e960af","#992843","#8b52f7","#6eabf4","#3714a1","#445b96"],["#ff399c","#e73250","#d32f53","#33bbff","#7de7ff","#69239b",M
"#8041f9"],["#6f6674","#34a0a5","#992843","#f98450","#6eabf4","#3714a1","#445b96"],["#4d82aa","#24c6c6","#d32f53","#f973a0","#7de7ff","#69239b","#8041f9"],["#ff6d40","#361ee0","#992843","#e6c7b4","#9370f2","#3714a1","#445b96"],["#e6372f","#3a338e","#d32f53","#f7f1b4","#8092ff","#69239b","#8041f9"],["#ffa943","#2177f4","#35fc93","#f9cfd2","#6eabf4","#3714a1","#445b96"],["#ffce45","#2f7083","#5affdf","#fcf4b7","#7de7ff","#69239b","#8041f9"],["#41d9f2","#528cd1","#3a6eba","#5f64c1","#4a97f4","#7426bf","#f7d52f"],["#71M
f2ff","#249cff","#63a1ea","#7f88db","#56a6f4","#7f0caf","#f7b643"],["#41d9f2","#51fcbb","#d3057b","#295cff","#7d22ff","#51d7e5","#e6c7b4"],["#71f2ff","#81fcca","#f91cb0","#0239c1","#8450d6","#05bdc6","#f7f1b4"],["#43bbef","#53f9e4","#bf2640","#5082ff","#8648ff","#36ffcf","#881ed3"],["#6bcced","#fce586","#f93ebb","#52a1ff","#8e51a8","#05bdc6","#ff0895"],["#a745ed","#fcbbbb","#f20a41","#ffd252","#0606bf","#ff459e","#881ed3"],["#7b19d1","#a7d0f9","#ba0f40","#fcd5bb","#4545ce","#9666ff","#ff0895"],["#31a4dd","#6f3bff",M
"#f20a41","#4470a5","#7171f4","#e710f9","#2e92ff"],["#ffffab","#8e7de2","#ba0f40","#9312b2","#85b5f9","#830591","#034a7f"],["#06a0ba","#6f3bff","#f20a41","#8777f7","#4848c1","#6b11f7","#e6c7b4"],["#2bc5cc","#8e7de2","#ba0f40","#6155bf","#4b4bf7","#a318b7","#f7f1b4"],["#06a0ba","#6f3bff","#8473ff","#fce875","#4848c1","#ffb3c9","#2e92ff"],["#2bc5cc","#8e7de2","#9e61ba","#ffd2c7","#0f0fce","#f7e579","#034a7f"],["#c10839","#6f3bff","#ff06a6","#f2a5bb","#4848c1","#117ff7","#579ef2"],["#a20dd3","#8e7de2","#aa08ff","#f2ecM
79","#0f0fce","#a60abc","#1b64ce"],["#06a0ba","#6f3bff","#fca660","#f7f377","#9149bf","#f71165","#31f0ff"],["#2bc5cc","#8e7de2","#dd582a","#ffe09c","#630ca8","#a8275c","#04717c"],["#e041b3","#3e71ff","#ffec64","#77c1f7","#9149bf","#f71165","#e6c7b4"],["#f95089","#8e7de2","#f99175","#1d6bdd","#630ca8","#a8275c","#f7f1b4"],["#f4d334","#0636cc","#8989ef","#e6c7b4","#8005e0","#fc68a4","#3386ff"],["#fc889e","#3b72a3","#2d5cc4","#f7f1b4","#f938cb","#d61a1a","#04717c"],["#f4d334","#3ef6ff","#5347f4","#b877f7","#9149bf","#M
f71165","#e6c7b4"],["#fc889e","#1fb2b2","#2d5cc4","#6e1ed6","#630ca8","#a8275c","#f7f1b4"],["#f4d334","#3ef6ff","#5347f4","#f7f777","#9149bf","#ef5090","#e6c7b4"],["#fc889e","#1fb2b2","#2d5cc4","#ffce88","#630ca8","#ba0457","#f7f1b4"],["#f4d334","#3ef6ff","#5347f4","#77c4f7","#9149bf","#f71165","#854fba"],["#fc889e","#1fb2b2","#2d5cc4","#2187bf","#630ca8","#a8275c","#e783ea"],["#f4d334","#3ef6ff","#f97575","#f4dc78","#9149bf","#f71165","#e6c7b4"],["#fc889e","#1fb2b2","#cc2929","#f28b79","#630ca8","#a8275c","#f7f1b4M
"],["#f4d334","#3ef6ff","#f97575","#f279ab","#9149bf","#645eea","#e6c7b4"],["#fc889e","#52adff","#cc2929","#e81073","#630ca8","#3a3acc","#f7f1b4"],["#3ac9d8","#6f3bff","#44acf2","#fce875","#bf23f9","#ffb3c9","#2e92ff"],["#44acf2","#8e7de2","#6cffff","#ffd2c7","#9449ce","#f7e579","#034a7f"],["#06a0ba","#6f3bff","#fc4c7e","#f9b175","#6c6ce5","#8f58f9","#e6c7b4"],["#2bc5cc","#8e7de2","#cf4ef9","#f7df77","#4949c1","#a915ff","#f7f1b4"],["#ef01c4","#065ca8","#1c00ba","#ffee94","#c053ba","#8f58f9","#4ea8f9"],["#a60160","#M
30bec3","#5e52db","#ffebae","#da55f2","#a915ff","#4febf7"],["#f44260","#3c5ba0","#845ecc","#f4b53f","#3d9fc1","#9c223d","#e6c7b4"],["#f43b79","#4058ad","#6c3ca5","#ef9029","#317ec4","#69239b","#f7f1b4"],["#f44260","#3c5ba0","#7070e8","#f27740","#3d9fc1","#d34040","#e6c7b4"],["#f43b79","#4058ad","#4d4dc1","#ef9029","#317ec4","#ed5487","#f7f1b4"],["#f244ee","#5c75c6","#7070e8","#3cd3b6","#3d9fc1","#d34040","#e6c7b4"],["#f43b79","#637cc1","#4d4dc1","#1cb7b7","#317ec4","#ed5487","#f7f1b4"],["#e5491f","#2058d3","#7462f9M
","#40f2d0","#123676","#9c223d","#e6c7b4"],["#ef973f","#177199","#6b43dd","#15abba","#4aa4ae","#69239b","#f7f1b4"],["#e22079","#2058d3","#7462f9","#40f2d0","#5a92e5","#9c223d","#e6c7b4"],["#f21c59","#177199","#6b43dd","#15abba","#4658f9","#69239b","#f7f1b4"],["#e22079","#2058d3","#e6c7b4","#40f2d0","#5a92e5","#ba4564","#edf28b"],["#f21c59","#177199","#f7f1b4","#15abba","#4658f9","#e5336a","#43f7c8"],["#e22079","#4b80e0","#e6c7b4","#41a9ef","#5a92e5","#bc0d8b","#f7adf7"],["#f21c59","#197abc","#f7f1b4","#36a9cc","#46M
58f9","#d3057f","#43f7c8"],["#e22079","#4b80e0","#e6c7b4","#435ced","#e2b55a","#ea397d","#f4e2ae"],["#f21c59","#197abc","#f7f1b4","#7f63f7","#f98562","#e84b3a","#e9f49f"],["#0850b7","#6771f9","#8213bc","#75f9e0","#4848c1","#ffb3c9","#2e92ff"],["#3081e2","#5285dd","#9604af","#15abba","#0f0fce","#f7e579","#034a7f"],["#d80e3e","#6771f9","#8213bc","#f7ad77","#4848c1","#ffb3c9","#31b5ff"],["#ef4878","#5285dd","#9604af","#f4cb78","#0f0fce","#f7e579","#2a76d1"],["#f98246","#69acf7","#8213bc","#f7ad77","#4848c1","#ffb3c9",M
"#31b5ff"],["#ed7d4a","#5285dd","#b529d3","#f4cb78","#0f0fce","#f7e579","#2a76d1"],["#f7cd48","#69d6f4","#8213bc","#f7ad77","#7649bf","#ffb3c9","#e6c7b4"],["#f49090","#21b5d8","#b529d3","#f4cb78","#5829b2","#f7e579","#f7f1b4"],["#4a82f4","#f22a51","#8213bc","#f7ad77","#905df4","#ffb3c9","#0c85ba"],["#4cb2f2","#b72c4e","#b529d3","#f4cb78","#542ad3","#f7e579","#096889"],["#4a82f4","#f22a51","#1522ba","#f7ad77","#d32fc0","#b6fffa","#0c85ba"],["#4cb2f2","#b72c4e","#483d9b","#f4cb78","#e50a6e","#f1ffb8","#096889"],["#4aM
82f4","#f22a51","#4b23db","#f7ad77","#d1304b","#5b99f4","#1dbcb4"],["#4cb2f2","#b72c4e","#694eea","#f4cb78","#d61660","#5cd3f2","#096889"],["#ad4cf2","#f22a51","#8213bc","#f478b0","#5ff2f2","#ffb3c9","#0c85ba"],["#8b05e2","#b72c4e","#b529d3","#f4cb78","#3ea6b7","#f7e579","#096889"],["#584def","#f22a51","#a52cdd","#f2c679","#60caef","#d2b6ff","#0d53b7"],["#4f24c6","#b72c4e","#b529d3","#efaa7b","#3ea6b7","#f7e579","#458bdd"],["#584def","#ef592b","#2cdbc1","#f2c679","#6290ed","#b8fff1","#0d53b7"],["#4f24c6","#f27949",M
"#2ec0d8","#efaa7b","#4067b5","#f7e579","#458bdd"],["#584def","#ed2e8a","#2eacd8","#f2c679","#6290ed","#6929ce","#0d53b7"],["#4f24c6","#c11670","#3070d6","#efaa7b","#4067b5","#4a4add","#458bdd"],["#584def","#ed2e8a","#2eacd8","#ef9c7b","#6290ed","#6929ce","#0d53b7"],["#4f24c6","#c11670","#3070d6","#fc583d","#4067b5","#4a4add","#458bdd"],["#b7b7b7","#0a0a0a","#ffffff","#dbdcdd","#b2b2b2","#a7a7a8","#4e4f4f"],["#d8d8d8","#636363","#dbdcdd","#b2b2b2","#4e4f4f","#e0e1e2","#3f3f3f"],],paletteIndex,colorIndex,colorIndex2M
,grayscale,paletteMode,element,flavour,key,trigger=!1,anim=!1,gridIndex=0,count=0,direction,currentChord=0,nextChord=0,keyArray=["C","D","E","F","G","A","B"],flavours=["major","minor"],fifths=[["C","G","D","A","E","B","F#","Db","Ab","Eb","Bb","F"],["A","E","B","F#","C#","G#","D#","Bb","F","C","G","D"]],midSeq4,mapScale,mixer,stereo,synth2,synth4,synth6,synth3,feedback,reverb5,delay5,delay4,delay2,reverb3,lfo,pingPong,pingPong1,panner,autoPan,FFT,wave,meter,pendulum;function centerCanvas(){var e=(windowWidth-width)/M
2,t=(windowHeight-height)/2;cnv.position(e,t)}function setup(){wdt=windowWidth<windowHeight?windowWidth:windowHeight,wdt-=margin,cnv=createCanvas(wdt,wdt),centerCanvas(),bIndex=1,background(0),center=createVector(width/2,height/2),noFill(),noStroke(),smooth(),strokeWeight(1);let e=int(1990*mathRand());noiseSeed(e),randomSeed(e),noiseDetail(2,1),pixelDensity(displayDensity()),initializeAudio();let t=int(map(mathRand(),0,1,0,flavours.length));flavour=flavours[t];let f=int(map(mathRand(),0,1,0,fifths[t].length));key=fM
ifths[t][f],mapScale=(scale=(scale=(scale=(scale=(scale=(scale=(scale=Tonal.Scale.get(key+"1 "+flavour).notes).concat(Tonal.Scale.get(key+"2 "+flavour).notes)).concat(Tonal.Scale.get(key+"3 "+flavour).notes)).concat(Tonal.Scale.get(key+"4 "+flavour).notes)).concat(Tonal.Scale.get(key+"5 "+flavour).notes)).concat(Tonal.Scale.get(key+"6 "+flavour).notes)).concat(Tonal.Scale.get(key+"7 "+flavour).notes)).slice(14,28);for(let i=0;i<mapScale.length;i++){mapScale.length,mapScale[i].length>2?keyFifths.push(mapScale[i].sliM
ce(0,2)):keyFifths.push(mapScale[i].slice(0,1));.5>random(1)?currentKey-=1:currentKey+=1}let a=[];for(let $=0;$<keyFifths.length;$++)a.push(fifths[t].indexOf(keyFifths[$]));for(let s=0;s<a.length;s++)-1===a[s]&&(keyFifths.splice(s,1),a.splice(s,1));for(let c=0;c<a.length;c++)a[c]===a[0]-1&&(sequence.push(keyFifths[0]),sequence.push(keyFifths[c])),a[c]===a[0]+1&&sequence.push(keyFifths[c]),a[c]===a[0]+3&&(sequence.push(keyFifths[0]),sequence.push(keyFifths[c])),a[c]===a[0]+2&&sequence.push(keyFifths[c]),a[c]===a[0]+M
4&&sequence.push(keyFifths[c]);for(let n=0;n<15;n++)for(let d=0;d<sequence.length;d++)chordArray.push(generateChord(`${sequence[d]}2`,!0));for(let _=0;_<15;_++)for(let r=0;r<sequence.length;r++)bassChord.push(generateChord(`${sequence[r]}3`,!0));paletteMode=mathRand(),paletteIndexSub=(paletteIndex=2*int(map(mathRand(),0,1,0,50)))+1,paletteIndex3=2*int(map(mathRand(),0,1,0,50)),colorIndex=int(map(mathRand(),0,1,0,palette1[0].length)),colorIndex2=int(map(mathRand(),0,1,0,palette1[0].length)),paletteType=mathRand(),grM
ayscale=98===paletteIndex,oscill=mathRand(),oscill2=mathRand(),format=mathRand(),direction=int(map(mathRand(),0,1,0,2)),format<.5?(w=width,h=.4*height):(w=.4*width,h=height),tileWidth=floor(w/sclX)+1,tileHeight=floor(h/sclY)+1,chordNotes=chordArray;for(let b=0;b<=w;b+=tileWidth)for(let o=0;o<=h;o+=tileHeight){let l=gridIndex;points.push(new GridPoint(b-w/2,o-h/2,tileWidth,tileHeight,0,l,0)),gridIndex=(gridIndex+1)%14}let p=map(mathRand(),0,1,.1,.5),u=points;for(let y in points)mathRand()>p?(points[y].subdivide(u,y,M
2),points.splice(y,1),count++):(u.push(points[y]),points.splice(y,1));element=(points=u).length;let g;g=paletteMode<.5?7:3,window.$generativeTraits={Type:"Audio",BPM:"60",Aspect:"Grid",Key:key,Flavour:flavour,Elements:element,Subdivision:count,Palette:g,Grayscale:grayscale,Property:"Object"}}function initializeAudio(){Tone.Transport.bpm.value=60,(mixer=new Tone.Gain).toDestination(),FFT=new Tone.FFT(64),Tone.Master.connect(FFT),wave=new Tone.Waveform,(pendulum=new Tone.LFO(.05)).start(),(meter=new Tone.Meter).normaM
lRange=!0,pendulum.connect(meter),panner=new Tone.Panner(0).chain(mixer);let e=new Tone.Chorus({frequency:.83,depth:.7,wet:.85}),t=new Tone.Reverb({decay:3/4,wet:.5});t.generate();let f=new Tone.FeedbackDelay({delayTime:3/8,feedback:.32,wet:.36});(pingPong=new Tone.PingPongDelay(3/4,.5).toDestination()).set({wet:.3});let i=new Tone.Filter(2250,"lowpass",-24),a=new Tone.Filter(320,"highpass",-48);new Tone.LFO(1,250,2250).connect(i.frequency).start();let $=new Tone.FeedbackDelay({delayTime:.005,feedback:.1,wet:.33});M
new Tone.LFO(1,-1,1).connect(panner.pan).start(),(synth4=new Tone.PolySynth(Tone.FMSynth).chain(e,f,t,pingPong,i,a,$,mixer)).set({harmonicity:3,modulationIndex:3,oscillator:{type:"sine"},envelope:{attack:2e-4,decay:.1,sustain:.08,release:.03},modulation:{type:"sine"},modulationEnvelope:{attack:4e-4,decay:.1,sustain:.09,release:.01},filterEnvelope:{attack:2e-4,decay:.2,sustain:.5,release:.4,baseFrequency:200,octaves:2.6},volume:-16}),delay5=new Tone.FeedbackDelay({delayTime:3/8,feedback:.3,wet:.2});let s=new Tone.ReM
verb({decay:3/16,wet:.25});s.generate();let c=new Tone.Filter(2250,"lowpass",-24);(synth6=new Tone.PolySynth(Tone.Synth).chain(delay5,s,pingPong,c,mixer)).set({harmonicity:3,modulationIndex:3,detune:0,oscillator:{pitch:7,type:"sine"},envelope:{attack:1,decay:.1,sustain:.02,release:.03},modulation:{type:"sine"},modulationEnvelope:{attack:1.5,decay:.1,sustain:.02,release:.06},filterEnvelope:{attack:2,decay:.2,sustain:.5,release:.4,baseFrequency:200,octaves:2.6},volume:-24}),synth6.connect(wave),Tone.Transport.schedulM
eRepeat(()=>{pingPong.set({delayTime:random([3/4,3/16,3/8,.25])}),pingPong.set({wet:random([0,.1,.5])}),f.set({delayTime:random([3/8,.25])}),delay5.set({delayTime:random([3/8,.25])})},"2m")}function draw(){background(0,20),translate(center.x,center.y);let e=.5-meter.getValue(0),t=wave.getValue(0),f=FFT.getValue(0),i=map(e,-.5,.5,-PI,PI);for(let a=0;a<points.length;a++)points[a].r=points[a].r3,points[a].move(),points[a].animate(a,i,f),points[a].render(),points[a].display(a,t,f),points[a].start+=.1,points[a].offset+=M
.006;anim&&(start+=.02),trigger&&(playChord(),Tone.Transport.start(),trigger=!1)}function playChord(){Tone.Transport.schedule(bounceChord,"1"),Tone.Transport.start()}function bounceChord(){currentChord=nextChord,Promise.all([playSynthChord(chordNotes[currentChord],12,12),playStringChord(bassChord[currentChord],6,6),]).then(e=>{int(random(2));let t=int(random(6,18))+"m";!function f(i){let a=e[0],$=e[1];new Tone.BufferSource({url:a,playbackRate:.125}).toDestination().start(i),new Tone.BufferSource({url:$,playbackRateM
:.125}).toDestination().start(i),Tone.Transport.scheduleOnce(f,"+"+t)}(Tone.now())}),Tone.Transport.start(),nextChord<chordNotes.length-1?nextChord+=1:nextChord=0,Tone.Transport.schedule(bounceChord,"+2m")}function playSynthChord(e,t,f){let i=Tone.Time(t).toSeconds(),a=Tone.Time(f).toSeconds();return Tone.Offline(()=>{synth6.triggerAttackRelease(e,i)},i+a)}function playStringChord(e,t,f){let i=Tone.Time(t).toSeconds(),a=Tone.Time(f).toSeconds();return Tone.Offline(()=>{synth4.triggerAttackRelease(e,i)},i+a)}functioM
n voicing(e,t){let f=scale.indexOf(e)+t-1,i;if(void 0!==scale[f])i=scale[f];else if(3===(i=scale[f-7]).length)parseInt(i.slice(2));else{let a=parseInt(i.slice(1))+1;i=`${i.slice(0,1)}${a}`}return i}const getNextChordNote=(e,t)=>{let f=scale.indexOf(e)+t-1,i;if(void 0!==scale[f])i=scale[f];else if(3===(i=scale[f-7]).length)parseInt(i.slice(2));else{let a=parseInt(i.slice(1))+1;i=`${i.slice(0,1)}${a}`}return i};function generateChord(e,t){let f=1,i=1,a=1,$=1,s=1,c=1,n=1;t?(f=generateIndice1(),i=generateIndice1(),a=geM
nerateIndice1(),$=generateIndice1(),s=generateIndice(),c=generateIndice2(),n=generateIndice2()):(f=1,i=1,a=1,$=1,s=1,c=1,n=1);let d=voicing(e,f),_=voicing(getNextChordNote(e,3),i),r=voicing(getNextChordNote(e,5),a),b=voicing(getNextChordNote(e,7),$),o=voicing(getNextChordNote(e,9),s);return voicing(getNextChordNote(e,11),c),voicing(getNextChordNote(e,13),n),[d,_,r,b,o]}function generateIndice(){let e=int(map(mathRand(),0,1,0,3));return 0===e?-8:1===e?1:2===e?8:void 0}function generateIndice1(){return mathRand()>.5?M
1:8}function generateIndice2(){return mathRand()>.5?-8:1}class GridPoint{constructor(e,t,f,i,a,$,s){int(map(e+t,-width/2+-height/2,width/2+height/2,0,sclX+sclY)),int(map(t,-height/2,height/2,0,4)),this.x=e,this.y=t,this.w=f,this.c2=f,this.wx=e,this.hy=t,this.ws=f,this.hs=i,this.h=i,this.r=f,this.r2=f,this.r3=f,this.mv=0,this.theta=0,this.centerX=this.x+this.w/2,this.centerY=this.y+this.h/2,this.c=int(map(mathRand(),0,1,0,3)),this.paletteIndex2=int(map(dist(this.centerX,this.centerY,0,0),0,500,0,palette1[0].length))M
,this.randForm=int(map(mathRand(),0,1,0,5)),this.randIndex=paletteMode<.5?int(map(mathRand(),0,1,0,palette1[0].length)):paletteIndex2,this.randIndex2=int(map(mathRand(),0,1,0,palette1[0].length)),this.randIndex3=int(map(mathRand(),0,1,0,palette1[0].length)),this.randIndex4=int(map(mathRand(),0,1,0,palette1[0].length)),this.start=0,this.alpha=255,this.pIndex=paletteIndex,this.pi=paletteIndex3,this.rt=map(mathRand(),0,1,PI/6,PI/3),this.incr,this.rst=random(0,TAU),this.rst2=random(0,TAU),this.rad=0,this.sub=s,this.offM
set=20*mathRand(),this.offset2=0,this.div=int(map(mathRand(),0,1,10,30)),this.strk=1,this.isOn=a,this.note=$,this.init(),paletteIndex2=(paletteIndex2+1)%3}subdivide(e,t,f){let i=this.w/f,a=this.h/f,$=this.sub+1,s=this.note+7;e.push(new GridPoint(this.x,this.y,i,a,this.isOn,s,$),new GridPoint(this.x+i,this.y,i,a,this.isOn,s,$),new GridPoint(this.x,this.y+a,i,a,this.isOn,s,$),new GridPoint(this.x+i,this.y+a,i,a,this.isOn,s,$))}move(){if(0<=this.t&&this.t<this.t1){let e=norm(this.t,0,this.t1-1);this.mv=lerp(0,TAU,easeM
OutQuint(e)),this.rad=lerp(0,this.w/4,easeOutQuint(e))}this.t1<this.t&&this.init(),this.t++}init(){this.t=-int(random(map(speed,1,5,500,100))),this.t1=map(speed,1,5,220,60)}animate(e,t,f){this.theta=t+e*PI/4;let i=int(map(this.x,-width/2,width/2,0,f.length)),a=f[i];a=a===-1/0?0:f[i],this.incr=map(a,0,-100,0,.2),this.i=map(e,0,points.length,0,TWO_PI),this.xoff=map(cos(this.i),-1,1,0,3),this.yoff=map(sin(this.i),-1,1,0,3),this.n=noise(this.xoff+this.offset+this.incr,this.yoff+this.offset+this.incr),this.n4=noise(thisM
.xoff+50,this.yoff+50),this.n5=noise(this.xoff+50+start,this.yoff+50+start),this.n6=noise(this.offset,this.offset),this.angle=noise(this.xoff+this.offset,this.yoff+this.offset)*TAU*4,this.xa=this.x,this.ya=this.y*sin(map(this.n,0,1,0,TAU)),this.xb=this.x*sin(this.mv),this.r=map(this.n,0,1,this.w/2,this.w),this.r3=map(this.n,0,1,this.w/2,this.w),this.r2=map(this.n,0,1,0,5),this.alpha=map(this.n5,0,1,120,180),this.delay=int(map(this.n4,0,1,2,1))}render(){strokeWeight(.1);fill(color(palette1[this.pIndex][this.randIndeM
x])),circle(this.x,this.ya,this.r2),circle(this.x+this.w,this.ya,this.r2),circle(this.x,this.ya+this.h,this.r2),circle(this.x+this.w,this.ya+this.h,this.r2)}display(e,t,f){if(0===direction)for(let i=this.ya;i<=this.ya+this.h;i+=2){beginShape();for(let a=this.xa;a<=this.xa+this.w;a+=5){let $=int(map(this.ya*this.xa,(this.ya+this.h)*(this.xa+this.w),0,f.length)),s=f[$];s=s===-1/0?0:f[$],this.incr2=map(s,0,-100,0,6),this.n3=noise(this.incr2,this.incr2),this.n2=noise(this.xoff+this.offset2+this.incr2,this.yoff+this.offM
set2+this.incr2),this.n4=map(this.n3,0,1,.9,1.1),this.z=oscill<.5?map(this.n2,0,1,.9,1.1):1;let c=int(map(this.n2,0,1,0,255));int(map(this.n2,0,1,0,palette1[0].length));let n=map(i,this.y,this.y+this.h,0,1),d,_=color(palette1[this.pIndex][this.randIndex]),r=color(palette1[this.pIndex+1][this.randIndex]);(d=lerpColor(_,r,n)).setAlpha(c),noFill(),stroke(d),strokeWeight(.5),vertex(a,i*this.z),this.offset2+=.1}endShape()}else if(1===direction)for(let b=this.xa;b<=this.xa+this.w;b+=2){beginShape();for(let o=this.ya;o<=tM
his.ya+this.h;o+=5){let l=int(map(e,points.length,0,f.length)),p=f[l];p=p===-1/0?0:f[l],this.incr2=map(p,0,-100,0,3),this.n3=noise(this.incr2,this.incr2),this.n2=noise(this.xoff+this.offset2+this.incr2,this.yoff+this.offset2+this.incr2),this.n4=map(this.n3,0,1,.9,1.1),this.z=oscill<.5?map(this.n2,0,1,.9,1.1):1,this.z2=oscill2<.5?map(this.n2,0,1,.999,1.009):1;let u=int(map(this.n2,0,1,0,255));int(map(this.n2,0,1,0,palette1[0].length));let y=map(o,this.y,this.y+this.h,0,1),g,x=color(palette1[this.pIndex][this.randIndM
ex]),m=color(palette1[this.pIndex+1][this.randIndex]);(g=lerpColor(x,m,y)).setAlpha(u),noFill(),stroke(g),strokeWeight(.5),vertex(b*this.z2,o*this.z),this.offset2+=.1}endShape()}if(0===this.c);else if(1===this.c){strokeWeight(.5);let v=0;for(let I=1;I<t.length;I++)if(t[I-1]<0&&t[I]>=0){v=I;break}let k=v+t.length/2,F=100*this.h;for(let C=v;C<=k;C++){let S=map(C-1,v,k,this.xb,this.xb+this.w),T=map(t[C-1],-12,12,this.y-F,this.y+F+this.h),P=map(C,v,k,this.xb,this.xb+this.w),q=map(t[C],-12,12,this.y-F,this.y+F+this.h);lM
ine(S,T,P,q)}}}}function mapNote(e,t){let f=t.length,i=t[modulo(e,f)],a=Tonal.Note.octave(t[0])+floor(e/f);return Tonal.Note.pitchClass(i)+a}function modulo(e,t){return(e%t+t)%t}function easeOutQuint(e){return 1+--e*e*e*e*e}function windowResized(){centerCanvas()}function keyTyped(){return"p"===key&&saveCanvas("liquidentropy","jpg"),!1}function touchStarted(){return Tone.start(),anim||(trigger=!0,Tone.Transport.start()),anim=!0,3===touches.length&&saveCanvas("liquidentropy","jpg"),!1}function mousePressed(){return M
Tone.start(),anim||(trigger=!0,Tone.Transport.start()),anim=!0,!1}
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('M
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (M
r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
          var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
 background-color: #000000;
            margin: 0px;
            overflow: hidden;
            width: 100%;
            height: 100%;
    <script type="text/javascript">
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script sandbox="allow-scripts" type=